Создание внешнего источника данных S3
В Managed Service for Greenplum® в качестве внешнего источника данных с типом подключения S3 можно использовать сервис Yandex Object Storage или другие сторонние сервисы S3.
Перед началом работы создайте статический ключ доступа. Его данные нужно будет указать в параметрах источника.
Создайте внешний источник данных
Чтобы создать внешний источник данных S3:
- Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum. - Откройте страницу нужного кластера Managed Service for Greenplum®.
- На панели слева выберите
PXF. - Нажмите кнопку Создать источник данных.
- Выберите тип подключения
S3
. - Укажите имя источника.
- Задайте хотя бы одну опциональную настройку.
- Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать внешний источник данных S3:
-
Посмотрите описание команды CLI для создания источника данных:
yc managed-greenplum pxf-datasource create s3 --help
-
Задайте настройки источника данных:
yc managed-greenplum pxf-datasource create s3 <имя_внешнего_источника_данных> \ --cluster-id=<идентификатор_кластера> \ --access-key=<идентификатор_статического_ключа> \ --secret-key=<секретная_часть_статического_ключа> \ --endpoint=<адрес_S3-хранилища> \ --fast-upload=<быстрая_загрузка>
Где:
cluster-id
— идентификатор кластера. Его можно получить со списком кластеров в каталоге.access-key
,secret-key
— идентификатор и содержимое статического ключа доступа.endpoint
— адрес S3-хранилища. Значение для Object Storage —storage.yandexcloud.net
. Это значение используется по умолчанию.fast-upload
— быстрая загрузка больших файлов в S3-хранилище. Возможные значения:true
(значение по умолчанию) — PXF формирует файлы на диске перед отправкой в S3-хранилище.false
— PXF формирует файлы в оперативной памяти (если ее не хватает, то записывает на диск).
-
Получите 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.cloud.yandex.net/managed-greenplum/v1/clusters/<идентификатор_кластера>/pxf_datasources' \ --data '{ "datasource": { "name": "<имя_внешнего_источника_данных>", "s3": { "accessKey": "<идентификатор_статического_ключа>", "secretKey": "<секретная_часть_статического_ключа>", "fastUpload": "<быстрая_загрузка>", "endpoint": "<адрес_S3-хранилища>" } } }'
Где:
-
name
— имя внешнего источника данных. -
s3
— настройки внешнего источника данных:-
accessKey
,secretKey
— идентификатор и содержимое статического ключа доступа. -
fastUpload
— быстрая загрузка больших файлов в S3-хранилище. Возможные значения:true
(значение по умолчанию) — PXF формирует файлы на диске перед отправкой в S3-хранилище.false
— PXF формирует файлы в оперативной памяти (если ее не хватает, то записывает на диск).
-
endpoint
— адрес S3-хранилища. Значение для Object Storage —storage.yandexcloud.net
. Это значение используется по умолчанию.
-
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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": "<имя_внешнего_источника_данных>", "s3": { "access_key": "<идентификатор_статического_ключа>", "secret_key": "<секретная_часть_статического_ключа>", "fast_upload": <быстрая_загрузка>, "endpoint": "<адрес_S3-хранилища>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.PXFDatasourceService.Create
Где:
-
name
— имя внешнего источника данных. -
s3
— настройки внешнего источника данных:-
access_key
,secret_key
— идентификатор и содержимое статического ключа доступа. -
fast_upload
— быстрая загрузка больших файлов в S3-хранилище. Возможные значения:true
(значение по умолчанию) — PXF формирует файлы на диске перед отправкой в S3-хранилище.false
— PXF формирует файлы в оперативной памяти (если ее не хватает, то записывает на диск).
-
endpoint
— адрес S3-хранилища. Значение для Object Storage —storage.yandexcloud.net
. Это значение используется по умолчанию.
-
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.