Создание внешнего источника данных JDBC
В Yandex MPP Analytics for PostgreSQL в качестве внешнего источника данных с типом подключения JDBC можно использовать:
- ClickHouse®;
- HBase;
- MySQL®;
- Oracle;
- PostgreSQL;
- SQL Server.
В этот список входят управляемые БД Yandex Cloud и сторонние БД.
Создайте внешний источник
- Перейдите на страницу каталога
и выберите сервис Yandex MPP Analytics for PostgreSQL. - Откройте страницу нужного кластера Greenplum®.
- На панели слева выберите
PXF. - Нажмите кнопку Создать источник данных.
- Выберите тип подключения
JDBC. - Укажите имя источника.
- Задайте хотя бы одну опциональную настройку.
- Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы создать внешний источник данных JDBC:
-
Посмотрите описание команды CLI для создания источника данных:
yc managed-greenplum pxf-datasource create jdbc --help -
Задайте настройки источника данных:
yc managed-greenplum pxf-datasource create jdbc <имя_внешнего_источника_данных> \ --cluster-id=<идентификатор_кластера> \ --driver=<адрес_драйвера> \ --url=<URL_базы_данных> \ --user=<имя_пользователя> \ --password=<пароль>Где:
-
cluster-id— идентификатор кластера. Его можно получить со списком кластеров в каталоге. -
driver— класс JDBC-драйвера в Java. Возможные значения:com.simba.athena.jdbc.Drivercom.clickhouse.jdbc.ClickHouseDrivercom.ibm.as400.access.AS400JDBCDrivercom.microsoft.sqlserver.jdbc.SQLServerDrivercom.mysql.cj.jdbc.Driverorg.postgresql.Driveroracle.jdbc.driver.OracleDrivernet.snowflake.client.jdbc.SnowflakeDriverio.trino.jdbc.TrinoDriver
-
url— URL базы данных. Примеры:jdbc:mysql://mysqlhost:3306/testdb— для локальной БД MySQL®.jdbc:postgresql://c-<идентификатор_кластера>.rw.mdb.yandexcloud.kz:6432/db1— для кластера Yandex Managed Service for PostgreSQL. Адрес содержит особый FQDN мастера в кластере.jdbc:oracle:thin:@host.example:1521:orcl— для БД Oracle.
-
user— имя пользователя, владельца БД. -
password— пароль пользователя БД.
Вы также можете указать дополнительные настройки.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом PXFDatasource.Create и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-greenplum/v1/clusters/<идентификатор_кластера>/pxf_datasources' \ --data '{ "datasource": { "name": "<имя_внешнего_источника_данных>", "jdbc": { "driver": "<адрес_драйвера>", "url": "<URL_базы_данных>", "user": "<логин_пользователя>", "password": "<пароль_пользователя>", ... } } }'Где:
name— имя внешнего источника данных.jdbc— настройки внешнего источника данных. Задайте хотя бы одну опциональную настройку.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом PXFDatasourceService.Create и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/greenplum/v1/pxf_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" "datasource": { "name": "<имя_внешнего_источника_данных>", "jdbc": { "driver": "<адрес_драйвера>", "url": "<URL_базы_данных>", "user": "<логин_пользователя>", "password": "<пароль_пользователя>", ... } } }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.greenplum.v1.PXFDatasourceService.CreateГде:
name— имя внешнего источника данных.jdbc— настройки внешнего источника данных. Задайте хотя бы одну опциональную настройку.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc