> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Предоставляет табличный интерфейс только для чтения для таблиц Delta Lake в Amazon S3.

# deltaLake

Предоставляет табличный интерфейс для таблиц [Delta Lake](https://github.com/delta-io/delta) в Amazon S3, Azure Blob Storage или в локально смонтированной файловой системе с поддержкой чтения и записи (с v25.10)

<div id="syntax">
  ## Синтаксис
</div>

`deltaLake` — это поддерживаемый для совместимости псевдоним `deltaLakeS3`.

```sql theme={null}
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])
```

<div id="arguments">
  ## Аргументы
</div>

Аргументы этой табличной функции совпадают с аргументами табличных функций `s3`, `azureBlobStorage`, `HDFS` и `file`.
Аргумент `format` задаёт формат файлов данных в таблице Delta Lake.

Необязательный параметр `extra_credentials` можно использовать, чтобы передать `role_arn` для ролевого доступа в ClickHouse Cloud. Шаги по настройке см. в разделе [Secure S3](/ru/products/cloud/guides/data-sources/accessing-s3-data-securely).

<div id="returned_value">
  ## Возвращаемое значение
</div>

Возвращает таблицу с указанной структурой для чтения данных из указанной таблицы Delta Lake или записи данных в неё.

<div id="examples">
  ## Примеры
</div>

<div id="reading-data">
  ### Чтение данных
</div>

Рассмотрим таблицу в хранилище S3 по адресу `https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/`.
Чтобы прочитать данные из этой таблицы в ClickHouse, выполните:

```sql title="Query" theme={null}
SELECT
    URL,
    UserAgent
FROM deltaLake('https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/')
WHERE URL IS NOT NULL
LIMIT 2
```

```response title="Response" theme={null}
┌─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 │
└───────────────────────────────────────────────────────────────────────┴───────────┘
```

<div id="inserting-data">
  ### Вставка данных
</div>

Рассмотрим таблицу в хранилище S3 по адресу `s3://ch-docs-s3-bucket/people_10k/`.
Чтобы вставить данные в таблицу, сначала включите экспериментальную возможность:

```sql title="Query" theme={null}
SET allow_experimental_delta_lake_writes=1
```

Затем введите:

```sql title="Query" theme={null}
INSERT INTO TABLE FUNCTION deltaLake('s3://ch-docs-s3-bucket/people_10k/', '<access_key>', '<secret>') VALUES (10001, 'John', 'Smith', 'Male', 30)
```

```response title="Response" theme={null}
Query id: 09069b47-89fa-4660-9e42-3d8b1dde9b17

Ok.

1 строка в наборе. Elapsed: 3.426 sec.
```

Вы можете убедиться, что вставка прошла успешно, снова прочитав данные из таблицы:

```sql title="Query" theme={null}
SELECT *
FROM deltaLake('s3://ch-docs-s3-bucket/people_10k/', '<access_key>', '<secret>')
WHERE (firstname = 'John') AND (lastname = 'Smith')
```

```response title="Response" theme={null}
Query id: 65032944-bed6-4d45-86b3-a71205a2b659

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

<div id="virtual-columns">
  ## Виртуальные столбцы
</div>

* `_path` — Путь к файлу. Тип: `LowCardinality(String)`.
* `_file` — Имя файла. Тип: `LowCardinality(String)`.
* `_size` — Размер файла в байтах. Тип: `Nullable(UInt64)`. Если размер файла неизвестен, значение — `NULL`.
* `_time` — Время последнего изменения файла. Тип: `Nullable(DateTime)`. Если время неизвестно, значение — `NULL`.
* `_etag` — ETag файла. Тип: `LowCardinality(String)`. Если ETag неизвестен, значение — `NULL`.

<div id="related">
  ## См. также
</div>

* [движок DeltaLake](/ru/reference/engines/table-engines/integrations/deltalake)
* [кластерная табличная функция DeltaLake](/ru/reference/functions/table-functions/deltalakeCluster)
