Cette page ne s’applique pas à ClickHouse Cloud. La fonctionnalité décrite ici n’est pas disponible dans les services ClickHouse Cloud.
Consultez le guide ClickHouse Compatibilité Cloud pour plus d’informations.
s3 et le type de disque S3 de ClickHouse sont compatibles avec SeaweedFS, un stockage d’objets distribué open source doté d’une passerelle compatible S3. SeaweedFS traite nativement les requêtes de type chemin, de sorte qu’un stockage auto-hébergé fonctionne sans DNS générique. SeaweedFS prend également en charge les tables Iceberg : ses buckets de tables stockent les données sous forme de fichiers Parquet, et le catalogue REST Iceberg intégré fournit les métadonnées des tables. Consultez le guide du catalogue SeaweedFS pour les interroger via le même endpoint.
Utilisez SeaweedFS 4.42 ou une version ultérieure. Les versions antérieures peuvent supprimer un objet dont l’écriture est validée alors que son dossier parent est supprimé car considéré comme vide, ce qui se manifeste par Object ... suddenly disappeared juste après une écriture réussie.
Exécuter SeaweedFS en local
s3config.json contenant les identifiants S3 :
-bucket crée le bucket au démarrage :
echo "s3.bucket.create -name mybucket" | docker exec -i seaweedfs weed shell.
Par défaut, une écriture est confirmée dès qu’elle est transmise au système d’exploitation. Pour synchroniser chaque écriture sur le disque avec fsync avant de la confirmer, activez fsync sur le bucket :
MergeTree adossé à S3
SETTINGS disk = 's3_cache' : le disque de cache défini ci-dessus repose sur le disque S3.
La fonction de table s3
s3 lit et écrit des objets via le même endpoint :
Sauvegarde et restauration
BACKUP et RESTORE acceptent un endpoint SeaweedFS comme destination S3 :