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

Табличный движок 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,])

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

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

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

Пример

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" для более подробной информации.

См. также