Настройка ADB to ADB Connector
Для отправки данных из локального (исходного) кластера ADB в удаленный (целевой) кластер ADB через ADB to ADB Connector необходимо предварительно создать следующие объекты на стороне локального кластера:
-
Server — инкапсулирует информацию о соединении с внешним источником данных.
-
User mapping — обеспечивает аутентификацию во внешнем источнике данных посредством сопоставления пользователей.
-
Foreign table — таблица ADB, определяющая структуру внешних данных. Foreign-таблица не хранит данные в ADB, но к ней можно обращаться с помощью запросов как к обычной таблице.
Примеры использования перечисленных объектов для отправки данных между кластерами ADB приведены в статье Примеры использования ADB to ADB Connector.
ВАЖНО
|
Server
Для создания сервера предназначена команда CREATE SERVER
, базовый синтаксис которой приведен ниже:
CREATE SERVER <server_name> [ TYPE '<server_type>' ] [ VERSION '<server_version>' ]
FOREIGN DATA WRAPPER <fdw_name>
[ OPTIONS ( [ <option> '<value>' [, ... ]] ) ]
где:
-
<server_name>
— имя сервера в ADB. Должно быть уникальным в рамках текущей базы данных ADB. -
<server_type>
— необязательный параметр, определяющий тип сервера. -
<server_version>
— необязательный параметр, определяющий версию сервера. -
<fdw_name>
— имя обертки внешних данных (foreign data wrapper). Необходимо указатьadb_fdw
— foreign data wrapper, который создается автоматически после установки коннектора (см. шаг 4 в статье Установка ADB to ADB Connector). -
<option>
— параметры сервера, определяющие детали подключения к внешнему источнику данных. Список возможных опций для ADB to ADB Connector приведен в таблице Опции сервера ниже. Обратите внимание, что эти опции (за исключениемhost
,port
,num_segments
) могут быть определены как на уровне сервера, так и на уровне foreign-таблицы. При этом опции, отмеченные как обязательные, должны быть указаны на одном из уровней. -
<value>
— значения соответствующих параметров<option>
.
ПРИМЕЧАНИЕ
|
Имя | Тип | Описание | Default | Обязательность |
---|---|---|---|---|
host |
TEXT |
IP-адрес или имя master-хоста удаленного кластера ADB. Правила валидации параметра |
— |
Да |
port |
TEXT |
Номер порта для подключения к master-хосту удаленного кластера ADB. Правила валидации параметра |
— |
Да |
dbname |
TEXT |
Имя целевой БД на стороне удаленного кластера ADB |
— |
Да |
mpp_execute |
TEXT |
Стратегия распределения обработки запроса. Возможно только одно значение — Изменение опции |
master |
Нет |
use_remote_estimate |
BOOL |
Флаг использования внешнего кластера при планировании запроса. Используется для оценки стоимости операций и расчета числа обработчиков на сегментах. Если Возможные значение: |
false |
Нет |
num_segments |
INT |
Число обработчиков на сегментах для обработки данных, поставляемых с endpoints параллельного курсора. Если число сегментов локального кластера меньше числа endpoints, то некоторым обработчикам локального кластера достанется больше endpoints (что создаст "перекос" в обработке данных — processing skew). Для ввода допускаются целые положительные числа >= |
— |
Нет |
fdw_startup_cost |
DOUBLE |
Оценка стоимости получения первой строки от источника данных. Для ввода допускаются дробные положительные числа |
100.0 |
Нет |
fdw_tuple_cost |
DOUBLE |
Оценка стоимости получения одной строки от источника данных. Для ввода допускаются дробные положительные числа |
0.01 |
Нет |
fetch_size |
INT |
Число строк в батче при чтении данных от источника. Для ввода допускаются целые положительные числа >= |
100 |
Нет |
updatable |
BOOL |
Определяет, будут ли разрешены изменения в таблицах на стороне удаленного кластера ADB посредством команды Возможные значение: |
true |
Нет |
User mapping
Для создания сопоставления пользователей предназначена команда CREATE USER MAPPING
, базовый синтаксис которой приведен ниже:
CREATE USER MAPPING FOR { <username> | USER | CURRENT_USER | PUBLIC }
SERVER <server_name>
[ OPTIONS ( <option> '<value>' [, ... ] ) ]
где:
-
<username>
— имя пользователя в базе данных ADB. Наряду с явным указанием пользователя, допускается ввод следующих констант:-
USER
илиCURRENT_USER
— текущий пользователь, установивший соединение с ADB. -
PUBLIC
— все существующие и будущие пользователи ADB.
-
-
<server_name>
— имя сервера. -
<option>
— параметры сопоставления пользователей. Как правило, включают имя пользователя и пароль для подключения к внешнему источнику данных. Список возможных опций для ADB to ADB Connector приведен в таблице Опции сопоставления пользователей ниже. -
<value>
— значения соответствующих параметров<option>
.
ПРИМЕЧАНИЕ
|
Имя | Тип | Описание | Default | Обязательность |
---|---|---|---|---|
user |
TEXT |
Имя пользователя в БД удаленного кластера ADB |
— |
Да |
password |
TEXT |
Пароль пользователя в БД удаленного кластера ADB |
— |
Да |
Foreign table
Для создания foreign-таблицы предназначена команда CREATE FOREIGN TABLE
, базовый синтаксис которой приведен ниже:
CREATE FOREIGN TABLE [ IF NOT EXISTS ] <table_name> ( [
<column_name> <data_type> [ COLLATE <collation> ] [ <column_constraint> [ ... ] ]
[, ... ]
] )
SERVER <server_name>
[ OPTIONS ( <option> '<value>' [, ... ] ) ]
где:
-
<table_name>
— имя foreign-таблицы в ADB. -
<column_name>
— имя столбца. -
<data_type>
— тип данных столбца. -
<collation>
— используемая для столбца сортировка (collation). -
<column_constraint>
— ограничение (constraint), определенное на уровне столбца. Имя ограничения<constraint_name>
указывается опционально. Синтаксис:[ CONSTRAINT <constraint_name> ] { NOT NULL | NULL | DEFAULT <default_expr> }
Возможные ограничения:
-
NOT NULL
— указывает, что столбец не может содержать null-значений. -
NULL
— указывает, что столбец может содержать null-значения. Это ограничение используется по умолчанию (если не указаноNOT NULL
). -
DEFAULT
— определяет для столбца значение по умолчанию<default_expr>
.
-
-
<server_name>
— имя сервера. -
<option>
— параметры foreign-таблицы. Для ADB to ADB Connector все опции, определенные на уровне сервера (за исключениемhost
,port
,num_segments
), могут быть переопределены на уровне foreign-таблиц (частично или полностью). При одновременном указании какой-либо опции для сервера и таблицы табличный уровень имеет больший приоритет. Дополнительно на уровне foreign table объявляются еще три опции, приведенные в таблице Опции foreign-таблицы ниже. -
<value>
— значения соответствующих параметров<option>
.
ПРИМЕЧАНИЕ
|
Имя | Тип | Описание | Default | Обязательность |
---|---|---|---|---|
schema_name |
TEXT |
Имя схемы для обращения к таблице на стороне удаленного кластера ADB. Если параметр не указан, применяется схема таблицы |
— |
Нет |
table_name |
TEXT |
Имя целевой таблицы на стороне удаленного кластера ADB |
— |
Да |
column_name |
TEXT |
Имя столбца целевой таблицы |
— |
Нет |