CREATE EXTERNAL DATA SOURCE
Вызов CREATE EXTERNAL DATA SOURCE создает внешний источник данных.
CREATE EXTERNAL DATA SOURCE external_data_source WITH (
SOURCE_TYPE="source_type",
LOCATION="ip_address_or_fqdn:port",
USE_TLS="use_tls",
AUTH_METHOD="auth_method",
LOGIN="login",
PASSWORD_SECRET_NAME="password_secret_name"
)
Где:
external_data_source- название внешнего источника данных.source_type- тип внешнего источника данных. Возможные значения:ClickHouse,PostgreSQL,ObjectStorage.ip_address_or_fqdn:port- полный сетевой адрес внешнего источника данных, включая порт. В качестве сетевого адреса можно указывать IP-адрес или FQDN.use_tls- флаг, указывающий требование подключения через безопасное соединение (TLS). Возможные значения:TRUE,FALSE.auth_method- способ аутентификации во внешнем источника данных. Для внешних источников типовClickHouse,PostgreSQLподдерживается только тип аутентификацииBASIC. Для внешнего источникаObjectStorageв данный момент поддерживает только тип аутентификацииNONE.login- логин, используемый для подключения к внешнему источнику данных.password_secret_name- имя секрета, содержащего пароль для подключения к внешнему источнику данных.
При работе по защищенным TLS каналам связи используется системные сертификаты, расположенные на серверах YDB.
Пример
Запрос ниже создает внешний источник с именем TestDataSource к кластеру ClickHouse c IP-адресом 192.168.1.1 и портом 8443, логином admin и именем секрета test_secret:
CREATE EXTERNAL DATA SOURCE TestDataSource WITH (
SOURCE_TYPE="ClickHouse",
LOCATION="192.168.1.1:8443",
USE_TLS="TRUE",
AUTH_METHOD="BASIC",
LOGIN="admin",
PASSWORD_SECRET_NAME="test_secret"
)
Подключение к ClickHouse
Для создания подключения к кластеру ClickHouse необходимо создать внешний источник данных EXTERNAL DATA SOURCE, указав:
- В поле
SOURCE_TYPEзначениеClickHouse. - В поле
LOCATIONполный сетевой адрес кластера ClickHouse, включая порт. В качестве сетевого адреса можно указывать IP-адрес или FQDN. В данный момент подключение к кластеру ClickHouse всегда выполняется про HTTP протоколу. - В поле
USE_TLSфлаг, указывающий требование подключения к кластеру ClickHouse через безопасное соединение (TLS). - В поле
AUTH_METHODзначениеBASIC. - В поле
LOGINлогин, используемый для подключения к кластеру ClickHouse. - В поле
PASSWORD_SECRET_NAMEимя секрета, содержащего пароль для подключения к кластеру ClickHouse.
При работе по защищенным TLS каналам связи используется системные сертификаты, расположенные на серверах YDB.
Пример
Запрос ниже создает внешний источник с именем TestDataSource к кластеру ClickHouse c IP-адресом 192.168.1.1 и портом 8443, логином admin и именем секрета test_secret:
CREATE EXTERNAL DATA SOURCE TestDataSource WITH (
SOURCE_TYPE="ClickHouse",
LOCATION="192.168.1.1:8443",
USE_TLS="TRUE",
AUTH_METHOD="BASIC",
LOGIN="admin",
PASSWORD_SECRET_NAME="test_secret"
)
Подключение к PostgreSQL
Для создания подключения к кластеру PostgreSQL необходимо создать объект EXTERNAL DATA SOURCE, указав в полях:
- в поле
SOURCE_TYPEзначениеPostgreSQL; - в поле
LOCATIONполный сетевой адрес кластера PostgreSQL, включая порт. В качестве сетевого адреса можно указывать IP-адрес или FQDN; - в поле
USE_TLSфлаг, указывающий требование подключения к кластеру PostgreSQL через безопасное соединение (TLS); - в поле
AUTH_METHODзначениеBASIC; - в поле
LOGINлогин, используемый для подключения к кластеру PostgreSQL; - в поле
PASSWORD_SECRET_NAMEимя секрета, содержащего пароль для подключения к кластеру PostgreSQL.
В данный момент подключение к кластеру PostgreSQL всегда выполняется про стандартному (Frontend/Backend Protocol) по транспорту TCP. При работе по защищенным TLS каналам связи используется системные сертификаты, расположенные на серверах YDB.
Пример
Запрос ниже создает внешний источник с именем TestDataSource, ведущий на кластер PostgreSQL c IP-адресом 192.168.1.2 и портом 5432, логином admin и именем секрета test_secret:
CREATE EXTERNAL DATA SOURCE TestDataSource WITH (
SOURCE_TYPE="PostgreSQL",
LOCATION="192.168.1.1:5432",
USE_TLS="TRUE",
AUTH_METHOD="BASIC",
LOGIN="admin",
PASSWORD_SECRET_NAME="test_secret"
)
Подключение к S3 (Object Storage)
Для создания внешнего источника данных, ведущего на бакет с данными в S3 (Object Storage) необходимо создать объект EXTERNAL DATA SOURCE, указав в полях:
- в поле
SOURCE_TYPEзначениеObjectStorage; - в поле
LOCATIONсетевой путь к бакету; - в поле
AUTH_METHODзначениеNONE.
Примечание
В настоящий момент поддерживается работа только с бакетами, не защищенными аутентификацией.
Подключение возможно к любым источникам данных с протоколом доступа AWS S3. Возможно указание любых URL к системам, поддерживающим этот протокол.
Типовые значения поля LOCATION при подключении к различным системам к бакету bucket:
| Название системы | URL |
|---|---|
| Object Storage | https://storage.yandexcloud.net/bucket/ |
| AWS S3 | http://s3.amazonaws.com/bucket/ |
Пример
Запрос ниже создает внешний источник данных с именем TestDataSource, ведущий в каталог folder в бакете bucket в Object Storage:
CREATE EXTERNAL DATA SOURCE TestDataSource WITH (
SOURCE_TYPE="ObjectStorage",
LOCATION="http://s3.amazonaws.com/bucket/folder/",
AUTH_METHOD="NONE"