Saltar al contenido principal
De forma predeterminada, ClickPipe de GCS asume que los archivos se agregan a un bucket en orden lexicográfico. Es posible configurar un ClickPipe de GCS para ingestar archivos que no tengan un orden implícito configurando una suscripción de Google Cloud Pub/Sub conectada al bucket. Esto permite a ClickPipes recibir notificaciones OBJECT_FINALIZE e ingestar cualquier archivo nuevo, independientemente de la convención de nombres de los archivos.
El modo no ordenado no es compatible con buckets públicos. Requiere autenticación con cuenta de servicio y una suscripción de Google Cloud Pub/Sub conectada al bucket.

Cómo funciona

En este modo, ClickPipe para GCS realiza una carga inicial de todos los archivos de la ruta seleccionada y, a continuación, escucha las notificaciones de objetos a través de la suscripción de Pub/Sub que coincidan con la ruta especificada. Cualquier mensaje correspondiente a un archivo ya visto, a un archivo que no coincida con la ruta o a un evento de otro tipo se ignorará. No es posible iniciar la ingestión desde un archivo concreto o desde un momento determinado: ClickPipes siempre cargará todos los archivos de la ruta seleccionada. Pueden producirse varios tipos de fallos al ingestar datos, lo que puede dar lugar a inserciones parciales o a datos duplicados. Object Storage ClickPipes es resistente a los fallos de inserción y proporciona semántica exactly-once mediante tablas de staging temporales. Los datos se insertan primero en una tabla de staging; si algo sale mal, la tabla de staging se trunca y la inserción se reintenta desde un estado limpio. Solo cuando una inserción se completa correctamente se mueven las particiones a la tabla de destino.
1

Crear un tema de Google Cloud Pub/Sub

1. En Google Cloud Console, ve a Pub/Sub > Topics > Create topic. Crea un tema nuevo con una suscripción predeterminada y anota el Topic Name.2. Configura una notificación del bucket de GCS para que publique eventos OBJECT_FINALIZE en el tema de Pub/Sub creado anteriormente.2.1. Este paso no puede realizarse en Google Cloud Console, por lo que debes usar el cliente gcloud o la interfaz programática de Google Cloud que prefieras. Por ejemplo, con gcloud:
# Crea una notificación de Pub/Sub para nuevos objetos en el bucket
gcloud storage buckets notifications create "gs://${YOUR_BUCKET_NAME}" \
  --topic="projects/${YOUR_PROJECT_ID}/topics/${YOUR_TOPIC_NAME}" \
  --event-types="OBJECT_FINALIZE" \
  --payload-format="json"

# Enumera las notificaciones de Pub/Sub en el bucket
gcloud storage buckets notifications describe
2

Configurar una cuenta de servicio

1. Configura una cuenta de servicio con los permisos necesarios para permitir que ClickPipes liste y recupere objetos del bucket especificado, así como consumir y supervisar las notificaciones de la suscripción de Pub/Sub.1.1. Este paso puede realizarse en Google Cloud Console, con el cliente gcloud o con la interfaz programática de Google Cloud que prefieras. Por ejemplo, con gcloud:
# 1. Concede acceso de lectura al bucket de GCS
gcloud storage buckets add-iam-policy-binding "gs://${YOUR_BUCKET_NAME}" \
  --member="serviceAccount:${YOUR_SERVICE_ACCOUNT}@${YOUR_PROJECT_ID}.iam.gserviceaccount.com" \
  --role="roles/storage.objectViewer"

# 2. Concede acceso de lectura a la suscripción de Pub/Sub
gcloud pubsub subscriptions add-iam-policy-binding "${YOUR_SUBSCRIPTION_NAME}" \
  --member="serviceAccount:${YOUR_SERVICE_ACCOUNT}@${YOUR_PROJECT_ID}.iam.gserviceaccount.com" \
  --role="roles/pubsub.subscriber"

# 3. Concede permiso para obtener los metadatos de la suscripción de Pub/Sub
gcloud pubsub subscriptions add-iam-policy-binding "${YOUR_SUBSCRIPTION_NAME}" \
  --member="serviceAccount:${YOUR_SERVICE_ACCOUNT}@${YOUR_PROJECT_ID}.iam.gserviceaccount.com" \
  --role="roles/pubsub.viewer"
3

Crear un ClickPipe con modo no ordenado

1. En la consola de ClickHouse Cloud, ve a Data Sources > Create ClickPipe y selecciona Google Cloud Storage. Introduce los datos necesarios para conectarte a tu bucket de GCS. En Authentication method, elige Service Account y proporciona la clave .json de la cuenta de servicio.2. Activa Continuous ingestion, luego selecciona Any order como modo de ingestión e introduce el nombre de la Pub/Sub subscription correspondiente a la suscripción conectada a tu bucket. El nombre de la suscripción debe seguir el siguiente formato:
projects/${YOUR_PROJECT_ID}/subscriptions/${YOUR_SUBSCRIPTION_NAME}
3. Haz clic en Incoming data. Define una Sorting key para la tabla de destino. Realiza los ajustes necesarios en el esquema asignado y, a continuación, configura un rol para el usuario de base de datos de ClickPipes.4. Revisa la configuración y haz clic en Create ClickPipe. ClickPipes realizará un análisis inicial del bucket para cargar todos los archivos existentes que coincidan con la ruta especificada y, a continuación, empezará a procesar archivos a medida que lleguen nuevos eventos OBJECT_FINALIZE al tema.
Última modificación el 10 de junio de 2026