Как сделать разные подключения?

В свете последних событий тема, о которой я расскажу, думаю, будет вам актуальна. Сегодня хочу вам рассказать о том, как подключить новый коннектор к dremio :dolphin: и postgresql :elephant:.

Сервис подключений - модуль системы, обеспечивающий подключение к источникам данных на основе доступных адаптеров

Данный сервис находится на вкладке “Провайдеры данных” (Рисунок 1)

Рисунок 1 - Провайдеры данных

В сервисе используются 2 основных понятия: коннектор и подключение.

Для начала поговорим о коннекторе:

Коннектор (connector) - это объект, который хранит доступные подключения и настраивает логику их работы через сервис коннектора на back.

Для создания коннектора необходимо указать следующие поля (Рисунок 2):

  • Ссылка - указывается ссылка на бековый сервис коннектора, который используется для настройки и изменения сущности коннектора и подключений
  • Data url - указывается ссылка на бековый сервис коннектора, который используется для получения информации
  • Название - произвольное название коннектора
  • Описание - произвольное описание.

Рисунок 2 – Коннектор

В основном, ссылка и data url указываются одинаковыми. Но для случаев, когда у редактора авторизация в Keyclock проходит через один рилм, а у приложения авторизация в кейклоке идет через другой рилм, - тогда необходимо указывать разные ссылки.

Также, важно отметить, что при поставке коннектора - необходимо добавить 1 дефолтное подключение (устанавливается в базе).

Оно используется для получения данных без настроенных подключений.

Подключение - это объект с настроенной конфигурацией подключения к какому-либо источнику данных.

Подключения обязательно заводятся под каким-либо коннектором. Если использовать коннектор без созданных подключений, то будет использоваться дефолтное подключение, созданное в БД (Рисунок 3).

Рисунок 3 - Типы подключений

Р®бг≠Ѓ™3

Подключения делятся на 2 типа:

  • Прямое подключение
  • Менеджер

Прямое подключение - это подключение к одному из источников данных напрямую.

Сейчас доступны следующие подключения:

  • Postgres
  • Dremio
  • Clickhouse

Для каждого подключения есть свои настройки, которые необходимо заполнить перед началом работы (Рисунок 4).

Рисунок 4 - Настройки подключения

Вы также можете выбрать нужное вам подключение во вкладке “Менеджер” и подключить по аналогии.

Создание нового коннектора и подключения.

Для того, чтобы создать новый коннектор – в области «Провайдеры данных» нажимаем на кнопку «Новый коннектор», заполняем необходимые поля и сохраняем (Рисунок 5)

Рисунок 5 – Создание нового коннектора

Затем выбираем наш тестовый коннектор и видим, что для него уже есть настроенные подключения, так как в базе на этом коннекторе уже есть сохраненные подключения. (рисунок 6)

Рисунок 6

Добавим еще одно тестовое прямое подключение. После нажатия на кнопку «Новое подключение» во вкладке «Прямое подключение» выбираем Dremio, PostgreSGL или ClickHouse (что нужно). В данном примере мы выберем PostgreSQL (Рисунок 7).

Рисунок 7 – Новое подключение

Примечание: Имя пользователя и пароль вам должны предоставлять постановщики задач или Devops

Далее переходим в апп и настраиваем подключение к этим коннекторам.

Настройка авторизации в приложении.

Заходим в настройки авторизации (Рисунок 8)

Рисунок 8 – настройка авторизации

Р®бг≠Ѓ™8

Для корректной работы в приложении необходимо настроить авторизацию в приложении. По дефолту выбираем KeycloakDremio (Рисунок 9)

Рисунок 9 - Настройка авторизации

–исунок9

Примечание: Если мы используем 2 подключение одновременно и Dremio, и PostgreSQL, тогда настройка авторизации по дефолту будет KeycloakDremio.

Далее переходим в настройку сервисов (Рисунок 10)

Рисунок 10 – Настройка сервисов

Если подключение к Дремио дефолтное, то в конце ссылки – dremio-connector (как на скрине), если к PostgreSQL – то просто connector.

Для использования данных необходимо также настроить провайдер данных (Рисунок 11).

Рисунок 11 - Настройка провайдеров данных

Р®бг≠Ѓ™11

В открывшемся окне нажимаем кнопку добавить и заполняем настройки для провайдера данных (Рисунок 12):

  • В поле id - прописываем любое уникальное название (например,test_test)
  • В поле название - прописываем произвольное название провайдера
  • Описание - произвольное описание
  • Коннектор - из выпадающего списка выбираем настроенные коннекторы (в нашем случае, мы настроили “Тест” - его мы и выберем)
  • Подключение - выбираем подключение из всех подключений, доступных выбранному коннектору (в нашем случае подключение называется “Тестовое”)
  • Использовать по умолчанию - свитч, который указывает, какой провайдер использовать по умолчанию при работе с источниками (помечается *)
  • Проверить подключение - кнопка для проверки подключения.

Рисунок 12 - Настройка подключения

Для использования подключения в виджетах необходимо зайти в настройки виджета и выбрать для него источник (Рисунок 13).

Рисунок 13 - Настройка виджета

–исунок13

В открывшемся окне выбираем наш провайдер и таблицы, которые нам доступны. Дальнейшая настройка аналогична настройке виджетов через Dremio.

Примечание: Основное ограничение для использования сервиса подключений - это необходимость в настройки авторизации в своем приложении. Без авторизации подключения не работают.

Спасибо за внимание :upside_down_face:

9 лайков

После установки “нового” коннектора проверить его доступность можно так:

1. Он может быть доступен например на порту 4440

image

  1. Или на отдельном эндпоинте, например /connector :
    image

По пути build-info - можем получить версию установленного коннектора.

Но, если обратиться к его api то мы получим ответ он необходимой авторизации “Authentication Failed: Invalid Authorization Header”
image

После проверок доступности коннектора, можем добавить его в эдиторе.

image

image

После добавления, мы можем создавать подключения к источникам данных, для этого нажимаем на наш, только что созданный коннектор и кнопка “Новые подключения” станет активной:

image

После нажатия на “Новые подключения” выберем “Прямое подключение” → Dremio

image

В полях:
Server - указываем путь на котором Dremio принимает jdbc соединения, по стандарту это порт 31010
ConnectionApi - тут указываем путь к WEB GUI дремио.

Остальные поля не вызывают лишних вопросов, ну кроме UserUid - в него разработчики рекомендуют внести “employeeId”

После этого у нас будет подключение будет доступно в “Провайдерах данных”

1 лайк