Skip to main content
Nos guias anteriores, você consultou formatos de tabela abertos diretamente e carregou dados no MergeTree para análises rápidas. Em muitas arquiteturas, os dados também precisam fluir na direção oposta — do ClickHouse de volta para formatos de tabela abertos. Dois cenários comuns motivam isso:
  • Transferência para armazenamento de longo prazo - Os dados chegam ao ClickHouse como uma camada de analytics em tempo real, alimentando dashboards e relatórios operacionais. Quando os dados ultrapassam sua janela de tempo real, eles podem ser gravados no Iceberg em armazenamento de objetos para retenção durável e econômica em um formato interoperável.
  • ETL reverso - Transformações, agregações e enriquecimento realizados dentro do ClickHouse produzem conjuntos de dados derivados que ferramentas downstream e outras equipes precisam consumir. Gravar esses resultados em tabelas Iceberg os disponibiliza para todo o ecossistema de dados.
Em ambos os casos, INSERT INTO SELECT permite mover dados de tabelas do ClickHouse para tabelas Iceberg armazenadas em armazenamento de objetos.
No momento, a gravação em formatos de tabela abertos é compatível apenas com tabelas Iceberg. O suporte parcial para tabelas Delta Lake está em desenvolvimento. As tabelas não devem ser gerenciadas por um catálogo.

Prepare um dataset de origem

Para este guia, usaremos o dataset UK Price Paid — um registro público de todas as transações de imóveis residenciais na Inglaterra e no País de Gales.
Popule a tabela diretamente a partir da fonte CSV pública:

Gravar dados em uma tabela Iceberg

Criar a tabela Iceberg

Para leituras diretas de uma tabela Iceberg existente, recomendamos a função de tabela icebergS3. Este guia demonstra a criação e o preenchimento de tabelas Iceberg independentes, portanto usa o motor de tabela IcebergS3 com um esquema explícito. Os locais S3 de exemplo já contêm as tabelas concluídas; para executar as instruções CREATE e INSERT, substitua ambos os locais por prefixos S3 vazios e graváveis, além de credenciais sob seu controle. Observe que o esquema precisa ser simplificado em comparação com a tabela de origem no MergeTree. O ClickHouse oferece suporte a um sistema de tipos mais rico que o Iceberg e os arquivos Parquet subjacentes — tipos como Enum, LowCardinality e UInt8 não são compatíveis com o Iceberg e precisam ser mapeados para tipos compatíveis.

Insira um subconjunto dos dados

Use INSERT INTO SELECT para gravar dados da tabela MergeTree na tabela Iceberg. Neste exemplo, gravamos apenas as transações de Londres: Este exemplo exige a configuração allow_insert_into_iceberg. Consulte a matriz de suporte para ver o nível de maturidade e as limitações atuais.

Consulte a tabela Iceberg

Os dados agora estão armazenados no formato Iceberg em armazenamento de objetos e podem ser consultados a partir do ClickHouse — ou de qualquer outra ferramenta que leia Iceberg:

Gravar resultados agregados

As tabelas Iceberg não se limitam a armazenar linhas brutas. Elas também podem armazenar a saída de agregações e transformações — os resultados de processos de ETL executados no ClickHouse. Isso é útil para publicar resumos pré-computados em um lakehouse para consumo downstream.

Criar uma tabela Iceberg para dados agregados

Inserir dados agregados

Calcule o preço médio dos imóveis por cidade e grave os resultados diretamente no Iceberg:

Consulte a tabela agregada

Outras ferramentas — e outras instâncias do ClickHouse — agora podem ler esse conjunto de dados pré-calculado:
Última modificação em 26 de agosto de 2026