La integración con el catálogo de SeaweedFS solo funciona con tablas Iceberg.
- Servicio único: los metadatos del catálogo y los datos Parquet se sirven desde un único proceso, sin una base de datos de metadatos independiente
- Cumplimiento de la especificación de catálogo REST de Iceberg mediante la API REST
- Mantenimiento en el servidor: compactación automática de archivos Parquet y expiración de snapshots, sin un servicio de mantenimiento externo
Dado que esta funcionalidad es experimental, debe habilitarla con:
SET allow_experimental_database_iceberg = 1;Configuración para desarrollo local
Requisitos previos
- Docker y Docker Compose: asegúrese de que Docker esté instalado y en ejecución
- Versiones: SeaweedFS 4.42 o posterior; ClickHouse 26.8 o posterior (las versiones desde la 25.8 pueden leer e insertar, pero para crear tablas mediante el catálogo se requiere la 26.8)
- Python con PyIceberg (opcional): se utiliza a continuación para inicializar datos de muestra
Configuración del catálogo local de SeaweedFS
s3config.json con las credenciales de la puerta de enlace de S3 y del catálogo:
docker-compose.yml con la siguiente configuración:
mini inicia toda la pila de SeaweedFS en un único contenedor. El indicador -tableBucket=analytics crea de antemano un bucket de S3 Tables llamado analytics, que sirve como warehouse de Iceberg.
Paso 3: Ejecute el siguiente comando para iniciar los servicios:
Carga de datos de ejemplo
pip install pyiceberg pyarrow):
Conexión al catálogo local de SeaweedFS
catalog_credential y oauth_server_uri autentican en el propio catálogo mediante el flujo OAuth2 de credenciales de cliente. SeaweedFS acepta la misma clave de acceso y clave secreta para ambos.
Consultar tablas de catálogo de SeaweedFS con ClickHouse
Se requieren comillas invertidasLas comillas invertidas son necesarias porque ClickHouse no admite más de un espacio de nombres.
Crear tablas y escribir datos desde ClickHouse
IcebergS3 especifica la ruta de almacenamiento de la nueva tabla, y write_full_path_in_iceberg_metadata hace que ClickHouse registre la ubicación completa de la tabla en el catálogo.
La creación de tablas mediante un catálogo requiere ClickHouse 26.8 o una versión posterior. Las versiones 26.4 a 26.7 escriben los archivos de la tabla antes de registrar el espacio de nombres, algo que SeaweedFS rechaza salvo que el espacio de nombres ya exista en el catálogo; las versiones anteriores a la 26.4 parecen funcionar correctamente, pero los archivos de la tabla se escriben en el almacenamiento de objetos sin registrarse en el catálogo.
Carga de datos desde su lago de datos en ClickHouse
INSERT INTO SELECT: