Skip to main content
Esta página não se aplica ao ClickHouse Cloud. O recurso documentado aqui não está disponível nos serviços do ClickHouse Cloud. Consulte o guia Compatibilidade com Cloud do ClickHouse para mais informações.
A função de tabela s3 e o tipo de disco S3 do ClickHouse são compatíveis com o SeaweedFS, um armazenamento distribuído de objetos de código aberto com um gateway compatível com S3. O SeaweedFS atende nativamente a solicitações no estilo path; portanto, uma instalação self-hosted funciona sem DNS wildcard. O SeaweedFS também oferece suporte a tabelas Iceberg: seus buckets de tabela armazenam os dados em arquivos Parquet, e o catálogo REST Iceberg integrado fornece os metadados das tabelas — consulte o guia do catálogo do SeaweedFS para consultá-las pelo mesmo endpoint. Use o SeaweedFS 4.42 ou uma versão mais recente. Versões anteriores podem excluir um objeto cuja gravação é confirmada enquanto a pasta pai é removida por estar vazia, o que resulta em Object ... suddenly disappeared logo após uma gravação bem-sucedida.

Executando o SeaweedFS localmente

Para um ambiente de teste local, crie um arquivo s3config.json com as credenciais do S3:
Em seguida, inicie toda a stack do SeaweedFS em um único contêiner — a flag -bucket cria o bucket na inicialização:
O endpoint do S3 está disponível na porta 8333; aguarde até que ele responda antes de continuar:
Mais buckets podem ser criados a qualquer momento com echo "s3.bucket.create -name mybucket" | docker exec -i seaweedfs weed shell. Por padrão, uma gravação é confirmada assim que é passada ao sistema operacional. Para executar o fsync de cada gravação no disk antes de confirmá-la, habilite o fsync no bucket:

MergeTree com suporte a S3

A configuração do MergeTree com suporte a S3 é compatível com pequenas alterações:
O endpoint contém o nome do bucket (clickhouse), seguido de um prefixo de caminho (tables/) para os dados da tabela. O SeaweedFS não exige uma Region, portanto a tag pode permanecer vazia. Substitua seaweedfs pelo host que executa o gateway S3.
As tabelas armazenam seus dados no SeaweedFS por meio da política de armazenamento:
Para manter um cache local dos dados acessados com frequência, crie a tabela usando SETTINGS disk = 's3_cache' — o disco de cache definido acima envolve o disco S3.

A função de tabela s3

A função de tabela s3 lê e grava objetos no mesmo endpoint:
Os padrões glob permitem ler vários objetos.

Backup e restauração

BACKUP e RESTORE aceitam um endpoint do SeaweedFS como destino do S3:
Última modificação em 18 de agosto de 2026