Desarrollan un nuevo y potente tipo de dato JSON para ClickHouse
(clickhouse.com)Introducción
- JSON se ha consolidado como el formato estándar para manejar datos semiestructurados y no estructurados en los sistemas de datos modernos.
- ClickHouse reconoce la importancia de JSON y ha resuelto varios retos para usarlo de forma efectiva a gran escala.
Retos
-
Reto 1: un almacenamiento verdaderamente orientado a columnas
Para procesar datos JSON con la misma eficiencia que otros tipos de columna, es necesario almacenar las rutas JSON de forma orientada a columnas. -
Reto 2: integración de datos que cambian dinámicamente y de tipos
Se debe mantener la integridad de los datos permitiendo almacenar distintos tipos de datos para las rutas JSON. -
Reto 3: evitar la explosión de archivos de datos de columnas en disco
Cuando hay muchas claves JSON únicas, se deben imponer límites a la creación de columnas para evitar una explosión de archivos de columnas. -
Reto 4: almacenamiento denso
Cuando hay muchas claves JSON únicas pero poco frecuentes, se debe evitar almacenar de forma redundanteNULLo valores predeterminados.
Nuevo tipo de dato JSON
- ClickHouse introduce un nuevo tipo de dato JSON para el procesamiento de JSON de alto rendimiento.
- Este tipo admite datos que cambian dinámicamente y mantiene una alta compresión de datos y rendimiento en consultas.
- Es posible ajustar el rendimiento proporcionando pistas para el parseo de JSON.
Bloque base 1 - tipo Variant
- El tipo Variant permite almacenar eficientemente valores de distintos tipos de datos dentro de la misma columna de una tabla.
- Mantiene la integridad de los datos usando una subcolumna separada para cada tipo de dato.
Bloque base 2 - tipo Dynamic
- El tipo Dynamic amplía el tipo Variant para permitir almacenar diversos tipos de datos sin especificarlos de antemano.
- Limita la cantidad de tipos almacenados para evitar la explosión de archivos de columnas.
Tipo JSON de ClickHouse
- Basándose en los tipos Variant y Dynamic, se implementó un nuevo tipo JSON que resuelve todos los retos.
- Puede almacenar datos sin importar la estructura del objeto JSON, y permite leer valores usando rutas JSON como subcolumnas.
Resumen de GN⁺
- El nuevo tipo de dato JSON de ClickHouse se enfoca en resolver los problemas de rendimiento de JSON en el análisis de datos a gran escala.
- Este tipo admite diversos tipos de datos y ofrece alto rendimiento y escalabilidad.
- Además de JSON, sienta las bases para soportar otros tipos semiestructurados como XML y YAML.
- Es útil para desarrolladores que usan ClickHouse y ofrece ventajas en compresión de datos y rendimiento de consultas.
1 comentarios
Comentarios de Hacker News
En PostHog, decidir usar ClickHouse fue una de las mejores decisiones. Nos permitió escalar el rendimiento y construir más productos sobre el mismo conjunto de datos
Me pregunto si agregar tipos de datos a JSON hace que siga calificando como JSON
Qué bueno ver esta funcionalidad en ClickHouse
Al evaluar ClickHouse, también vale la pena considerar Apache Pinot
Me parece interesante para datos que cambian dinámicamente
Llevaba tiempo esperando el soporte JSON de ClickHouse, y el nuevo tipo junto con las columnas dinámicas será especialmente útil
ClickHouse es una gran herramienta
Cuando probé ClickHouse hace unas semanas, nombraba los archivos según el nombre de la columna, y por nombres de archivo largos y barras terminaba generando errores en el sistema de archivos
ClickHouse no se usa lo suficiente
clickhouse-locales excelente para procesar CSV con SQL, y lo recomiendo mucho si ya te cansaste de Google Sheets o Excel