Puedes inscribirte en la lista de espera de la Private Preview aquí.
Requisito previo
Crear tu primer ClickPipe
- Accede a la SQL Console de tu servicio de ClickHouse Cloud.
- Selecciona el botón
Data Sourcesen el menú lateral izquierdo y haz clic en “Set up a ClickPipe”
- Selecciona GCP Pub/Sub como fuente de datos.
- Completa el formulario asignándole un nombre a tu ClickPipe, indicando tu ID del proyecto de GCP y el archivo JSON de la cuenta de servicio de la cuenta de servicio a la que se le haya concedido acceso a Pub/Sub. El ID del proyecto debe tener entre 6 y 30 caracteres, puede contener letras minúsculas, dígitos y guiones, debe comenzar con una letra y no puede terminar con un guion.
-
Selecciona el tema de Pub/Sub desde el que ingestar. La lista desplegable se rellena automáticamente con los temas de tu proyecto de GCP (ordenados alfabéticamente) una vez validadas tus credenciales.
- Formato de datos. ClickPipes consulta el registro de esquemas de Pub/Sub cuando seleccionas un tema. Si el tema tiene asociado un esquema Avro o Protobuf nativo, el formato de datos y el esquema se detectan automáticamente, y los selectores quedan fijados al esquema más reciente del tema. Los temas sin un esquema nativo usan JSONEachRow de forma predeterminada.
- Offset inicial. Elige desde dónde comenzar a consumir. Las opciones disponibles son Latest (solo mensajes nuevos), Earliest (los mensajes retenidos más antiguos) y Seek to Timestamp (con un selector de fecha y hora en UTC).
- Expresión de filtro (opcional). Un filtro de suscripción de Pub/Sub sobre atributos del mensaje; por ejemplo,
attributes.type = "telemetry". Los filtros se aplican solo a los atributos del mensaje, no al payload, y no pueden cambiarse después de crear el pipe (para cambiar el filtro, es necesario volver a crear el pipe). - La UI mostrará un mensaje de muestra del tema seleccionado, con un interruptor Flatten object que te permite obtener una vista previa de cómo se aplanaría el JSON anidado en el destino.
- En el siguiente paso, puedes elegir si quieres ingestar datos en una tabla nueva de ClickHouse o reutilizar una existente. Sigue las instrucciones en pantalla para modificar el nombre de la tabla, el esquema y la configuración. Puedes ver una vista previa en tiempo real de tus cambios en la tabla de ejemplo de la parte superior.
- Como alternativa, puedes decidir ingestar tus datos en una tabla de ClickHouse existente. En ese caso, la UI te permitirá mapear campos desde el origen a los campos de ClickHouse de la tabla de destino seleccionada.
- Por último, puedes configurar los permisos del usuario interno de ClickPipes.
Full access: con acceso completo al clúster. Puede ser útil si usas una vista materializada o un Diccionario con la tabla de destino.Only destination table: con permisosINSERTsolo sobre la tabla de destino.
- Al hacer clic en “Complete Setup”, el sistema registrará tu ClickPipe y podrás verlo en la tabla de resumen.
- ¡Enhorabuena! Has configurado correctamente tu primer ClickPipe de Pub/Sub. Se ejecutará de forma continua, ingestando datos en tiempo real desde tu tema de Pub/Sub a tu servicio de ClickHouse Cloud.
Suscripciones administradas
- La suscripción administrada se llama
clickpipes-{pipeID}y se crea en el tema cuando se inicia el pipe. - Está configurada con un ack deadline de 60 segundos, retención de mensajes de 7 días y ordenación de mensajes activada.
- La creación de la suscripción es idempotente; los reinicios del pipe y las reprogramaciones de la réplica reutilizan una suscripción existente si ya apunta al tema configurado.
- Durante el descubrimiento de temas y el muestreo de mensajes, ClickPipes también crea suscripciones efímeras de corta duración (
clickpipes-discovery-{uuid}), que se eliminan inmediatamente después de que finaliza el muestreo. - Cuando se elimina el pipe, ClickPipes elimina la suscripción administrada como parte del proceso de desmantelamiento.
Formatos de datos compatibles
- JSON
- Avro — mediante esquemas nativos de Pub/Sub (codificación BINARY)
- Protobuf — mediante esquemas nativos de Pub/Sub (codificación BINARY)
Compresión
- gzip
- zstd
- lz4
- snappy (formato con tramas)
La detección automática es segura para formatos basados en texto como JSON, ya que los caracteres ASCII imprimibles nunca coincidirán con los bytes mágicos de compresión. La payload descomprimida está limitada a 64 MB.
Tipos de datos admitidos
Compatibilidad con tipos estándar
- Tipos numéricos básicos: [U]Int8/16/32/64, Float32/64 y BFloat16
- Tipos enteros de gran tamaño: [U]Int128/256
- Tipos decimales
- Booleano
- String
- FixedString
- Date, Date32
- DateTime, DateTime64 (solo zonas horarias UTC)
- Enum8/Enum16
- UUID
- IPv4
- IPv6
- Todos los tipos LowCardinality de ClickHouse
- Map con claves y valores que usan cualquiera de los tipos anteriores (incluidos Nullable)
- Tuple y Array con elementos que usan cualquiera de los tipos anteriores (incluidos Nullable; solo un nivel de profundidad)
- Tipos SimpleAggregateFunction (para destinos AggregatingMergeTree o SummingMergeTree)
Compatibilidad con el tipo Variant
Variant(String, Int64, DateTime)) para cualquier campo JSON
en el flujo de datos de origen. Debido a la forma en que ClickPipes determina qué subtipo de variante corresponde usar, solo puede utilizarse un tipo entero o de fecha y hora
en la definición de Variant; por ejemplo, Variant(Int64, UInt32) no es compatible.
Compatibilidad con el tipo JSON
Columnas virtuales de Pub/Sub
Add Column.
| Name | Description | Recommended Data Type |
|---|---|---|
| _message_id | ID del mensaje de Pub/Sub asignado por el broker | String |
| _publish_time | marca temporal de publicación de Pub/Sub (precisión de milisegundos, UTC) | DateTime64(3) |
| _ordering_key | clave de ordenación de Pub/Sub (cadena vacía cuando no se establece ninguna clave en el mensaje) | String |
| _attributes | atributos del mensaje de Pub/Sub definidos por el usuario | Map(String, String) |
| _raw_message | payload completo del mensaje de Pub/Sub (deshabilitado de forma predeterminada) | String |
_raw_message puede usarse cuando solo se requiere el payload completo del mensaje de Pub/Sub (por ejemplo, al usar funciones de ClickHouse JsonExtract* para poblar una vista materializada posterior). En esos pipes, eliminar todas las columnas “no virtuales” puede mejorar el rendimiento de ClickPipes.
Limitaciones
- DEFAULT no se admite.
- Los mensajes individuales están limitados de forma predeterminada a 8 MB (sin comprimir) al usar el tamaño de réplica más pequeño (XS), y a 16 MB (sin comprimir) con réplicas más grandes. Los mensajes que superen este límite se rechazarán con un error. Si necesita mensajes más grandes, póngase en contacto con el equipo de soporte.
- Los filtros de suscripción de Pub/Sub son inmutables: para cambiar la expresión de filtro, es necesario volver a crear el pipe.
- Los filtros se aplican solo a los atributos del mensaje, no al payload del mensaje.
Rendimiento
Procesamiento por lotes
- El tamaño del lote alcanza el máximo (100,000 filas o 32MB por cada 1GB de memoria de réplica)
- El lote ha permanecido abierto durante el tiempo máximo permitido (5 segundos)
Latencia
Claves de ordenación
Escalado
Semántica de entrega
_message_id (cada ID de mensaje de Pub/Sub es único dentro de un tema).