Pular para o conteúdo principal
Fornece uma interface semelhante a uma tabela para tabelas Delta Lake no Amazon S3, Azure Blob Storage ou em um sistema de arquivos montado localmente, com suporte a leituras e gravações (a partir da v25.10)

Sintaxe

deltaLake é um alias de deltaLakeS3, mantido por compatibilidade.
deltaLake(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,compression] [,extra_credentials])

deltaLakeS3(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,compression] [,extra_credentials])

deltaLakeAzure(connection_string|storage_account_url, container_name, blobpath, [,account_name], [,account_key] [,format] [,compression_method])

deltaLakeLocal(path, [,format])

Argumentos

Os argumentos para esta função de tabela são os mesmos das funções de tabela s3, azureBlobStorage, HDFS e file, respectivamente. O argumento format refere-se ao formato dos arquivos de dados na tabela Delta Lake. Um parâmetro opcional extra_credentials pode ser usado para passar um role_arn para controle de acesso baseado em papéis no ClickHouse Cloud. Consulte Secure S3 para ver as etapas de configuração.

Valor retornado

Retorna uma tabela com a estrutura especificada para leitura de dados da tabela Delta Lake especificada ou gravação de dados nela.

Exemplos

Leitura de dados

Considere uma tabela no armazenamento S3 em https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/. Para ler os dados da tabela no ClickHouse, execute:
Query
SELECT
    URL,
    UserAgent
FROM deltaLake('https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/')
WHERE URL IS NOT NULL
LIMIT 2
Response
┌─URL───────────────────────────────────────────────────────────────────┬─UserAgent─┐
│ http://auto.ria.ua/search/index.kz/jobinmoscow/detail/55089/hasimages │         1 │
│ http://auto.ria.ua/search/index.kz/jobinmoscow.ru/gosushi             │         1 │
└───────────────────────────────────────────────────────────────────────┴───────────┘

Inserção de dados

Considere uma tabela no armazenamento S3 em s3://ch-docs-s3-bucket/people_10k/. Para inserir dados na tabela, primeiro habilite o recurso experimental:
Query
SET allow_experimental_delta_lake_writes=1
Em seguida, escreva:
Query
INSERT INTO TABLE FUNCTION deltaLake('s3://ch-docs-s3-bucket/people_10k/', '<access_key>', '<secret>') VALUES (10001, 'John', 'Smith', 'Male', 30)
Response
Query id: 09069b47-89fa-4660-9e42-3d8b1dde9b17

Ok.

1 row in set. Elapsed: 3.426 sec.
Você pode confirmar que o insert funcionou lendo a tabela novamente:
Query
SELECT *
FROM deltaLake('s3://ch-docs-s3-bucket/people_10k/', '<access_key>', '<secret>')
WHERE (firstname = 'John') AND (lastname = 'Smith')
Response
Query id: 65032944-bed6-4d45-86b3-a71205a2b659

   ┌────id─┬─firstname─┬─lastname─┬─gender─┬─age─┐
1. │ 10001 │ John      │ Smith    │ Male   │  30 │
   └───────┴───────────┴──────────┴────────┴─────┘

Colunas virtuais

  • _path — Caminho do arquivo. Tipo: LowCardinality(String).
  • _file — Nome do arquivo. Tipo: LowCardinality(String).
  • _size — Tamanho do arquivo em bytes. Tipo: Nullable(UInt64). Se o tamanho do arquivo for desconhecido, o valor é NULL.
  • _time — Data e hora da última modificação do arquivo. Tipo: Nullable(DateTime). Se a data e hora forem desconhecidas, o valor é NULL.
  • _etag — O etag do arquivo. Tipo: LowCardinality(String). Se o etag for desconhecido, o valor é NULL.
Última modificação em 10 de junho de 2026