row_window_session()

Alterne entre serviços usando a lista suspensa Version. Saiba mais sobre navegação.
Aplica a: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Calcula os valores de início de sessão de uma coluna num conjunto de linhas serializado.

Sintaxe

row_window_session ( Expr,MaxDistânciaDo Primeiro,MaxDistânciaEntreVizinhos [,Reiniciar] )

Parâmetros

Nome Tipo Obrigatório Description
Expr datetime ✔️ Uma expressão cujos valores são agrupados em sessões. Quando o Expr resulta num valor nulo, o valor seguinte inicia uma nova sessão.
MaxDistânciaDo Primeiro timespan ✔️ Determina quando uma nova sessão começa usando a distância máxima entre o valor Expr atual e o seu valor no início da sessão.
MaxDistânciaEntreVizinhos timespan ✔️ Outro critério para iniciar uma nova sessão usando a distância máxima de um valor de Expr para o seguinte.
Reiniciar boolean Se especificado, todos os valores que avaliam true reiniciam imediatamente a sessão.

Saiba mais sobre convenções de sintaxe.

Devoluções

A função devolve os valores no início de cada sessão. Utiliza o seguinte modelo conceptual de cálculo:

  1. Itera sobre a sequência de entrada dos valores Expr por ordem.

  2. Para cada valor, decide se cria uma nova sessão.

  3. Se for criada uma nova sessão, a função devolve o valor atual de Expr. Caso contrário, devolve o valor anterior de Expr.

Observação

O valor representa uma nova sessão se cumprir as seguintes condições usando a operação lógica OR:

  • Se não houve valor de sessão anterior, ou se o valor da sessão anterior foi nulo.
  • Se o valor de Expr for igual ou superior ao valor da sessão anterior mais MaxDistanceFromFirst.
  • Se o valor de Expr for igual ou superior ao valor anterior de Expr mais MaxDistânciaEntreVizinhos.
  • Se Restart a condição for especificada e avalie para true.

Examples

O exemplo seguinte calcula valores de início de sessão para uma tabela, datatable, com uma coluna de ID de sequência e uma coluna de carimbo temporal para registar a hora de cada registo. Os dados são ordenados pelos IDs de sequência e carimbos temporais e depois o exemplo devolve valores para ID,Timestamp e uma nova coluna SessionStarted . Uma sessão não pode exceder uma hora. Continua enquanto os registos estiverem com menos de cinco minutos de intervalo e o ID se mantiver igual. O exemplo inclui discos com menos de cinco minutos de intervalo.

datatable (ID:string, Timestamp:datetime) [
    "1", datetime(2024-04-11 10:00:00),
    "2", datetime(2024-04-11 10:18:00),
    "1", datetime(2024-04-11 11:00:00),
    "3", datetime(2024-04-11 11:30:00),
    "2", datetime(2024-04-11 13:30:00),
    "2", datetime(2024-04-11 10:16:00)
]
| sort by ID asc, Timestamp asc
| extend SessionStarted = row_window_session(Timestamp, 1h, 5m, ID != prev(ID))

Output

ID Data e Hora Sessão Iniciada
1 2024-04-11T10:00:00Z 2024-04-11T10:00:00Z
1 2024-04-11T11:00:00Z 2024-04-11T11:00:00Z
2 2024-04-11T10:16:00Z 2024-04-11T10:16:00Z
2 2024-04-11T10:18:00Z 2024-04-11T10:16:00Z
2 2024-04-11T13:30:00Z 2024-04-11T13:30:00Z
3 2024-04-11T11:30:00Z 2024-04-11T11:30:00Z