histograma
values — Expresión que produce los valores de entrada.
Parámetros
number_of_bins — Límite superior del número de intervalos en el histograma. La función calcula automáticamente el número de intervalos. Intenta alcanzar el número de intervalos especificado, pero si no lo consigue, usa menos intervalos.
Valores devueltos
-
Array de Tuplas con el siguiente formato:
lower— Límite inferior del intervalo.upper— Límite superior del intervalo.height— Altura calculada del intervalo.
sequenceMatch
Los eventos que ocurren en el mismo segundo pueden aparecer en la secuencia en un orden indefinido, lo que afecta al resultado.
-
timestamp— Columna que se considera que contiene marcas de tiempo. Los tipos de datos típicos sonDateyDateTime. También puede usar cualquiera de los tipos de datos UInt compatibles. -
cond1,cond2— Condiciones que describen la cadena de eventos. Tipo de dato:UInt8. Puede pasar hasta 32 argumentos de condición. La función solo tiene en cuenta los eventos descritos en estas condiciones. Si la secuencia contiene datos que no se describen en ninguna condición, la función los omite.
pattern— Cadena del patrón. Consulte Sintaxis del patrón.
- 1, si el patrón coincide.
- 0, si el patrón no coincide.
UInt8.
Sintaxis del patrón
-
(?N)— Coincide con el argumento de condición en la posiciónN. Las condiciones se numeran en el intervalo[1, 32]. Por ejemplo,(?1)coincide con el argumento pasado al parámetrocond1. -
.*— Coincide con cualquier número de eventos. No necesita argumentos condicionales para hacer coincidir este elemento del patrón. -
(?t operator value)— Establece el tiempo en segundos que debe separar dos eventos. Por ejemplo, el patrón(?1)(?t>1800)(?2)coincide con eventos que ocurren con más de 1800 segundos de diferencia entre sí. Entre estos eventos puede haber una cantidad arbitraria de otros eventos. Puede usar los operadores>=,>,<,<=,==.
t:
sequenceCount
Los eventos que ocurren en el mismo segundo pueden quedar en la secuencia en un orden no definido, lo que afecta al resultado.
-
timestamp— Columna que se considera que contiene marcas de tiempo. Los tipos de datos típicos sonDateyDateTime. También puede usar cualquiera de los tipos de datos UInt compatibles. -
cond1,cond2— Condiciones que describen la cadena de eventos. Tipo de dato:UInt8. Puede proporcionar hasta 32 argumentos de condición. La función solo tiene en cuenta los eventos descritos en estas condiciones. Si la secuencia contiene datos no descritos en ninguna condición, la función los omite.
pattern— Cadena con el patrón. Consulte Sintaxis del patrón.
- Número de cadenas de eventos no superpuestas que coinciden.
UInt64.
Ejemplo
Considere los datos de la tabla t:
sequenceMatchEvents
Los eventos que ocurren en el mismo segundo pueden quedar en la secuencia en un orden indefinido, lo que afecta al resultado.
-
timestamp— Columna que se considera que contiene datos temporales. Los tipos de datos típicos sonDateyDateTime. También puede usar cualquiera de los tipos de datos UInt compatibles. -
cond1,cond2— Condiciones que describen la cadena de eventos. Tipo de dato:UInt8. Puede pasar hasta 32 argumentos de condición. La función solo tiene en cuenta los eventos descritos en estas condiciones. Si la secuencia contiene datos que no se describen en ninguna condición, la función los omite.
pattern— Cadena de patrón. Consulte Sintaxis del patrón.
- Array de marcas temporales para los argumentos de condición coincidentes (?N) de la cadena de eventos. La posición en el array coincide con la posición del argumento de condición en el patrón.
t:
windowFunnel
- La función busca datos que cumplen la primera condición de la cadena y establece el contador de eventos en 1. Este es el momento en que comienza la ventana deslizante.
- Si los eventos de la cadena ocurren secuencialmente dentro de la ventana, el contador se incrementa. Si la secuencia de eventos se interrumpe, el contador no se incrementa.
- Si los datos contienen varias cadenas de eventos con distintos grados de avance, la función solo devuelve el tamaño de la cadena más larga.
timestamp— Nombre de la columna que contiene la marca de tiempo. Tipos de datos admitidos: Date, DateTime y otros tipos enteros sin signo (ten en cuenta que, aunquetimestampadmite el tipoUInt64, su valor no puede superar el máximo de Int64, que es 2^63 - 1).cond— Condiciones o datos que describen la cadena de eventos. UInt8.
window— Longitud de la ventana deslizante; es el intervalo de tiempo entre la primera y la última condición. La unidad dewindowdepende del propiotimestampy puede variar. Se determina mediante la expresióntimestamp of cond1 <= timestamp of cond2 <= ... <= timestamp of condN <= timestamp of cond1 + window.mode— Es un argumento opcional. Se puede establecer uno o varios modos.'strict_deduplication'— Si la misma condición se cumple en la secuencia de eventos, ese evento repetido interrumpe el procesamiento posterior. Nota: puede comportarse de forma inesperada si varias condiciones se cumplen para el mismo evento.'strict_order'— No permite la interposición de otros eventos. Por ejemplo, en el caso deA->B->D->C, deja de encontrarA->B->Cal llegar aD, y el nivel máximo de evento es 2.'strict_increase'— Aplica las condiciones solo a eventos con marcas de tiempo estrictamente crecientes.'strict_once'— Cuenta cada evento solo una vez en la cadena, aunque cumpla la condición varias veces.'allow_reentry'— Ignora los eventos que infringen el orden estricto. Por ejemplo, en el caso de A->A->B->C, encuentra A->B->C ignorando la A redundante, y el nivel máximo de evento es 3.
Integer.
Ejemplo
Determina si un periodo de tiempo determinado es suficiente para que el usuario seleccione un teléfono y lo compre dos veces en la tienda en línea.
Define la siguiente cadena de eventos:
- El usuario inició sesión en su cuenta de la tienda (
eventID = 1003). - El usuario busca un teléfono (
eventID = 1007, product = 'phone'). - El usuario realizó un pedido (
eventID = 1009). - El usuario volvió a hacer el pedido (
eventID = 1010).
user_id en la cadena de eventos durante un período entre enero y febrero de 2019.
Query
Response
allow_reentry con patrones de reingreso de usuarios:
retention
UInt8 que indican si se ha cumplido una determinada condición para el evento.
Se puede especificar cualquier condición como argumento (como en WHERE).
Las condiciones, excepto la primera, se aplican por pares: el resultado de la segunda será verdadero si la primera y la segunda lo son; el de la tercera, si la primera y la tercera lo son; etc.
Sintaxis
cond— Una expresión que devuelve un resultadoUInt8(1 o 0).
- 1 — Se cumplió la condición para el evento.
- 0 — No se cumplió la condición para el evento.
UInt8.
Ejemplo
Veamos un ejemplo del cálculo de la función retention para determinar el tráfico del sitio.
1. Cree una tabla para este ejemplo.
Query
Query
Response
uid usando la función retention.
Query
Response
Query
Response
r1- el número de visitantes únicos que visitaron el sitio en 2020-01-01 (la condicióncond1).r2- el número de visitantes únicos que visitaron el sitio durante un período específico entre 2020-01-01 y 2020-01-02 (las condicionescond1ycond2).r3- el número de visitantes únicos que visitaron el sitio durante un período específico en 2020-01-01 y 2020-01-03 (las condicionescond1ycond3).
uniqUpTo(N)(x)
N. Si el número de valores distintos del argumento es mayor que N, esta función devuelve N + 1; en caso contrario, calcula el valor exacto.
Se recomienda usarla con valores pequeños de N, hasta 10. El valor máximo de N es 100.
Para el estado de una función de agregación, esta función utiliza una cantidad de memoria igual a 1 + N * el tamaño en bytes de un valor.
Cuando se trabaja con cadenas, esta función almacena un hash no criptográfico de 8 bytes; para las cadenas, el cálculo es aproximado.
Por ejemplo, supongamos que tiene una tabla que registra cada consulta de búsqueda realizada por los usuarios en su sitio web. Cada fila de la tabla representa una única consulta de búsqueda, con columnas para el ID de usuario, la consulta de búsqueda y el timestamp de la consulta. Puede usar uniqUpTo para generar un informe que muestre solo las palabras clave que hayan generado al menos 5 usuarios únicos.
uniqUpTo(4)(UserID) calcula la cantidad de valores únicos de UserID para cada SearchPhrase, pero solo cuenta hasta 4 valores únicos. Si hay más de 4 valores únicos de UserID para un SearchPhrase, la función devuelve 5 (4 + 1). La cláusula HAVING filtra después los valores de SearchPhrase cuyo número de valores únicos de UserID es inferior a 5. Esto le dará una lista de palabras clave de búsqueda utilizadas por al menos 5 usuarios únicos.
sumMapFiltered
sumMapFiltered(keys_to_keep)(keys, values)
Parámetros
Valor devuelto
- Devuelve una tupla de dos arrays: claves en orden y valores sumados para las claves correspondientes.
Query
Query
Response
sumMapFilteredWithOverflow
sumMapFilteredWithOverflow(keys_to_keep)(keys, values)
Parámetros
Valor devuelto
- Devuelve una tupla de dos arrays: las claves en orden y los valores sumados para las claves correspondientes.
sum_map, insertamos algunos datos en ella y luego usamos tanto sumMapFilteredWithOverflow como sumMapFiltered, junto con la función toTypeName, para comparar el resultado. Como requests era de tipo UInt8 en la tabla creada, sumMapFiltered ha promovido el tipo de los valores sumados a UInt64 para evitar el desbordamiento, mientras que sumMapFilteredWithOverflow ha mantenido el tipo como UInt8, que no es lo bastante grande como para almacenar el resultado; es decir, se ha producido un desbordamiento.
Query
Query
Query
Response
Response
sequenceNextNode
SET allow_experimental_funnel_functions = 1.
Sintaxis
-
direction— Se utiliza para indicar la dirección.- forward — Hacia adelante.
- backward — Hacia atrás.
-
base— Se utiliza para establecer el punto base.- head — Establece el punto base en el primer evento.
- tail — Establece el punto base en el último evento.
- first_match — Establece el punto base en el primer
event1que coincide. - last_match — Establece el punto base en el último
event1que coincide.
timestamp— Nombre de la columna que contiene la marca temporal. Tipos de datos compatibles: Date, DateTime y otros tipos de enteros sin signo.event_column— Nombre de la columna que contiene el valor del siguiente evento que se va a devolver. Tipos de datos compatibles: String y Nullable(String).base_condition— Condición que debe cumplir el punto base.event1,event2, … — Condiciones que describen la cadena de eventos. UInt8.
event_column[next_index]— Si el patrón coincide y existe un valor siguiente.NULL- Si el patrón no coincide o no existe un valor siguiente.
Query
Response
forward y head
backward y tail
forward y first_match
backward y last_match
base_condition