Delta Lake Catalog
Обзор
Delta Lake Catalog использует инфраструктуру совместимости Trino Connector с Trino Delta Lake Connector для доступа к таблицам Delta Lake.
- Это экспериментальная функция, поддерживаемая начиная с версии 3.0.1.
- Для этой функции не требуется кластер Trino: используется только плагин совместимости с Trino.
Сценарии использования
| Сценарий | Поддержка |
|---|---|
| Интеграция данных | Чтение данных Delta Lake и запись во внутренние таблицы Doris |
| Обратная запись данных | Не поддерживается |
Совместимость версий
- Версия Doris: 3.0.1 и выше
- Версия Trino Connector: 435
- Версия Delta Lake: сведения о поддерживаемых версиях см. в документации Trino
Быстрый старт
Шаг 1: Подготовка плагина коннектора
Получить плагин Delta Lake Connector можно одним из следующих способов:
Способ 1: Использование готового пакета (рекомендуется)
Скачайте готовые пакеты trino-delta-lake-435-20240724.tar.gz и hdfs.tar.gz и распакуйте их.
Способ 2: Сборка вручную
Если необходимо собрать плагин самостоятельно, выполните следующие действия (требуется JDK 17):
git clone https://github.com/apache/doris-thirdparty.git
cd doris-thirdparty
git checkout trino-435
cd plugin/trino-delta-lake
mvn clean install -DskipTests
cd ../../lib/trino-hdfs
mvn clean install -DskipTests
После сборки вы получите каталог trino-delta-lake-435 в trino/plugin/trino-delta-lake/target/, а также каталог hdfs в trino/lib/trino-hdfs/target/.
Шаг 2: Развёртывание плагина
-
Поместите каталог
trino-delta-lake-435/в каталогconnectors/в директориях развёртывания всех FE и BE (если каталог отсутствует, создайте его вручную):├── bin
├── conf
├── plugins
│ ├── connectors
│ ├── trino-delta-lake-435
│ ├── hdfs
...Вы также можете задать собственный путь к плагинам, изменив параметр
trino_connector_plugin_dirвfe.conf. Например:trino_connector_plugin_dir=/path/to/connectors/ -
Перезапустите все узлы FE и BE, чтобы обеспечить корректную загрузку коннектора.
Шаг 3: Создание Catalog
Базовая конфигурация
CREATE CATALOG delta_lake_catalog PROPERTIES (
'type' = 'trino-connector',
'trino.connector.name' = 'delta_lake',
'trino.hive.metastore' = 'thrift',
'trino.hive.metastore.uri' = 'thrift://ip:port',
'trino.hive.config.resources' = '/path/to/core-site.xml,/path/to/hdfs-site.xml'
);
Описание конфигурации
trino.hive.metastore: тип службы метаданных; поддерживаютсяthrift(Hive Metastore) и другие типы.trino.hive.metastore.uri: адрес службы Hive Metastoretrino.hive.config.resources: путь к файлу конфигурации Hadoop; несколько файлов указываются через запятую
Дополнительные параметры конфигурации см. в разделе «Описание конфигурации» ниже или в официальной документации Trino.
Шаг 4: Запрос данных
После создания Catalog можно выполнять запросы к данным таблиц Delta Lake одним из следующих трёх способов:
-- Method 1: Switch to Catalog then query
SWITCH delta_lake_catalog;
USE delta_lake_db;
SELECT * FROM delta_lake_tbl LIMIT 10;
-- Method 2: Use two-level path
USE delta_lake_catalog.delta_lake_db;
SELECT * FROM delta_lake_tbl LIMIT 10;
-- Method 3: Use fully qualified name
SELECT * FROM delta_lake_catalog.delta_lake_db.delta_lake_tbl LIMIT 10;
Описание конфигурации
Параметры настройки Catalog
Базовый синтаксис создания Delta Lake Catalog:
CREATE CATALOG [IF NOT EXISTS] catalog_name PROPERTIES (
'type' = 'trino-connector', -- Required, fixed value
'trino.connector.name' = 'delta_lake', -- Required, fixed value
{TrinoProperties}, -- Trino Connector related properties
{CommonProperties} -- Common properties
);
Параметры TrinoProperties
TrinoProperties используются для настройки свойств Trino Delta Lake Connector. Эти свойства имеют префикс trino.. Основные параметры:
| Имя параметра | Обязательный | Значение по умолчанию | Описание |
|---|---|---|---|
trino.hive.metastore | Да | - | Тип службы метаданных, например thrift |
trino.hive.metastore.uri | Да | - | Адрес службы Hive Metastore |
trino.hive.config.resources | Нет | - | Путь к файлу конфигурации Hadoop; несколько файлов указываются через запятую |
trino.delta.hide-non-delta-tables | Нет | false | Скрывать ли таблицы, не относящиеся к Delta Lake |
Дополнительные параметры конфигурации Delta Lake Connector см. в официальной документации Trino.
Параметры CommonProperties
CommonProperties используются для настройки общих свойств Catalog, таких как политики обновления метаданных, управление доступом и т. д. Подробные сведения см. в разделе «Общие свойства» документа Обзор Catalog.
Сопоставление типов данных
При использовании Delta Lake Catalog типы данных сопоставляются по следующим правилам:
| Тип Delta Lake | Тип Trino | Тип Doris | Примечания |
|---|---|---|---|
| boolean | boolean | boolean | |
| int | int | int | |
| byte | tinyint | tinyint | |
| short | smallint | smallint | |
| long | bigint | bigint | |
| float | real | float | |
| double | double | double | |
| decimal(P, S) | decimal(P, S) | decimal(P, S) | |
| string | varchar | string | |
| binary | varbinary | string | |
| date | date | date | |
| timestamp_ntz | timestamp(N) | datetime(N) | |
| timestamp | timestamp with time zone(N) | datetime(N) | |
| array | array | array | |
| map | map | map | |
| struct | row | struct |