Kudu Catalog
Обзор
Kudu Catalog обеспечивает доступ к таблицам Kudu через механизм совместимости Trino Connector с помощью Trino Kudu Connector.
- Это экспериментальная возможность, поддерживаемая начиная с версии 3.0.1.
- Эта возможность не зависит от наличия кластера Trino и использует только плагин совместимости с Trino.
Сценарии использования
| Сценарий | Статус поддержки |
|---|---|
| Интеграция данных | Чтение данных Kudu и запись во внутренние таблицы Doris |
| Обратная запись данных | Не поддерживается |
Совместимость версий
- Версия Doris: 3.0.1 и выше
- Версия Trino Connector: 435
- Версия Kudu: сведения о поддерживаемых версиях см. в документации Trino
Быстрый старт
Шаг 1: Подготовка плагина коннектора
Получить плагин Kudu Connector можно одним из следующих способов:
Способ 1: Использование готового пакета (рекомендуется)
Загрузите и распакуйте предварительно собранный пакет плагина по этой ссылке.
Способ 2: Сборка вручную
Если требуется самостоятельная сборка, выполните следующие действия (необходим JDK 17):
git clone https://github.com/apache/doris-thirdparty.git
cd doris-thirdparty
git checkout trino-435
cd plugin/trino-kudu
mvn clean package -Dmaven.test.skip=true
После сборки вы получите каталог trino-kudu-435/ в trino/plugin/trino-kudu/target/.
Шаг 2: Развёртывание плагина
-
Поместите каталог
trino-kudu-435/в каталогconnectors/в директориях установки всех FE и BE (если каталог не существует, создайте его вручную):├── bin
├── conf
├── plugins
│ ├── connectors
│ ├── trino-kudu-435
...Путь к плагинам также можно настроить с помощью параметра
trino_connector_plugin_dirвfe.conf. Например:trino_connector_plugin_dir=/path/to/connectors/ -
Перезапустите все узлы FE и BE, чтобы коннектор загрузился корректно.
Шаг 3: Создание Catalog
Базовая конфигурация (без аутентификации)
CREATE CATALOG kudu_catalog PROPERTIES (
'type' = 'trino-connector',
'trino.connector.name' = 'kudu',
'trino.kudu.client.master-addresses' = 'ip1:port1,ip2:port2,ip3:port3',
'trino.kudu.authentication.type' = 'NONE'
);
Конфигурация аутентификации Kerberos
CREATE CATALOG kudu_catalog PROPERTIES (
'type' = 'trino-connector',
'trino.connector.name' = 'kudu',
'trino.kudu.client.master-addresses' = 'ip1:port1,ip2:port2,ip3:port3',
'trino.kudu.authentication.type' = 'KERBEROS',
'trino.kudu.authentication.client.principal' = 'user@DOMAIN.COM',
'trino.kudu.authentication.client.keytab' = '/path/to/kudu.keytab',
'trino.kudu.authentication.config' = '/etc/krb5.conf',
'trino.kudu.authentication.server.principal.primary' = 'kudu'
);
Шаг 4: Запрос данных
После создания Catalog можно выполнять запросы к данным таблиц Kudu одним из следующих трёх способов:
-- Method 1: Query after switching to Catalog
SWITCH kudu_catalog;
USE kudu_db;
SELECT * FROM kudu_tbl LIMIT 10;
-- Method 2: Use two-level path
USE kudu_catalog.kudu_db;
SELECT * FROM kudu_tbl LIMIT 10;
-- Method 3: Use fully qualified name
SELECT * FROM kudu_catalog.kudu_db.kudu_tbl LIMIT 10;
Настройка
Параметры настройки Catalog
Базовый синтаксис создания Kudu Catalog:
CREATE CATALOG [IF NOT EXISTS] catalog_name PROPERTIES (
'type' = 'trino-connector', -- Required, fixed value
'trino.connector.name' = 'kudu', -- Required, fixed value
{TrinoProperties}, -- Trino Connector related properties
{CommonProperties} -- Common properties
);
Параметры TrinoProperties
TrinoProperties используются для настройки свойств Trino Kudu Connector и имеют префикс trino.. Основные параметры:
| Имя параметра | Обязательный | Значение по умолчанию | Описание |
|---|---|---|---|
trino.kudu.client.master-addresses | Да | - | Список адресов узлов Kudu Master |
trino.kudu.authentication.type | Нет | NONE | Тип аутентификации: NONE или KERBEROS |
trino.kudu.authentication.client.principal | Нет | - | principal клиента Kerberos |
trino.kudu.authentication.client.keytab | Нет | - | Путь к файлу keytab Kerberos |
trino.kudu.authentication.config | Нет | - | Путь к файлу конфигурации Kerberos |
trino.kudu.authentication.server.principal.primary | Нет | - | Префикс principal сервера Kudu |
Дополнительные параметры настройки Kudu Connector см. в официальной документации Trino.
Параметры CommonProperties
CommonProperties используются для настройки общих свойств Catalog, таких как политики обновления метаданных, управление доступом и т. д. Подробную информацию см. в разделе «Общие свойства» документа Обзор Catalog.
Сопоставление типов данных
При использовании Kudu Catalog типы данных сопоставляются по следующим правилам:
| Тип Kudu | Тип Trino | Тип Doris | Примечания |
|---|---|---|---|
| boolean | boolean | boolean | |
| int8 | tinyint | tinyint | |
| int16 | smallint | smallint | |
| int32 | integer | int | |
| int64 | bigint | bigint | |
| float | real | float | |
| double | double | double | |
| decimal(P, S) | decimal(P, S) | decimal(P, S) | |
| binary | varbinary | string | Используйте функцию HEX(col) в запросе, чтобы отображаемые результаты совпадали с результатами Trino |
| string | varchar | string | |
| date | date | date | |
| unixtime_micros | timestamp(3) | datetime(3) | |
| other | UNSUPPORTED | - | Неподдерживаемый тип |
Чтобы отобразить значения типа binary в шестнадцатеричном формате, примените функцию HEX() к имени столбца, например: SELECT HEX(binary_col) FROM table.