A integração com o catálogo SeaweedFS funciona apenas com tabelas Iceberg.
- Serviço único - os metadados do catálogo e os dados Parquet são fornecidos por um único processo, sem um banco de dados de metadados separado
- Conformidade da API REST com a especificação do catálogo REST do Iceberg
- Manutenção no servidor - compactação automática de arquivos Parquet e expiração de snapshots, sem serviço de manutenção externo
Como este recurso é experimental, você precisará ativá-lo usando:
SET allow_experimental_database_iceberg = 1;Configuração para desenvolvimento local
Pré-requisitos
- Docker e Docker Compose: verifique se o Docker está instalado e em execução
- Versões: SeaweedFS 4.42 ou posterior; ClickHouse 26.8 ou posterior (as versões desde a 25.8 podem ler e inserir, mas a criação de tabelas pelo catálogo requer a versão 26.8)
- Python com PyIceberg (opcional): usado abaixo para inserir dados de exemplo
Configurar o catálogo local do SeaweedFS
s3config.json com as credenciais do gateway S3 e do catálogo:
docker-compose.yml com a seguinte configuração:
mini inicia toda a stack do SeaweedFS em um único container. A flag -tableBucket=analytics cria antecipadamente um bucket do S3 Tables chamado analytics, que funciona como warehouse do Iceberg.
Passo 3: Execute o seguinte comando para iniciar os serviços:
Inserindo dados de exemplo
pip install pyiceberg pyarrow):
Como se conectar ao catálogo local do SeaweedFS
catalog_credential e oauth_server_uri autenticam no próprio catálogo por meio do fluxo OAuth2 de credenciais de cliente. O SeaweedFS aceita a mesma chave de acesso e chave secreta para ambos.
Consultando tabelas do catálogo do SeaweedFS com o ClickHouse
Backticks obrigatóriosOs backticks são obrigatórios porque o ClickHouse não oferece suporte a mais de um espaço de nomes.
Criar tabelas e gravar dados do ClickHouse
IcebergS3 especifica o caminho de armazenamento da nova tabela, e write_full_path_in_iceberg_metadata faz com que o ClickHouse registre a localização completa da tabela no catálogo.
A criação de tabelas por meio de um catálogo requer o ClickHouse 26.8 ou posterior. As versões 26.4 a 26.7 gravam os arquivos da tabela antes de registrar o espaço de nomes, o que o SeaweedFS rejeita, a menos que o espaço de nomes já exista no catálogo; versões anteriores à 26.4 parecem funcionar, mas os arquivos da tabela são gravados no armazenamento de objetos sem serem registrados no catálogo.
Carregando dados do seu lago de dados para o ClickHouse
INSERT INTO SELECT: