Saltar al contenido principal

Pregunta

¿Cómo puedo trabajar con mensajes JSON usando una tabla de origen o una tabla de aterrizaje para extraerlos con una vista materializada? ¿Cómo puedo trabajar con JSON sin usar el JSON Object experimental?

Respuesta

Un patrón común para trabajar con datos JSON consiste en enviar los datos a una tabla de aterrizaje y usar funciones JSONExtract para extraerlos a una tabla nueva mediante un trigger de una vista materializada. Esto normalmente se hace siguiendo el flujo y patrón siguientes:
La tabla de aterrizaje debe tener un campo raw de tipo String donde almacenar el JSON sin procesar. También debe tener uno o dos campos más que puedan usarse para gestionar esa tabla, de modo que pueda particionarse y depurarse a medida que los datos van envejeciendo. *algunas integraciones pueden añadir campos a los datos originales; por ejemplo, si se utiliza el ClickHouse Kafka Connector Sink. Ejemplo simplificado a continuación:
  • cree la base de datos de ejemplo
  • cree una tabla de aterrizaje donde se insertará su JSON sin procesar:
  • crear la tabla base de la vista materializada
  • crear la vista materializada sobre la tabla base
  • insertar algunas filas de ejemplo
  • ver los resultados de la extracción y la vista materializada que se utilizaría en las consultas
Enlaces de referencia adicionales: Vistas materializadas: https://clickhouse.com/docs/guides/developer/cascading-materialized-views Trabajo con JSON: https://clickhouse.com/docs/integrations/data-formats/json#other-approaches Funciones de JSON: https://clickhouse.com/docs/sql-reference/functions/json-functions
Última modificación el 19 de junio de 2026