19. Дополнительные инструменты

19.1. Визуализация компонентов и связей Услуги

Во вкладке «Диаграмма» для Услуги отображается список добавленных инсталляций, кластеров и связей между ними в режиме диаграммы:

Диаграмма компонентов и связей Услуги

Рисунок 19.1 Диаграмма компонентов и связей Услуги

19.2. Данные для настройки систем ИБ и антивирусов

В меню Витрины данных можно посмотреть сводные данные по серверам, ОС, директориям, ip и портам инсталляций приложений задействованных для функционирования выбранной Витрины данных (см. Рисунок 19.2).

В списке приводится необходимая информация для конфигурирования систем ИБ, антивирусов и файрволов.

Список директорий и портов

Рисунок 19.2 Список директорий и портов

19.3. Лог конфигурации Услуги в виде инструкции по установке

По каждой витрине данных автоматически собирается лог конфигурации в котором приводится информация по:

  1. Общая информация по витрине;

  2. Предварительные условия установки;

  3. Список ЦОД и серверов, на которых разворачивается витрина;

  4. Список компонентов для установки;

  5. Список кластеров для установки;

  6. Команды по настройке компонентов витрины и связям интерфейсов;

Получить данную информацию можно в меню управления витрины в разделе Лог конфигурации (см. Рисунок 19.3)

Инструкция по установке и настройке витрины данных

Рисунок 19.3 Инструкция по установке и настройке витрины данных

19.4. Регистрация подключений к Базам данных

В разделе «Бызы данных» есть возможность зарегистрировать подключения к СУБД.

Регистрация подключения к БД

Рисунок 19.4 Регистрация подключения к БД

Для зарегистрированных БД можно добавить публичные входящие интерфейсы и использовать их для связи в разделе интерфейсов инсталляций приложений. Интерфейсы баз данных, добавленных в рамках организации доступны для всех инсталляций в рамках текущей организации.

Регистрация интерфейсов БД

Рисунок 19.5 Регистрация интерфейсов БД

19.5. Список лицензий

В разделе «Лицензии и сертификаты» перечислен список используемых в текущей версии Datamart Platform Studio лицензий на приложения, поставляемые в наборе бандлов (см. Рисунок 19.6).

Если Вы добавляете бандлы с собственным ПО, необходимо добавить в список данные о лицензии.

Список лицензий

Рисунок 19.6 Список лицензий

19.6. Интеграция с ZooKeeper

Примечание

Инструменты редактирования содержимого в кластере ZooKeeper доступны пользователям с ролями superadmin и support.

Для просмотра и редактирования содержимого нод в кластере ZooKeeper в Datamart Platform Studio добавлена интеграция с кластером. В карточке инсталляции или кластера ZooKeeper во вкладке ZooKeeper доступны следующие действия для нод кластера:

  • просмотр структуры и содержимого нод ZooKeeper;

  • редактирование содержимого ноды;

  • cut, copy, paste, delete - действия с нодами;

  • выделение групп и групповые операции с нодами ZooKeeper;

  • операции экспорта в файл и импорта из файла в формате ZooKeeper.

При наведении курсора на ноду Zookeeper, отображается меню действий с нодой (см. Рисунок 19.7), а при клике на ноду, возможность редактирования содержимого.

Доступные для отдельной ноды действия:

  • cut, copy, paste, delete;

  • импорт из файла в формате ZooKeeper.

Интеграция с Zookeeper

Рисунок 19.7 Интеграция с Zookeeper

При выделении нескольких нод ZooKeeper, в правом верхнем углу появляется меню групповых действий с нодами (см. Рисунок 19.8).

Для выделенных нод доступны действия:

  • cut, copy, delete;

  • операции экспорта в файл в формате ZooKeeper;

Интеграция с Zookeeper

Рисунок 19.8 Интеграция с Zookeeper

Примечание

Инструменты редактирования содержимого в кластере Zookeeper доступны пользователям с ролями superadmin, admin, backup.

19.7. Резервное копирование и восстановление данных услуг типа «Витрина данных»

В карточке Услуг типа «Витрины данных» во вкладке «Бэкапы» есть возможность создания резервной копии Витрины и восстановления данных Витрины из файла бэкапа. Для корректной работы функции резервного копирования и восстановления Витрин, требуется установка соответствующего приложения Backupmanager, входящей в поставку Типового ПО Витрин данных. Правила работы приложения Backupmanager см. в документации Типового ПО Витрин данных.

Файлы резервных копий Витрин данных по умолчанию сохраняются в папке /opt/backup/ на сервере Datamart Platform Studio. Имя папки и имя файла указывается в списке созданных резервных копий Витрин.

Настроить папку для хранения резервных копий можно в параметре backupmanager_directory в разделе настроек инсталляции приложения Backupmanager.

При необходимости, например, автоматически разносить файлы резервных копий Витрин для разных организаций в разные директории, потребуется определить глобальную настройку backupmanager_directory на уровне организации и внести требуемые значения для разных организаций.

Примечание

В текущей версии Datamart Platform Studio для одной Витрины разрешается создавать только одну резервную копию данных. При создании новой резервной копии, старая будет удалена.

Процесс восстановления из выбранной резервной копии запускается посредством нажатия на кнопку «Восстановить» напротив выбранного файла резервной копии.

Резервное копирование и восстановление Витрин данных

Рисунок 19.9 Резервное копирование и восстановление Витрин данных

Примечание

Выполнение действия резервного копирования для Витрины также возможно при помощи API Datamart Platform Studio.

19.8. Описание API Datamart Platform Studio

Описание функций API Datamart Platform Studio генерируется автоматически и выводится при помощи утилиты Swagger по адресу:

http(s)://<URL |prod|>:8088/api-docs/index.html
Ссылка на докумендацию по API из веб-интерфейса

Рисунок 19.10 Ссылка на докумендацию по API из веб-интерфейса

Для API предусмотрен механизм обратной совместимости и версионирования (v1 в URL API):

Для использования API требуется авторизация. Интерфейс авторизации в API реализован по адресу: http(s)://<URL Datamart Platform Studio>:8088/api/v1/auth-system/

Авторизация через пароль и логин:

curl -L -X POST 'http(s)://<URL |prod|>:8088/api/v1/auth-system/' \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'organization_ogrn=11223344' \ --data-urlencode 'datamart_mnemonic=hello' \ --data-urlencode 'username=emuhamma' \ --data-urlencode 'password=1'

Перед отправкой JWT Datamart Platform Studio проверяет соответствие ОГРН организации из запроса, списку организаций имеющих доступ в Datamart Platform Studio, а также наличие услуги с указанной datamart_mnemonic у этой организации.

Если проверки не пройдены, то в body возвращается текст ошибки:

{
  "error": "У данной учетной записи отсутствует заявленная организация по ОГРН #{organization_ogrn}"
}
{
  "error": "У организации данной учетной записи отсутствует витрина с мнемоникой #{datamart_mnemonic}"
}

19.8.1. Проверка healthcheck

Проверка healthcheck для Datamart Platform Studio по адресу:

http(s)://<URL |prod|>:8088/api/v1/healthcheck

Ответ возвращается в формате JSON и содержит статус Datamart Platform Studio, окружения, БД и информацию о выполнении миграций последнего обновления.

Пример:

{
"code":200,
"status":
   {
    "database":"OK",
    "migrations":"OK",
    "data_migrations":"OK"
   },
"info":
   {
    "env":"production",
    "root":"/app",
    "booted_at":"2023-08-18T16:52:05+00:00"
   }
}

19.8.2. Получение сводных данных об инсталляциях

Получить файл со списком всех инсталляций в формате CSV можно в API или через веб интерфейс. Адрес API:

http(s)://<URL |prod|>:8088/api/v1/organizations/<OGRN>/installations

В меню карточки организации в веб-интерфейсе реализована выгрузка файла:

http(s)://<URL |prod|>:8088/organizations/<OGRN>/installations.csv

Формат выгружаемых данных представлен на рисунке:

Сводные данныt об инсталляциях в формате CSV

Рисунок 19.11 Сводные данныt об инсталляциях в формате CSV

19.8.3. Выполнение резервного копирования Услуг типа «Витрина данных»

Реализована возможность вызова API бэкап для Витрин по ID витрины. Лог ansible (ответ утилиты BackupManager) выводится ответом в API.

Бэкап выполняется приложением Backupmanager и соответствует всем требованиям, описанным в разделе Резервное копирование и восстановление данных услуг типа «Витрина данных».

19.9. Использование Proxy API

Примечание

Доступ к Витринам данных НСУД через Proxy API в Datamart Platform Studio доступен только для учетных записей с ролью proxy-api и привязанным к соответствующим организациям.

Datamart Platform Studio предоставляет возможность проксировать запросы к инсталляциям приложений Витрин данных. При помощи этого возможно делать SQL+ запросы в Prostore, загружать csv-файлы через rest-uploader и т.д, не имея прямого доступа к серверам с инсталляциями приложений (см. Рисунок 19.12).

При выполнении запросов через Proxy API ведется лог запросов в Datamart Platform Studio. Логи запросов к API инсталляций приложений находятся в разделе логов для соответствующих инсталляций.

Схема функционирования средств наложенной защиты Datamart Studio

Рисунок 19.12 Схема функционирования средств наложенной защиты Datamart Studio

Чтобы функционал Proxy API стал доступен для использования, Datamart Platform Studio должна быть связана с IAM сервисом аутентификации - Keycloak. В нём определяются пользователи и их роли в Datamart Platform Studio.

Для взаимодействия с API посредством Proxy API требуется получить токен IAM сервиса аутентификации Keycloak.

Примечание

Для примеров ниже используется утилита curl, по правилам безопасности, предполагается вызов утилиты из сертифицированной версии ОС. В продакшн пользователь должен использовать любую http-утилиту, сертифицированную ФСТЭК или соответствующую требованиям безопасности, установленным для эксплуатации Системы.

19.9.1. Список доступных Proxy API

Список доступных Proxy API отображается в карточке Услуги во вкладке «Карточка услуги» в разделе «API Интерфейсы»:

Список доступных Proxy API для Услуги

Рисунок 19.13 Список доступных Proxy API для Услуги

В web-интерфейсе Datamart Platform Studio услуги для таких приложений отображается пиктограмма с информацией о наличии ограничений для списка эндпоинтов приложения (см. Рисунок 19.14), при нажатии на которую отображаются настройки, указанные в бандле приложения.

Список доступных эндпоинтов с указанием ролей

Рисунок 19.14 Список доступных эндпоинтов с указанием ролей

Примечание

В карточке инсталляции и соответствующего приложения также выводится список эндпоинтов API этого приложения c наложенными в бандле ограничениями, если они есть.

19.9.2. Настройка доступа к эндпоинтам Proxi API с учетом ролевой модели

В настройках приложения, использующего API интерфейс, можно организовать доступ к эндпоинтам для пользователей с определенной ролью. Настройки доступа к Proxy API определяются в бандле приложения:

Настройки доступа к эндпоинтам приложения

Рисунок 19.15 Настройки доступа к эндпоинтам приложения

, где:

  • deny - настройка общего доступа к Proxi API:
    • «none» - доступны все эндпоинты приложения, кроме указанных в списке endpoints;

    • «all» - недоступны все эндпоинты приложения, кроме указанных в списке endpoints;

  • endpoints - список эндпоинтов, доступных только пользователям с определенными ролями.

19.9.3. Получение токена в IAM сервисе аутентификации Keycloak

Получить токен можно в интерфейсе Keycloak в разделе Credentials в карточке пользователя:

Получение токена в интерфейсе Keycloak

Рисунок 19.16 Получение токена в интерфейсе Keycloak

либо с использованием запроса к API IAM сервиса аутентификации Keycloak:

curl --location 'https://<iam-server>/realms/<realm>/protocol/openid-connect/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'username=<username>'
--data-urlencode 'password=<password>'
--data-urlencode 'client_id=<clientid>'
--data-urlencode 'grant_type=password'
--data-urlencode 'scope=openid'

где:

  • <iam-server> — ip-адрес или hostname сервера IAM;

  • <clientid> — имя клиента IAM;

  • <realm> — realm клиента в IAM;

  • <username> — имя пользователя IAM;

  • <password> — пароль пользователя IAM;

19.9.4. Получение токена средствами Datamart Platform Studio

Получить токен можно запросом:

curl -X POST \
'http://<ip-studio>:8088/api/v1/auth_system' \
-d "username=<username>" \
-d "password=<password>" \
-d "organization_ogrn=<organization_ogrn>" \
-d "datamart_mnemonic=<datamart_mnemonic>"

где:

  • <ip-studio> — ip-адрес Студии;

  • <username> — имя пользователя IAM;

  • <password> — пароль пользователя IAM;

  • <organization_ogrn> — ОГРН Организации, в рамках которой развёрнута Витрина;

  • <datamart_mnemonic> — мнемоника целевой Витрины.

Примечание

Важно обратить внимание на протокол запроса. Если он будет некорректным (например, http вместо https), то ответ сервера будет содержать ошибку с кодом 500 - Internal Server Error.

Пример успешного ответа Datamart Platform Studio на запрос токена:

{
 "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI5NGRuNzhOeVF2TjBhRG3NMcUdkc0tTOTNlTWxjNkRwRjZ5V1NXSUo4In0.eyJleHAiOjE2OTMzMTg0NzIsImlhdCI6MTY5MzMxNDg3MiwianRpIjoiYTJkNTQ5NDktZWYwZC00MzA1LWI5OTAtMDIxMTAyZDkzODU2IiwiaXNzIjoiaHR0cHM6Ly9rYy5kYXRhbWFydC5ydS9yZWFsbXMvc3R1ZGlvLWRldiIsInN1YiI6IjE1NjdkYWI3LTc1OTAtNGM0Zi1iNWNhLWYzMmFkOTU1NThjYyIsInR5cCI6IkJlYXJlciIsImF6cCI6InN0dWRpbyIsInNlc3Npb25fc3RhdGUiOiJlMGE0MjJlZC1hNDQxLTQzY2MtYTAxMS01MzNiY2RiNTc5OGQiLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbInN1cGVyYWRtaW4iLCJhZG1pbiJdfSwic2NvcGUiOiJvcGVuaWQgZW1haWwiLCJzaWQiOiJlMGE0MjJlZC1hNDQxLTQzY2MtYTAxMS01MzNiY2RiNTc5OGQiLCJ1cG4iOiJhZG1pbiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhZGRyZXNzIjp7fSwibmFtZSI6ImFkbWluIGFkbWluIiwiZ3JvdXBzIjpbInN1cGVyYWRtaW4iLCJhZG1pbiJdLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsImdpdmVuX25hbWUiOiJhZG1pbiIsIm9yZ2FuaXphdGlvbl9vZ3JuIjpbIjExMTIyMjMzMzQ0NCIsIjExMTEiXSwiZmFtaWx5X25hbWUiOiJhZG1pbiIsImVtYWlsIjoiYWRtaW5AYWRtaW4uYWRtaW4ifQ.BC3sREXC3nf2LNvBX8SiHKouVGqJVfUBokVJa-B-9YW0zLhnNTs7mGZVOnC-kM-5mWE6bz8du0lvxQqiGpi3HRlAv1eedcGMTf_2TmjhohAaz--zSCdLC5NSmI79r54XYTLORiWKXj5T_AY8efFwWnWgUJ1LEkd5BTQyGSTvaoJkMv7xextA_isx_WoReHC5_-3GznNtcf_hOd2J1CfMHUFjhqMRSxMkIQDPHnspgU6WUz9IeVA1VWKh1GcggqYDtrruigQcl4_f7XeJQKJ49NNVdhjHtywUVbTpEDKYh4FsgAbf3vIPYUVwGWFW0Qm7LgUCpB8UvMQfb4UYZMF4UA",
 "expires_in": 3600,
 "refresh_expires_in": 3600,
 "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmYmMzOWNmNi1kZTRkLTQ2YWEtYTAwZi1iZGU3ZmFkNTJmNTgifQ.eyJleHAiOjE2OTMzMTg0NzIsImlhdCI6MTY5MzMxNDg3MiwianRpIjoiYWIxN2M0MzQtZGI4Yi00N2QwLTkyM2YtMTFiYmM3NzBiNmE4IiwiaXNzIjoiaHR0cHM6Ly9rYy5kYXRhbWFydC5ydS9yZWFsbXMvc3R1ZGlvLWRldiIsImF1ZCI6Imh0dHBzOi8va2MuZGF0YW1hcnQucnUvcmVhbG1zL3N0dWRpby1kZXYiLCJzdWIiOiIxNTY3ZGFiNy03NTkwLTRjNGYtYjVjYS1mMzJhZDk1NTU4Y2MiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoic3R1ZGlvIiwic2Vzc2lvbl9zdGF0ZSI6ImUwYTQyMmVkLWE0NDEtNDNjYy1hMDExLTUzM2JjZGI1Nzk4ZCIsInNjb3BlIjoib3BlbmlkIGVtYWlsIiwic2lkIjoiZTBhNDIyZWQtYTQ0MS00M2NjLWEwMTEtNTMzYmNkYjU3OThkIn0.SI6Tb6CJ5HIHwzETOyJZ-2nTLibGNq7JEQwW07fY-2M",
 "token_type": "Bearer",
 "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI5NGRuNzhOeVF2TjBhRGtvX3NMcUdkc0tTOTNlTWxjNkRwRjZ5V1NXSUo4In0.eyJleHAiOjE2OTMzMTg0NzIsImlhdCI6MTY5MzMxNDg3MiwiYXV0aF90aW1lIjowLCJqdGkiOiI5NDM1ZDE3NS00MzE2LTQyN2QtODlkYi1lYTJkOWJlZjJmNWIiLCJpc3MiOiJodHRwczovL2tjLmRhdGFtYXJ0LnJ1L3JlYWxtcy9zdHVkaW8tZGV2IiwiYXVkIjoic3R1ZGlvIiwic3ViIjoiMTU2N2RhYjctNzU5MC00YzRmLWI1Y2EtZjMyYWQ5NTU1OGNjIiwidHlwIjoiSUQiLCJhenAiOiJzdHVkaW8iLCJzZXNzaW9uX3N0YXRlIjoiZTBhNDIyZWQtYTQ0MS00M2NjLWEwMTEtNTMzYmNkYjU3OThkIiwiYXRfaGFzaCI6Ik9UZzZoUFQtWjhhWHR1Yjl1VV91LWciLCJhY3IiOiIxIiwic2lkIjoiZTBhNDIyZWQtYTQ0MS00M2NjLWEwMTEtNTMzYmNkYjU3OThkIiwidXBuIjoiYWRtaW4iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYWRkcmVzcyI6e30sIm5hbWUiOiJhZG1pbiBhZG1pbiIsImdyb3VwcyI6WyJzdXBlcmFkbWluIiwiYWRtaW4iXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiYWRtaW4iLCJnaXZlbl9uYW1lIjoiYWRtaW4iLCJvcmdhbml6YXRpb25fb2dybiI6WyIxMTEyMjIzMzM0NDQiLCIxMTExIl0sImZhbWlseV9uYW1lIjoiYWRtaW4iLCJlbWFpbCI6ImFkbWluQGFkbWluLmFkbWluIn0.K372NBffA3xtsxyM3hixr5GF1ouHNdr8DFMBYnGQ-t-REbYcwOymvs-D-HYEsmaUhkCWjKSeLM9taLmAPloSt2hb8xN_VG4s-gc_yvGs_aHkUehTqddjGMislPyAlydzCaDVxQ5Px-TplsDzIAwm5P0V23LDU3qwnVxVR7P3Dbxi5YB84_38zjClNrDWt9YOxnPMCzDT4fnBjGXkDcQZoHo5jsbFP_K5ymugsYEumKIZyekbY_l_A-XkRcTM6SMTRhKLAvQ3lq2YguLm2LFF3e-PrGsaEymeS-Peuff5qJw5Vf9r3_nD3APCivVc0Kunl8miRpr3lsZgSAp-xi3Jow",
 "not-before-policy": 0,
 "session_state": "e0a422ed-a441-43cc-a011-533bcdb5798d",
 "scope": "openid email"
}

Пример ответа Datamart Platform Studio в случае возврата ошибки Keycloak на запрос токена (в текущем примере истек срок действия аккаунта пользователя Keycloak):

{
 "message": "Keycloak connection error"
 "errors":["invalid_grant - Account is not fully set up"]
}

Примечание

Если пользователь заведен в Keycloak, но не проходил авторизацию через веб-интерфейс Datamart Platform Studio, то запись об аккаунте пользователя отсутствует в Datamart Platform Studio. При первом запросе токена будет создан аккаунт пользователя в Datamart Platform Studio, если запрос успешный.

19.9.5. Отправка запроса для подключения к API инсталляций через Proxy API

С полученным токеном нужно послать запрос для подключения к API инсталляции приложения типового ПО Витрины НСУД для выбранной организации:

curl -X <method>
'http(s)://<ip-studio>:8088/api/v1/secure/<organization_ogrn>/<datamart_mnemonic>/<installation_name>/<installation_id>/<request_path>' \
-H "Authorization: Bearer <access_token>" \
-H "<headers>" \
-d "<data>"

где:

  • <ip-studio> — ip-адрес Datamart Platform Studio;

  • <organization_ogrn> — ОГРН Организации, в рамках которой развёрнута Витрина;

  • <datamart_mnemonic> — мнемоника целевой Витрины;

  • <installation_name> — имя инсталляции в целевой Витрине;

  • <installation_id> — идентификатор инсталляции (присутствует в её названии);

  • <request_path> — URI оригинального API инсталляции;

  • <access_token> — токен proxy API;

  • <headers> — заголовки запроса;

  • <data> — данные запроса.

19.9.6. Пример Proxy API запросов в Prostore

Пример запроса на REST API Prostore (без Proxy API):

curl -X 'POST' \
'http://<ip-query-execution>:9090/api/v1/datamarts/query?format=json' \
-H 'Content-Type: application/json' \
-d '{"query": "check_versions()"}'

где:

  • <ip-query-execution> — ip-адрес инсталляции Простора.

Аналогичный запрос через Proxy API Datamart Platform Studio будет выглядеть так:

curl -X POST \
'http(s)://<ip-studio>:8088/api/v1/secure/<organization_ogrn>/<datamart_mnemonic>/<installation_name>/<installation_id>/api/v1/datamarts/query?format=json' \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"query": "check_versions()"}'

где:

  • <ip-studio> — ip-адрес Datamart Platform Studio;

  • <organization_ogrn> — ОГРН Организации, в рамках которой развёрнута Витрина;

  • <datamart_mnemonic> — мнемоника целевой Витрины;

  • <installation_name> — имя инсталляции в целевой Витрине;

  • <installation_id> — идентификатор инсталляции (присутствует в её названии);

  • <access_token> — токен proxy API;

Пример успешного ответа Datamart Platform Studio на запрос выше:

{
    "result": [
        {
            "component_name": "query-execution-core",
            "version": "6.4.0"
        },
        {
            "component_name": "ADP: adp instance",
            "version": "PostgreSQL 13.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit"
        },
        {
            "component_name": "ADP: kafka-postgres connector reader",
            "version": "0.6.1"
        },
        {
            "component_name": "ADP: kafka-postgres connector writer",
            "version": "0.6.1"
        },
        {
            "component_name": "status-monitor",
            "version": "6.4.0"
        },
        {
            "component_name": "rest-api",
            "version": "1.0.2"
        }
    ],
    "metadata": [
        {
            "name": "component_name",
            "type": "VARCHAR",
            "size": null,
            "nullable": false
        },
        {
            "name": "version",
            "type": "VARCHAR",
            "size": null,
            "nullable": false
        }
    ],
    "rows": 6,
    "queryId": null,
    "statistics": {
        "elapsedTotalMs": 13,
        "elapsedDbMs": 2
    }
}

Таким образом, запрос для проксирования через Datamart Platform Studio на создание Датамарта может выглядеть так:

curl -X POST \
'http(s)://<ip-studio>:8088/api/v1/secure/<organization_ogrn>/<datamart_mnemonic>/<installation_name>/<installation_id>/api/v1/datamarts/query?format=json' \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"query": "create database <dtm_name>;"}'

где:

  • <ip-studio> — ip-адрес Datamart Platform Studio;

  • <organization_ogrn> — ОГРН Организации, в рамках которой развёрнута Витрина;

  • <datamart_mnemonic> — мнемоника целевой Витрины;

  • <installation_name> — имя инсталляции в целевой Витрине;

  • <installation_id> — идентификатор инсталляции (присутствует в её названии);

  • <access_token> — токен proxy API;

  • <dtm_name> — название датамарта.

Пример успешного ответа Datamart Platform Studio на запрос выше:

{
    "result": [],
    "metadata": [],
    "rows": 0,
    "queryId": null,
    "statistics": {
        "elapsedTotalMs": 66,
        "elapsedDbMs": 6
    }
}

Запрос для проксирования через Datamart Platform Studio на создание таблицы (в примере указана тестовая таблица test_db.testapi с полным DDL) может выглядеть так:

curl -X POST \
'http(s)://<ip-studio>:8088/api/v1/secure/<organization_ogrn>/<datamart_mnemonic>/<installation_name>/<installation_id>/api/v1/datamarts/query?format=json' \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"query": "create table test_db.testapi (id BIGINT not null, message VARCHAR not null, primary key (id)) distributed by (id);"}'

где:

  • <ip-studio> — ip-адрес Datamart Platform Studio;

  • <organization_ogrn> — ОГРН Организации, в рамках которой развёрнута Витрина;

  • <datamart_mnemonic> — мнемоника целевой Витрины;

  • <installation_name> — имя инсталляции в целевой Витрине;

  • <installation_id> — идентификатор инсталляции (присутствует в её названии);

  • <access_token> — токен proxy API;

Пример корректного ответа Студии на запрос выше:

{
    "result": [],
    "metadata": [],
    "rows": 0,
    "queryId": null,
    "statistics": {
        "elapsedTotalMs": 201,
        "elapsedDbMs": 99
    }
}

19.9.7. Пример Proxy API запросов в Rest-Uploader

Пример запроса на загрузку в rest-uploader (без Proxy API):

curl -X POST \
'http://<ip-rest-uploader>:8181/v2/datamarts/<dtm_name>/tables/<table_name>/upload' \
-H "Content-Type: text/csv" \
-d "@<filename.csv>"

где:

  • <ip-rest-uploader> — ip-адрес инсталляции rest-uploader;

  • <dtm_name> — название датамарта с целевой таблицей;

  • <table_name> — название целевой таблицы;

  • <filename.csv> — название csv-файла с данными.

В таком случае запрос для проксирования через Datamart Platform Studio будет выглядеть так:

curl -X POST \
'http(s)://<ip-studio>:8088/api/v1/secure/<organization_ogrn>/<datamart_mnemonic>/<installation_name>/<installation_id>/v2/datamarts/<dtm_name>/tables/<table_name>/upload' \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: text/csv" \
-d "@<filename.csv>"

где:

  • <ip-studio> — ip-адрес Datamart Platform Studio;

  • <organization_ogrn> — ОГРН Организации, в рамках которой развёрнута Витрина;

  • <datamart_mnemonic> — мнемоника целевой Витрины;

  • <installation_name> — имя инсталляции в целевой Витрине;

  • <installation_id> — идентификатор инсталляции (присутствует в её названии);

  • <dtm_name> — название датамарта с целевой таблицей;

  • <table_name> — название целевой таблицы;

  • <access_token> — токен proxy API;

  • <filename.csv> — название csv-файла с данными.

Пример успешного ответа Datamart Platform Studio на запрос выше содержит status_id:

389ea964-fa26-475f-993b-af5fb357d368

Запрос на просмотр статуса в rest-uploader может выглядеть так:

curl 'http://<ip-rest-uploader>:8181/v2/requests/<status_id>/status'

где:

  • <ip-rest-uploader> — ip-адрес инсталляции rest-uploader;

  • <status_id> — status_id, выданный в ответ на запрос загрузки данных.

В таком случае запрос для проксирования через Datamart Platform Studio будет выглядеть так:

curl -X GET \
'http(s)://<ip-studio>:8088/api/v1/secure/<organization_ogrn>/<datamart_mnemonic>/<installation_name>/<installation_id>/v2/requests/<status_id>/status' \
-H "Authorization: Bearer <access_token>"

где

  • <ip-studio> — ip-адрес Datamart Platform Studio;

  • <organization_ogrn> — ОГРН Организации, в рамках которой развёрнута Витрина;

  • <datamart_mnemonic> — мнемоника целевой Витрины;

  • <installation_name> — имя инсталляции в целевой Витрине;

  • <installation_id> — идентификатор инсталляции (присутствует в её названии);

  • <access_token> — токен proxy API;

  • <status_id> — status_id, выданный в ответ на запрос загрузки данных.

Пример успешного ответа Datamart Platform Studio на запрос выше:

{
    "code": 3,
    "description": "Успешно обработан",
    "errorMessage": null
}

19.10. Сводная таблица услуг организации

В меню управления организации есть возможность выгрузить в формате CSV сводный список данных по всем услугам добавленным в Datamart Platform Studio для данной организации:

Сводная таблица услуг организации в формате CSV

Рисунок 19.17 Сводная таблица услуг организации в формате CSV

Примечание

Выгрузку сводной таблицы услуг организации в формате CSV можно также получить при помощи обращения к API Datamart Platform Studio.