L’intégration au catalogue SeaweedFS fonctionne uniquement avec les tables Iceberg.
- Service unique - les métadonnées du catalogue et les données Parquet sont fournies par un seul processus, sans base de données de métadonnées distincte
- Conformité de l’API REST à la spécification du catalogue REST Iceberg
- Maintenance côté serveur - compaction automatique des fichiers Parquet et expiration des snapshots, sans service de maintenance externe
Cette fonctionnalité étant expérimentale, vous devez l’activer à l’aide de :
SET allow_experimental_database_iceberg = 1;Configuration de développement local
Prérequis
- Docker et Docker Compose : assurez-vous que Docker est installé et en cours d’exécution
- Versions : SeaweedFS 4.42 ou version ultérieure ; ClickHouse 26.8 ou version ultérieure (les versions remontant à 25.8 peuvent lire et insérer, mais la création de tables via le catalogue nécessite la version 26.8)
- Python avec PyIceberg (facultatif) : utilisé ci-dessous pour générer des données d’exemple
Configuration du catalogue SeaweedFS local
s3config.json contenant les identifiants de la passerelle S3 et du catalogue :
docker-compose.yml avec la configuration suivante :
mini démarre l’ensemble de la stack SeaweedFS dans un seul conteneur. L’option -tableBucket=analytics crée à l’avance un bucket S3 Tables nommé analytics, qui sert de warehouse Iceberg.
Étape 3 : Exécutez la commande suivante pour démarrer les services :
Ajout de données d’exemple
pip install pyiceberg pyarrow) :
Connexion au catalogue SeaweedFS local
catalog_credential et oauth_server_uri permettent de s’authentifier auprès du catalogue via le flux client credentials OAuth2. SeaweedFS accepte la même clé d’accès et la même clé secrète pour les deux.
Interroger les tables du catalogue SeaweedFS à l’aide de ClickHouse
Backticks obligatoiresLes backticks sont obligatoires, car ClickHouse ne prend pas en charge plusieurs espaces de noms.
Création de tables et écriture de données depuis ClickHouse
IcebergS3 indique le chemin de stockage de la nouvelle table, et write_full_path_in_iceberg_metadata permet à ClickHouse d’enregistrer l’emplacement complet de la table dans le catalogue.
La création de tables via un catalogue nécessite ClickHouse 26.8 ou une version ultérieure. Les versions 26.4 à 26.7 écrivent les fichiers de la table avant d’enregistrer l’espace de noms, ce que SeaweedFS rejette à moins que cet espace de noms n’existe déjà dans le catalogue ; les versions antérieures à 26.4 semblent aboutir, mais les fichiers de la table sont écrits dans le stockage d’objets sans être enregistrés dans le catalogue.
Chargement des données de votre lac de données dans ClickHouse
INSERT INTO SELECT :