histogram
Calcula um histograma adaptativo. Os resultados podem não ser precisos.values — Expressão que resulta nos valores de entrada.
Parâmetros
number_of_bins — Limite superior para o número de bins no histograma. A função calcula automaticamente o número de bins. Ela tenta atingir o número especificado de bins, mas, se não conseguir, usa menos bins.
Valores retornados
-
Array de Tuplas no seguinte formato:
lower— Limite inferior do bin.upper— Limite superior do bin.height— Altura calculada do bin.
sequenceMatch
Verifica se a sequência contém uma cadeia de eventos que corresponde ao padrão. SintaxeEventos que compartilham o mesmo timestamp podem aparecer na sequência em uma ordem indefinida, afetando o resultado. Um timestamp
DateTime64 também leva em conta a fração de segundo na ordenação; portanto, apenas eventos que compartilham o mesmo tick têm ordem ambígua.-
timestamp— Coluna que contém dados temporais. Os tipos de dados típicos sãoDate,DateTimeeDateTime64. Você também pode usar qualquer um dos tipos de dados UInt suportados. -
cond1,cond2— Condições que descrevem a cadeia de eventos. Tipo de dado:UInt8. Você pode passar até 32 argumentos de condição. A função considera apenas os eventos descritos nessas condições. Se a sequência contiver dados não descritos por nenhuma condição, a função os ignora.
pattern— string de padrão. Consulte Sintaxe do padrão.
- 1, se houver correspondência com o padrão.
- 0, se não houver correspondência com o padrão.
UInt8.
Sintaxe do padrão
-
(?N)— Corresponde ao argumento de condição na posiçãoN. As condições são numeradas no intervalo[1, 32]. Por exemplo,(?1)corresponde ao argumento passado para o parâmetrocond1. -
.*— Corresponde a qualquer número de eventos. Você não precisa de argumentos condicionais para corresponder a esse elemento do padrão. -
(?t operator value)— Define o tempo que deve separar dois eventos. Por exemplo, o padrão(?1)(?t>1800)(?2)corresponde a eventos que ocorrem com mais de 1800 segundos de diferença entre si. Pode haver qualquer número de eventos entre esses eventos. Você pode usar os operadores>=,>,<,<=,==. Para um timestampDateTimeouDateTime64, o valor é expresso em segundos, independentemente da precisão deDateTime64. Assim, o padrão mantém o mesmo significado quando a coluna alterna entreDateTimeeDateTime64de qualquer escala. Para um timestampDate, o valor é expresso em dias; para um timestamp inteiro sem sinal, ele é expresso nas unidades do inteiro.
t:
sequenceCount
Conta o número de cadeias de eventos que corresponderam ao padrão. A função procura cadeias de eventos que não se sobrepõem. Ela começa a procurar a próxima cadeia depois que a cadeia atual é encontrada.Eventos que compartilham o mesmo timestamp podem aparecer na sequência em uma ordem indefinida, afetando o resultado. Um timestamp
DateTime64 também considera as frações de segundo na ordenação, portanto só há ambiguidade entre eventos que compartilham o mesmo tick.-
timestamp— Coluna considerada como contendo dados de tempo. Os tipos de dados mais comuns sãoDate,DateTimeeDateTime64. Você também pode usar qualquer um dos tipos de dados UInt compatíveis. -
cond1,cond2— Condições que descrevem a cadeia de eventos. Tipo de dado:UInt8. Você pode passar até 32 argumentos de condição. A função considera apenas os eventos descritos nessas condições. Se a sequência contiver dados que não estejam descritos em uma condição, a função os ignora.
pattern— String de padrão. Consulte Sintaxe do padrão.
- Número de cadeias de eventos não sobrepostas correspondentes.
UInt64.
Exemplo
Considere os dados na tabela t:
sequenceMatchEvents
Retorna os timestamps dos eventos das cadeias de eventos mais longas que corresponderam ao padrão.Eventos que compartilham o mesmo timestamp podem ficar na sequência em uma ordem indefinida, o que afeta o resultado. Um timestamp
DateTime64 também leva em conta a fração de segundo na ordenação, portanto, apenas eventos que compartilham o mesmo tick têm ordem ambígua.-
timestamp— Coluna considerada como contendo dados de tempo. Os tipos de dados mais comuns sãoDate,DateTimeeDateTime64. Você também pode usar qualquer um dos tipos de dados UInt compatíveis. -
cond1,cond2— Condições que descrevem a cadeia de eventos. Tipo de dado:UInt8. Você pode passar até 32 argumentos de condição. A função considera apenas os eventos descritos nessas condições. Se a sequência contiver dados que não estejam descritos em uma condição, a função os ignora.
pattern— String de padrão. Veja Sintaxe do padrão.
- Array de timestamps para os argumentos de condição correspondentes (?N) da cadeia de eventos. A posição no array corresponde à posição do argumento de condição no padrão
t:
windowFunnel
Procura cadeias de eventos em uma janela de tempo deslizante e calcula o número máximo de eventos ocorridos na cadeia. A função funciona de acordo com o algoritmo a seguir:- A função procura dados que disparam a primeira condição da cadeia e define o contador de eventos como 1. Esse é o momento em que a janela deslizante começa.
- Se os eventos da cadeia ocorrerem sequencialmente dentro da janela, o contador será incrementado. Se a sequência de eventos for interrompida, o contador não será incrementado.
- Se os dados tiverem várias cadeias de eventos em diferentes estágios de conclusão, a função retornará apenas o tamanho da cadeia mais longa.
timestamp— Nome da coluna que contém o timestamp. Tipos de dados compatíveis: Date, DateTime e outros tipos inteiros sem sinal (observe que, embora o timestamp seja compatível com o tipoUInt64, seu valor não pode exceder o valor máximo de Int64, que é 2^63 - 1).cond— Condições ou dados que descrevem a cadeia de eventos. UInt8.
window— Duração da janela deslizante; é o intervalo de tempo entre a primeira e a última condição. A unidade dewindowdepende do própriotimestampe varia. Ela é determinada usando a expressãotimestamp de cond1 <= timestamp de cond2 <= ... <= timestamp de condN <= timestamp de cond1 + window.mode— É um argumento opcional. Um ou mais modos podem ser definidos.'strict_deduplication'— Se a mesma condição for válida para a sequência de eventos, esse evento repetido interrompe o processamento subsequente. Observação: pode funcionar de forma inesperada se várias condições forem válidas para o mesmo evento.'strict_order'— Não permite a interferência de outros eventos. Por exemplo, no caso deA->B->D->C, ele para de encontrarA->B->CemD, e o nível máximo de evento é 2.'strict_increase'— Aplica condições apenas a eventos com timestamps estritamente crescentes.'strict_once'— Conta cada evento apenas uma vez na cadeia, mesmo que ele atenda à condição várias vezes.'allow_reentry'— Ignora eventos que violam a ordem estrita. Por exemplo, no caso de A->A->B->C, ele encontra A->B->C ignorando o A redundante, e o nível máximo de evento é 3.
Integer.
Exemplo
Determine se um determinado período é suficiente para o usuário selecionar um celular e comprá-lo duas vezes na loja online.
Defina a seguinte cadeia de eventos:
- O usuário fez login na conta da loja (
eventID = 1003). - O usuário procura um celular (
eventID = 1007, product = 'phone'). - O usuário fez um pedido (
eventID = 1009). - O usuário fez o pedido novamente (
eventID = 1010).
user_id conseguiu avançar na sequência em um período entre janeiro e fevereiro de 2019.
Query
Response
allow_reentry funciona com padrões de reentrada do usuário:
retention
A função recebe de 1 a 32 argumentos do tipoUInt8, que representam um conjunto de condições e indicam se determinada condição foi atendida para o evento.
Qualquer condição pode ser especificada como argumento (como em WHERE).
As condições, exceto a primeira, são aplicadas em pares: o resultado da segunda será verdadeiro se a primeira e a segunda forem verdadeiras; o da terceira, se a primeira e a terceira forem verdadeiras; e assim por diante.
Sintaxe
cond— Uma expressão que retorna um resultadoUInt8(1 ou 0).
- 1 — A condição foi atendida para o evento.
- 0 — A condição não foi atendida para o evento.
UInt8.
Exemplo
Vamos considerar um exemplo de cálculo da função retention para determinar o tráfego do site.
1. Crie uma tabela para ilustrar o exemplo.
Query
Query
Response
uid usando a função retention.
Query
Response
Query
Response
r1- o número de visitantes únicos que visitaram o site em 2020-01-01 (a condiçãocond1).r2- o número de visitantes únicos que visitaram o site durante um período específico entre 2020-01-01 e 2020-01-02 (as condiçõescond1econd2).r3- o número de visitantes únicos que visitaram o site durante um período específico em 2020-01-01 e 2020-01-03 (as condiçõescond1econd3).
uniqUpTo(N)(x)
Calcula o número de valores distintos do argumento até um limite especificado,N. Se o número de valores distintos do argumento for maior que N, esta função retorna N + 1; caso contrário, calcula o valor exato.
Recomendado para uso com N pequenos, até 10. O valor máximo de N é 100.
Para o estado de uma função de agregação, esta função usa uma quantidade de memória igual a 1 + N * o tamanho, em bytes, de um valor.
Ao lidar com strings, esta função armazena um hash não criptográfico de 8 bytes; o cálculo é aproximado para strings.
Por exemplo, se você tivesse uma tabela que registra cada consulta de pesquisa feita pelos usuários no seu site. Cada linha na tabela representa uma única consulta de pesquisa, com colunas para o ID do usuário, a consulta de pesquisa e o timestamp da consulta. Você pode usar uniqUpTo para gerar um relatório que mostre apenas as palavras-chave que produziram pelo menos 5 usuários únicos.
uniqUpTo(4)(UserID) calcula o número de valores únicos de UserID para cada SearchPhrase, mas conta apenas até 4 valores únicos. Se houver mais de 4 valores únicos de UserID para uma SearchPhrase, a função retornará 5 (4 + 1). A cláusula HAVING então filtra os valores de SearchPhrase para os quais o número de valores únicos de UserID é menor que 5. Isso fornecerá uma lista de palavras-chave de pesquisa que foram usadas por pelo menos 5 usuários únicos.
sumMapFiltered
Esta função se comporta da mesma forma que sumMap, exceto que também aceita, como parâmetro, um array de chaves para filtrar. Isso pode ser especialmente útil ao trabalhar com alta cardinalidade de chaves. SintaxesumMapFiltered(keys_to_keep)(keys, values)
Parâmetros
Valor retornado
- Retorna uma tupla de dois arrays: chaves em ordem classificada e valores somados para as chaves correspondentes.
Query
Query
Response
sumMapFilteredWithOverflow
Esta função se comporta da mesma forma que sumMap, exceto que também aceita, como parâmetro, um array de chaves para filtrar. Isso pode ser especialmente útil ao trabalhar com alta cardinalidade de chaves. Ela difere da função sumMapFiltered porque realiza a soma com overflow — ou seja, retorna para a soma o mesmo tipo de dado do tipo de dado do argumento. SintaxesumMapFilteredWithOverflow(keys_to_keep)(keys, values)
Parâmetros
Valor retornado
- Retorna uma tupla de dois arrays: chaves ordenadas e valores somados para as chaves correspondentes.
sum_map, inserimos alguns dados nela e, em seguida, usamos sumMapFilteredWithOverflow, sumMapFiltered e a função toTypeName para comparar o resultado. Como requests era do tipo UInt8 na tabela criada, sumMapFiltered promoveu o tipo dos valores somados para UInt64 para evitar overflow, enquanto sumMapFilteredWithOverflow manteve o tipo como UInt8, que não é grande o suficiente para armazenar o resultado — ou seja, ocorreu overflow.
Query
Query
Query
Response
Response
sequenceNextNode
Retorna o valor do próximo evento que correspondeu a uma cadeia de eventos. Função experimental,SET allow_experimental_funnel_functions = 1 para habilitá-la.
Sintaxe
-
direction— Usado para especificar a direção.- forward — Avança.
- backward — Retrocede.
-
base— Usado para definir o ponto base.- head — Define o ponto base como o primeiro evento.
- tail — Define o ponto base como o último evento.
- first_match — Define o ponto base como o primeiro
event1correspondente. - last_match — Define o ponto base como o último
event1correspondente.
timestamp— Nome da coluna que contém o timestamp. Tipos de dados compatíveis: Date, DateTime e outros tipos inteiros sem sinal.event_column— Nome da coluna que contém o valor do próximo evento a ser retornado. Tipos de dados compatíveis: String e Nullable(String).base_condition— Condição que o ponto base deve atender.event1,event2, … — Condições que descrevem a cadeia de eventos. UInt8.
event_column[next_index]— Se houver correspondência com o padrão e o próximo valor existir.NULL- Se não houver correspondência com o padrão ou o próximo valor não existir.
Query
Response
forward e head
backward e tail
forward e first_match
backward e last_match
base_condition