ResumoUm passo a passo prático para consultar tabelas de lago de dados, acelerá-las com MergeTree e gravar os resultados de volta no Iceberg. Todas as etapas usam conjuntos de dados públicos e funcionam tanto no Cloud quanto no OSS.
1
Consulte dados do Iceberg diretamente
A forma mais rápida de começar é com a função de tabelaicebergS3() — aponte-a para uma tabela Iceberg no S3 e consulte imediatamente, sem precisar de configuração.Inspecione o esquema:deltaLake(), hudi() e paimon().Saiba mais: Consultando formatos de tabela abertos diretamente abrange os quatro formatos, variantes de cluster para leituras distribuídas e opções de backend de armazenamento (S3, Azure, HDFS, local).2
Crie um engine de tabela persistente
Para acessos recorrentes, crie uma tabela usando o engine de tabela Iceberg para que você não precise passar o path toda vez. Os dados permanecem no S3 — nenhum dado é duplicado:3
Conectar a um catálogo
A maioria das organizações gerencia tabelas Iceberg por meio de um catálogo de dados para centralizar os metadados das tabelas e a descoberta de dados. O ClickHouse oferece suporte à conexão com seu catálogo usando o mecanismo de banco de dadosDataLakeCatalog, expondo todas as tabelas do catálogo como um banco de dados no ClickHouse. Essa é a opção mais escalável, pois, à medida que novas tabelas Iceberg são criadas, elas ficam sempre acessíveis no ClickHouse sem exigir trabalho adicional.Veja um exemplo de conexão com o AWS Glue:Os backticks são obrigatórios em
<database>.<table> porque o ClickHouse não oferece suporte nativo a mais de um espaço de nomes.4
Faça uma consulta
Independentemente do método usado acima — função de tabela, engine de tabela ou catálogo — o mesmo ClickHouse SQL pode ser usado em todos eles:FROM muda. Todas as funções, junções e agregações do ClickHouse SQL funcionam da mesma forma, independentemente da fonte de dados.5
Carregar um subconjunto no ClickHouse
Consultar o Iceberg diretamente é conveniente, mas o desempenho é limitado pela vazão da rede e pela organização dos arquivos. Para cargas de trabalho analíticas, carregue os dados em uma tabela MergeTree nativa.Primeiro, execute uma consulta filtrada na tabela Iceberg para obter uma referência inicial:counterid — espere que leve vários segundos.Agora crie uma tabela MergeTree e carregue os dados:counterid é a primeira coluna da chave ORDER BY, o índice primário esparso do ClickHouse vai direto aos grânulos relevantes — lendo apenas as linhas de counterid = 38 em vez de varrer todas as 100 milhões de linhas. O resultado é uma aceleração drástica.O guia acelerando análises vai além com tipos LowCardinality, índices de texto completo e chaves de ordenação otimizadas, demonstrando uma melhoria de ~40x em um conjunto de dados com 283 milhões de linhas.Saiba mais: Acelerando análises com MergeTree aborda a otimização do esquema, a indexação de texto completo e uma comparação completa de desempenho antes/depois.6
Gravar de volta em Iceberg
O ClickHouse também pode gravar dados de volta em tabelas Iceberg, permitindo fluxos de ETL reverso — publicando resultados agregados ou subconjuntos para uso por outras ferramentas (Spark, Trino, DuckDB etc.).Crie uma tabela Iceberg para a saída:Próximos passos
- Consulta direta — Os quatro formatos, variantes de cluster, motores de tabela, cache
- Conexão com catálogos — Passo a passo completo do Unity Catalog com Delta e Iceberg
- Acelerando análises — Otimização de esquema, indexação, demo de ganho de desempenho de ~40x
- Gravando em lagos de dados — Escritas brutas, escritas agregadas, mapeamento de tipos
- Matriz de suporte — Comparação de recursos entre formatos e backends de armazenamento