Настройки Trino ADB connector
В данной статье описаны параметры конфигурации коннектора Trino для ADB.
Параметры каталога Trino
Следующие конфигурационные параметры могут использоваться при создании нового каталога Trino для работы с кластером ADB.
Данные параметры можно указать в ADCM или с помощью предложения WITH
.
Например:
CREATE CATALOG test_adb_catalog USING adb
WITH (
"connection-url" = 'jdbc:postgresql://<adb_master>:5432/trino',
...
"configuration_param1" = "value"
"configuration_param2" = "value"
);
Параметр | Описание | Значение по умолчанию |
---|---|---|
adb.fetch-size |
Максимальное количество строк для выборки. Если значение не указано, оно вычисляется по формуле: |
— |
adb.array-mapping |
Способ преобразования данных типа массив.
Возможные значения: |
DISABLED |
adb.enable-string-pushdown-with-collate |
Включает оптимизацию pushdown для строковых типов данных с учетом collate |
false |
adb.include-system-tables |
Указывает, следует ли включать системные таблицы |
false |
adb.max-scan-parallelism |
Максимальный уровень параллелизма для сканирования таблиц |
1 |
adb.connector.write-buffer-size |
Максимальный объем памяти, выделяемый на один приемник (sink) для запросов на запись |
64MB |
adb.connector.read-buffer-size |
Максимальный объем памяти, выделяемый на объект курсора для запросов на чтение |
64MB |
adb.connector.gpfdist.retry-timeout |
Значение ADB-свойства |
— |
adb.connector.gp-parallel-cursor.enabled |
Активирует режим gp-parallel-cursor для чтения данных из ADB |
false |
Свойства таблиц ADB
Следующие свойства таблиц ADB могут быть установлены с помощью предложения WITH
при выполнении команд CREATE TABLE
/CREATE TABLE AS
.
Данные свойства по умолчанию имеют значение NULL
.
Если свойство явно не указано при создании таблицы с помощью коннектора, будут использоваться дефолтные значения кластера ADB.
Свойство таблицы | Описание |
---|---|
distributed |
Указывает способ распределения данных таблицы, который не зависит от конкретных столбцов.
Допустимые значения: |
distributed_by |
Указывает хеш-распределение данных таблицы.
Значение должно представлять собой массив имен столбцов, например |
appendoptimized |
Если установлено значение |
blocksize |
Устанавливает размер блока в байтах для таблиц типа append-optimized |
orientation |
Устанавливает тип ориентации данных в таблицах типа append-optimized.
Допустимые значения: |
checksum |
Установка |
compresstype |
Указывает алгоритм сжатия данных.
Допустимые значения: |
compresslevel |
Устанавливает уровень сжатия. Допустимые значения зависят от алгоритма сжатия:
|
fillfactor |
Устанавливает коэффициент заполнения для heap-таблиц.
Допустимые значения: от |
Ниже приведен пример установки параметров ADB-таблицы c помощью коннектора Trino.
CREATE TABLE nations (
n_nationkey integer,
n_name char(25),
n_regionkey integer,
n_comment varchar(152)
)
WITH (
distributed_by = ARRAY['nationkey', 'regionkey'], (1)
appendoptimized = true, (2)
orientation = 'columnar', (3)
compresstype = 'zstd' (4)
)
1 | Хеш-распределение по нескольким столбцам. |
2 | Установка типа таблицы append-optimized. |
3 | Использование колоночной ориентации данных. |
4 | Установка уровня сжатия с использованием алгоритма ZSTD. |
Сопоставление типов данных
При обмене данными между ADB и коннектором Trino типы данных преобразуются в соответствии со следующими правилами.
Тип данных ADB | Тип данных Trino |
---|---|
BIT |
BOOLEAN |
BOOLEAN |
BOOLEAN |
SMALLINT |
SMALLINT |
INTEGER |
INTEGER |
BIGINT |
BIGINT |
REAL |
REAL |
DOUBLE |
DOUBLE |
NUMERIC(p, s) |
DECIMAL(p, s) Тип DECIMAL(p, s) является алиасом NUMERIC(p, s) |
CHAR(n) |
CHAR(n) |
VARCHAR(n) |
VARCHAR(n) |
ENUM |
VARCHAR |
BYTEA |
VARBINARY |
DATE |
DATE |
TIME(n) |
TIME(n) |
TIMESTAMP(n) |
TIMESTAMP(n) |
TIMESTAMPTZ(n) |
TIMESTAMP(n) WITH TIME ZONE |
MONEY |
VARCHAR |
UUID |
UUID |
JSON |
JSON |
JSONB |
JSON |
HSTORE |
MAP(VARCHAR, VARCHAR) |
ARRAY |
DISABLED, ARRAY Больше информации доступно в разделе Особенности работы с ARRAY |
Тип данных ADB | Тип данных Trino |
---|---|
BOOLEAN |
BOOLEAN |
SMALLINT |
SMALLINT |
TINYINT |
SMALLINT |
INTEGER |
INTEGER |
BIGINT |
BIGINT |
REAL |
REAL |
DOUBLE |
DOUBLE |
DECIMAL(p, s) |
NUMERIC(p, s) Тип DECIMAL(p, s) является алиасом NUMERIC(p, s) |
CHAR(n) |
CHAR(n) |
VARCHAR(n) |
VARCHAR(n) |
VARBINARY |
BYTEA |
DATE |
DATE |
TIME(n) |
TIME(n) |
TIMESTAMP(n) |
TIMESTAMP(n) |
TIMESTAMP(n) WITH TIME ZONE |
TIMESTAMPTZ(n) |
UUID |
UUID |
JSON |
JSONB |
ARRAY |
ARRAY Больше информации доступно в разделе Особенности работы с ARRAY |
Параметры сопоставления типов данных
Следующие конфигурационные параметры позволяют изменить логику приведения типов данных.
Параметр | Описание | Значение по умолчанию |
---|---|---|
unsupported-type-handling |
Определяет поведение при обработке столбцов с неподдерживаемым типом данных. Допустимые значения:
Соответствующий параметр сессии — |
IGNORE |
jdbc-types-mapped-to-varchar |
Список типов данных, которые необходимо принудительно привести к типу |
— |
Особенности работы с DECIMAL
По умолчанию коннектор Trino выдает ошибку при обработке столбцов типа DECIMAL
без явного указания параметров точности (precision) и масштаба (scale).
Если конфигурационный параметр decimal-mapping
(или параметр сессии decimal_mapping
) имеет значение allow_overflow
, то столбцы типа DECIMAL
без явного указания точности/масштаба будут преобразованы в тип данных коннектора DECIMAL(38,0)
.
Используя конфигурационный параметр decimal-default-scale
(или параметр сессии decimal_default_scale
), можно указать собственное значение масштаба.
Значение точности всегда равно 38
.
Если значение DECIMAL
не помещается в отведенные разряды точности/масштаба без округления, коннектор выдает ошибку.
Это поведение можно изменить, включив автоматическое округление с помощью параметра коннектора decimal-rounding-mode
(или параметра сессии decimal_rounding_mode
).
Поддерживаются следующие значения округления: UNNECESSARY
(по умолчанию), UP
, DOWN
, CEILING
, FLOOR
, HALF_UP
, HALF_DOWN
и HALF_EVEN
.
Эти значения соответствуют правилам округления, принятым в Java 17.
Особенности работы с ARRAY
Тип данных ARRAY
в ADB не поддерживает массивы фиксированной размерности, в то время как коннектор Trino для ADB поддерживает только одномерные массивы.
С помощью параметра adb.array-mapping
(параметр сессии array_mapping
) можно указать, как коннектор должен обрабатывать типы данных ARRAY
.
Допустимые значения параметра:
-
DISABLED
(по умолчанию) — коннектор возвращает ошибку при обработке столбцов типаARRAY
. -
AS_ARRAY
— коннектор обрабатывает массивы ADB как тип данныхARRAY
. Это значение подходит для массивов ADB, которые фактически являются одномерными. Для многомерного массива будет сформировано исключение.