Эта страница не применима к ClickHouse Cloud. Описанная здесь возможность недоступна в сервисах ClickHouse Cloud.
Дополнительные сведения см. в руководстве ClickHouse Cloud Compatibility.
s3 и тип диска S3 в ClickHouse совместимы с SeaweedFS — распределённым хранилищем объектов с открытым исходным кодом и S3-совместимым шлюзом. SeaweedFS нативно поддерживает запросы в стиле path-style, поэтому самоуправляемое хранилище работает без wildcard DNS. SeaweedFS также поддерживает таблицы Iceberg: в его бакетах таблиц данные хранятся в виде файлов Parquet, а встроенный REST-каталог Iceberg предоставляет метаданные таблиц. О выполнении запросов к ним через ту же конечную точку см. руководство по каталогу SeaweedFS.
Используйте SeaweedFS 4.42 или более новую версию. В более ранних версиях объект может быть удалён, если коммит его записи происходит одновременно с удалением родительской папки как пустой. Сразу после успешной записи это проявляется сообщением Object ... suddenly disappeared.
Запуск SeaweedFS на локальной машине
s3config.json с учетными данными S3:
-bucket создаст бакет при запуске:
echo "s3.bucket.create -name mybucket" | docker exec -i seaweedfs weed shell.
По умолчанию запись подтверждается после передачи операционной системе. Чтобы перед подтверждением выполнять fsync каждой записи на диск, включите fsync для бакета:
MergeTree с бэкендом S3
SETTINGS disk = 's3_cache' — определённый выше кэш-диск является обёрткой для S3-диска.
Табличная функция s3
s3 читает и записывает объекты через одну и ту же конечную точку:
Резервное копирование и восстановление
BACKUP и RESTORE поддерживают конечную точку SeaweedFS в качестве пункта назначения S3: