Saltar al contenido principal
Proporciona una interfaz similar a una tabla para las tablas de Delta Lake en Amazon S3, Azure Blob Storage o un sistema de archivos montado localmente, con soporte tanto para operaciones de lectura como de escritura (desde la v25.10)

Sintaxis

deltaLake es un alias de deltaLakeS3, admitido por motivos de compatibilidad.
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

Los argumentos de esta función de tabla son los mismos que los de las funciones de tabla s3, azureBlobStorage, HDFS y file, respectivamente. El argumento format se refiere al formato de los archivos de datos de la tabla Delta Lake. Se puede usar un parámetro opcional extra_credentials para pasar un role_arn para el acceso basado en roles en ClickHouse Cloud. Consulta Secure S3 para ver los pasos de configuración.

Valor devuelto

Devuelve una tabla con la estructura especificada para leer o escribir datos en la tabla Delta Lake especificada.

Ejemplos

Lectura de datos

Considere una tabla en S3 ubicada en https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/. Para leer los datos de la tabla en ClickHouse, ejecute:
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 │
└───────────────────────────────────────────────────────────────────────┴───────────┘

Inserción de datos

Considere una tabla en un almacenamiento S3 en s3://ch-docs-s3-bucket/people_10k/. Para insertar datos en la tabla, primero habilite la funcionalidad experimental:
Query
SET allow_experimental_delta_lake_writes=1
Después, escribe:
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.
Puede confirmar que la inserción se realizó correctamente volviendo a consultar la tabla:
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 │
   └───────┴───────────┴──────────┴────────┴─────┘

Columnas virtuales

  • _path — Ruta del archivo. Tipo: LowCardinality(String).
  • _file — Nombre del archivo. Tipo: LowCardinality(String).
  • _size — Tamaño del archivo en bytes. Tipo: Nullable(UInt64). Si se desconoce el tamaño del archivo, el valor es NULL.
  • _time — Hora de la última modificación del archivo. Tipo: Nullable(DateTime). Si se desconoce la hora, el valor es NULL.
  • _etag — El etag del archivo. Tipo: LowCardinality(String). Si se desconoce el etag, el valor es NULL.
Última modificación el 10 de junio de 2026