ObjectCreated:* e ingestar cualquier archivo nuevo, independientemente de la convención de nomenclatura de los archivos.
El modo no ordenado solo es compatible con Amazon S3 y no es compatible con buckets públicos ni con servicios compatibles con S3. Requiere configurar una cola de Amazon SQS conectada al bucket y, opcionalmente, usar Amazon EventBridge como enrutador de eventos.
Cómo funciona
ObjectCreated:* en la cola 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á. Los archivos se ingestan cuando se alcanza el umbral configurado en max insert bytes o max file count, o después de un intervalo configurable (30 segundos de forma predeterminada). No es posible iniciar la ingestión desde un archivo concreto o un momento específico: 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 tolera los fallos de inserción y proporciona semántica exactly-once mediante tablas temporales de staging. 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. Las particiones solo se mueven a la tabla de destino una vez que la inserción se ha completado correctamente.
Crear una cola de Amazon SQS
1. En la AWS Console, navegue a Simple Queue Service > Create queue. Utilice los valores predeterminados para crear una nueva cola estándar.2. Conecte su bucket de S3 a la cola SQS mediante una de las dos opciones que se describen a continuación. EventBridge es la opción recomendada para la mayoría de los casos de uso, ya que admite fan-out, un filtrado de eventos más flexible y no está sujeto a la restricción de S3 de una regla de notificación por tipo de evento y por prefijo.- vía EventBridge
- S3 directo → SQS
a. En las propiedades del bucket de S3, ve a Event notifications > Amazon EventBridge y habilita el envío de notificaciones a EventBridge. Haz clic en Save changes.b. En la Console de AWS, ve a Amazon EventBridge > Rules > Create rule. Asigna un nombre a la regla (por ejemplo, Opcionalmente, añade una condición
S3ObjectCreated), elige el bus de eventos default y haz clic en Next. En el paso Build event pattern, selecciona AWS events or EventBridge partner events como origen del evento y luego introduce manualmente el siguiente patrón de evento, sustituyendo <bucket-name> por el nombre de tu bucket:object.key al patrón para filtrar por prefijo o sufijo. Si lo haces, asegúrate de que coincida con la ruta configurada para el ClickPipe.c. En el paso Select target(s), elige AWS service como tipo de destino y selecciona SQS queue. Elige la cola creada en el paso anterior. Deja marcada la opción Use execution role (recommended) para que EventBridge cree automáticamente el IAM role necesario y, a continuación, haz clic en Next y completa el asistente.d. Edita la política de acceso de la cola de SQS para permitir que EventBridge le envíe mensajes. Sustituye <sqs-queue-arn> y <eventbridge-rule-arn> por los valores correspondientes:Configurar un rol de IAM
1. En la consola de ClickHouse Cloud, ve a Settings > Network security information y copia el ARN del rol de IAM de tu servicio.2. En la consola de AWS, ve a IAM > Roles > Create role. Elige Custom trust policy y pega lo siguiente, sustituyendo<ch-cloud-arn> por el ARN del rol de IAM que copiaste en el paso anterior:<bucket-arn> y <sqs-queue-arn> por los valores correspondientes:Crear un ClickPipe con modo no ordenado
1. En la consola de ClickHouse Cloud, vaya a Data Sources > Create ClickPipe y seleccione Amazon S3. Introduzca la información necesaria para conectarse a su bucket de S3. En Authentication method, elija IAM role y proporcione el ARN del rol que creó en el paso anterior.2. En Incoming data, active Continuous ingestion. Seleccione Any order como modo de ingestión y proporcione la SQS queue URL de la cola conectada a su bucket.3. En Parse information, defina una Sorting key para la tabla de destino. Haga los ajustes necesarios en el esquema asignado y, a continuación, configure un rol para el usuario de la base de datos de ClickPipes.4. Revise la configuración y haga clic en Create ClickPipe. ClickPipes realizará un escaneo inicial de su bucket para cargar todos los archivos existentes que coincidan con la ruta especificada y luego comenzará a procesar los archivos a medida que lleguen nuevos eventosObjectCreated:* a la cola.