Skip to main content

Ingesta de archivos Parquet desde un bucket de S3

A continuación, se presentan algunos conceptos básicos sobre el uso del motor de tabla S3 para leer archivos Parquet.
  • cree claves de acceso y secretas para un usuario de servicio de IAM. los usuarios normales de inicio de sesión por lo general no funcionan, ya que pueden haberse configurado con una política de MFA.
  • establezca los permisos en la política para permitir que el usuario de servicio acceda al bucket y a las carpetas.
A continuación se muestra un ejemplo muy sencillo que puede usar para probar que el acceso a sus archivos Parquet funciona correctamente antes de aplicarlo a sus datos reales. Si necesita un ejemplo de cómo crear un usuario y un bucket, puede seguir las dos primeras secciones (crear usuario y crear bucket): Integración de S3 con ClickHouse Yo utilicé este archivo de muestra: https://github.com/Teradata/kylo/tree/master/samples/sample-data/parquet y lo cargué en mi bucket de prueba Puede configurar la política del bucket de una forma similar a esta: (ajústela según sea necesario; esta es bastante abierta en cuanto a privilegios, pero ayudará en las pruebas. puede restringir sus permisos según sea necesario)
Puede ejecutar consultas con una sintaxis como esta mediante el motor de tabla S3: https://clickhouse.com/docs/sql-reference/table-functions/s3/
La referencia de tipos de datos para el formato Parquet está aquí: https://clickhouse.com/docs/interfaces/formats/#data-format-parquet Para incorporar los datos a una tabla nativa de ClickHouse: cree la tabla, algo así (solo elegí un par de columnas del archivo Parquet):
Seleccione los datos del bucket de S3 para insertarlos en la nueva tabla:
Compruebe la importación:
Cuando estés listo para importar tus datos reales, puedes usar una sintaxis especial, como comodines y rangos, para especificar las carpetas, subcarpetas y archivos en tu bucket. Te recomiendo filtrar algunos directorios y archivos para probar la importación primero; por ejemplo, un año determinado, un par de meses y algún rango de fechas. además de las opciones de ruta aquí, recientemente se añadió la sintaxis **, que especifica todos los subdirectorios de forma recursiva. https://clickhouse.com/docs/sql-reference/table-functions/s3/ Por ejemplo, suponiendo que las rutas y la estructura del bucket sean algo así: https://your_s3_bucket.s3.amazonaws.com/<your_folder>/<year>/<month>/<day>/<filename>.parquet https://mars-doc-test.s3.amazonaws.com/system_logs/2022/11/01/my-app-logs-0001.parquet Esto obtendría todos los archivos correspondientes al día 1 de cada mes en 2021-2022 https://mars-doc-test.s3.amazonaws.com/system_logs/{2021-2022}/**/01/*.parquet
Última modificación el 23 de julio de 2026