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

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: Развёртывание плагина​

  1. Поместите каталог 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/

  2. Перезапустите все узлы 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Примечания
booleanbooleanboolean
int8tinyinttinyint
int16smallintsmallint
int32integerint
int64bigintbigint
floatrealfloat
doubledoubledouble
decimal(P, S)decimal(P, S)decimal(P, S)
binaryvarbinarystringИспользуйте функцию HEX(col) в запросе, чтобы отображаемые результаты совпадали с результатами Trino
stringvarcharstring
datedatedate
unixtime_microstimestamp(3)datetime(3)
otherUNSUPPORTED-Неподдерживаемый тип
подсказка

Чтобы отобразить значения типа binary в шестнадцатеричном формате, примените функцию HEX() к имени столбца, например: SELECT HEX(binary_col) FROM table.