Pular para o conteúdo principal
O ClickHouse fornece funções de tabela para consultar dados armazenados em formatos de tabela abertos diretamente no armazenamento de objetos. Isso não exige conexão com um catálogo externo — os dados são consultados onde estão, de forma semelhante a como o AWS Athena lê do S3. Você informa o caminho de armazenamento e as credenciais diretamente na chamada da função, e o ClickHouse cuida do restante. Toda a sintaxe e as funções do ClickHouse SQL estão disponíveis, e as consultas se beneficiam da execução paralelizada do ClickHouse e do eficiente leitor nativo de Parquet.
Servidor, local ou chDBAs etapas deste guia podem ser executadas usando uma instalação existente do servidor ClickHouse. Para consultas ad hoc, você pode usar clickhouse-local e concluir o mesmo fluxo de trabalho sem executar um servidor. Com pequenos ajustes, o processo também pode ser realizado usando a distribuição in-process do ClickHouse, chDB.
Os exemplos a seguir usam o conjunto de dados hits armazenado em cada formato lakehouse no S3. Para cada formato lakehouse, existem funções dedicadas para cada provedor de armazenamento de objetos.
A table function iceberg (alias de icebergS3) lê tabelas Iceberg diretamente do armazenamento de objetos. Existem variantes para cada backend de armazenamento: icebergS3, icebergAzure, icebergHDFS e icebergLocal.Exemplo de sintaxe:
Suporte ao GCSA variante S3 das funções pode ser usada com o Google Cloud Storage (GCS).
Exemplo:

Variante de cluster

A função icebergS3Cluster distribui leituras entre múltiplos nós em um cluster ClickHouse. O nó iniciador estabelece conexões com todos os nós e despacha os arquivos de dados dinamicamente. Cada nó worker solicita e processa tarefas até que todos os arquivos sejam lidos. icebergCluster é um alias para icebergS3Cluster. Também existem variantes para Azure (icebergAzureCluster) e HDFS (icebergHDFSCluster).Exemplo de sintaxe:
Exemplo (ClickHouse Cloud):

Engine de tabela

Como alternativa ao uso da table function em cada consulta, você pode criar uma tabela persistente utilizando o motor de tabela Iceberg. Os dados continuam residindo no armazenamento de objetos e são lidos sob demanda — nenhum dado é copiado para o ClickHouse. A vantagem é que a definição da tabela fica armazenada no ClickHouse e pode ser compartilhada entre usuários e sessões, sem que cada usuário precise especificar o caminho de armazenamento e as credenciais. Existem variantes do motor para cada backend de armazenamento: IcebergS3 (ou o alias Iceberg), IcebergAzure, IcebergHDFS e IcebergLocal.Tanto o motor de tabela quanto a função de tabela suportam cache de dados, utilizando o mesmo mecanismo de cache dos motores de armazenamento S3, AzureBlobStorage e HDFS. Além disso, um metadata cache armazena informações do manifest file em memória, reduzindo leituras repetidas de metadados do Iceberg. Esse cache é habilitado por padrão por meio da configuração use_iceberg_metadata_files_cache.Exemplo de sintaxe:O mecanismo de tabela Iceberg é um alias de IcebergS3.
Suporte ao GCSA variante S3 do engine de tabela pode ser usada com o Google Cloud Storage (GCS).
Exemplo:
Para os recursos suportados, incluindo partition pruning, evolução de schema, time travel, caching e mais, consulte a matriz de suporte. Para referência completa, consulte a documentação da função de tabela iceberg e do motor de tabela Iceberg.
Última modificação em 12 de junho de 2026