Перейти к основному содержимому
Перейти к основному содержимому

Табличный движок DeltaLake

Этот табличный движок обеспечивает интеграцию с существующими таблицами Delta Lake в хранилищах S3, GCP и Azure и поддерживает как чтение, так и запись (начиная с v25.10).

Создание таблицы DeltaLake

Чтобы создать таблицу DeltaLake, она уже должна существовать в хранилище S3, GCP или Azure. Команды ниже не принимают параметры DDL для создания новой таблицы.

Синтаксис

CREATE TABLE table_name
ENGINE = DeltaLake(url, [aws_access_key_id, aws_secret_access_key,] [extra_credentials])

Параметры движка

  • url — URL-адрес бакета с путём к существующей таблице Delta Lake.
  • aws_access_key_id, aws_secret_access_key - долгосрочные учетные данные пользователя аккаунта AWS. Вы можете использовать их для аутентификации своих запросов. Параметр является необязательным. Если учетные данные не указаны, используются данные из конфигурационного файла.
  • extra_credentials - Необязательно. Используется для передачи role_arn для доступа на основе ролей в ClickHouse Cloud. См. Secure S3 для шагов настройки.

Параметры движка могут быть заданы с использованием именованных коллекций.

Пример

CREATE TABLE deltalake
ENGINE = DeltaLake('http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/test_table/', 'ABC123', 'Abc+123')

Использование именованных коллекций:

<clickhouse>
    <named_collections>
        <deltalake_conf>
            <url>http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/</url>
            <access_key_id>ABC123<access_key_id>
            <secret_access_key>Abc+123</secret_access_key>
        </deltalake_conf>
    </named_collections>
</clickhouse>
CREATE TABLE deltalake
ENGINE = DeltaLake(deltalake_conf, filename = 'test_table')

Запись данных с использованием таблицы DeltaLake

После того как вы создали таблицу с использованием табличного движка DeltaLake, вы можете вставить в неё данные следующим образом:

SET allow_experimental_delta_lake_writes = 1;

INSERT INTO deltalake(id, firstname, lastname, gender, age)
VALUES (1, 'John', 'Smith', 'M', 32);
Примечание

Запись с использованием табличного движка поддерживается только через delta kernel. Запись в Azure пока не поддерживается, но работает запись в S3 и GCS.

Кэш данных

Движок таблиц DeltaLake и табличная функция поддерживают кэширование данных так же, как хранилища S3, AzureBlobStorage, HDFS. См. раздел "Движок таблиц S3" для более подробной информации.

См. также