Los pasos siguientes también funcionarán sin problemas en una instalación local de ClickHouse. El único cambio sería usar la función
s3 en lugar de s3cluster (a menos que tengas un cluster configurado; en ese caso, cambia default por el nombre de tu cluster).Instrucciones paso a paso
1
Exploración de datos
Veamos qué aspecto tienen los datos. La función de tabla ClickHouse infiere el siguiente esquema a partir del archivo JSON:
s3cluster devuelve una tabla, así que podemos DESCRIBE el resultado:2
Crear la tabla
A partir del esquema inferido, ajustamos los tipos de datos y añadimos una clave primaria.
Defina la siguiente tabla:
3
Insertar datos
El siguiente comando transmite los registros de los archivos de S3 a la tabla Algunos comentarios sobre nuestro comando
youtube.INSERT:- La función
parseDateTimeBestEffortUSOrZeroresulta útil cuando es posible que los campos de fecha entrantes no estén en el formato correcto. Sifetch_dateno se puede analizar correctamente, se establecerá en0 - La columna
upload_datecontiene fechas válidas, pero también cadenas como “4 hours ago”, que claramente no es una fecha válida. Decidimos almacenar el valor original enupload_date_stre intentar convertirlo contoDate(parseDateTimeBestEffortUSOrZero(upload_date::String)). Si el análisis falla, simplemente obtenemos0 - Usamos
ifNullpara evitar valoresNULLen nuestra tabla. Si un valor entrante esNULL, la funciónifNullestablece el valor como una cadena vacía
4
Cuenta el número de filas
Abre una nueva pestaña en SQL Console de ClickHouse Cloud (o una nueva ventana de
clickhouse-client) y observa cómo aumenta el recuento.
Llevará un tiempo insertar 4.56B filas, según los recursos de tu server. (Sin ajustar ninguna configuración, tarda unas 4.5 horas.)5
Explora los datos
Una vez insertados los datos, cuenta cuántos «No me gusta» tienen tus videos o canales favoritos. Veamos cuántos videos ha subido ClickHouse:Veamos los «me gusta» y «no me gusta» de los videos de ClickHouse:La respuesta se ve así:Aquí tienes una búsqueda de videos con ClickHouse en los campos Esta consulta tiene que procesar cada fila y, además, analizar dos columnas de cadenas. Aun así, obtenemos un rendimiento bastante bueno de 4,15 M filas/segundo:Los resultados son así:
La consulta anterior se ejecuta tan rápido porque elegimos
uploader como la primera columna de la clave primaria, por lo que solo tuvo que procesar 237k filas.title o description: