Подключение данных

Общий принцип: сетевая доступность

Прежде чем создавать подключение в интерфейсе DataLens, всегда задавайте себе вопрос: «Может ли сервер, на котором работает DataLens, увидеть сервер с базой данных по сети?»

В 90% случаев проблемы с подключениями сводятся к сетевым ограничениям:

  • Firewall: блокирует порт на сервере с БД или на сетевом оборудовании.
  • Security Groups: в облачных средах правила группы безопасности не разрешают входящий трафик от ВМ с DataLens.
  • Неправильный хост или порт: банальная опечатка в реквизитах.

Как диагностировать проблемы

С пода control-api можно проверить доступность с помощью curl или telnet. Также для этого можно использовать команду ./init.sh --kubectl get pods.

# Подключитесь к поду control-api
./init.sh --kubectl exec -it <имя-пода-control-api> -- /bin/bash

# Проверьте доступность хоста и порта
curl -v telnet://my-postgres-db.internal:5432

Проверяйте логи для пода — там будет информация про Connection timeout. Для этого можно использовать такую команду:

 ./init.sh --stern --tail 100 --no-follow pod/<имя-пода-control-api>

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

Это базовый сценарий. Пользователь с ролью Editor или Admin может создать подключение.

image

  1. В интерфейсе DataLens перейдите в раздел Подключения и нажмите Создать подключение.
  2. Выберите тип источника, например PostgreSQL.
  3. Заполните поля: имя хоста, порт, имя БД, имя пользователя и пароль.
  4. Нажмите Проверить подключение. Если проверка прошла успешно, сохраняйте.

Чувствительные данные в полях подключений (пароли или токены) шифруются с помощью одного из двух типов ключей в DataLens — CONTROL_API_CRYPTO_KEY. Он генерируется и сохраняется автоматически.

Подключение к БД с TLS-шифрованием

Примечание

Это задача администратора, а не пользователя.

Для безопасной передачи данных в корпоративной среде часто используют TLS. Если база данных использует сертификат, подписанный внутренним центром сертификации (CA), DataLens по умолчанию не будет ему доверять.

Чтобы это исправить, в самом подключении выберите опцию TLS, укажите нужные параметры: Продвинутые настройки подключенияTLS = Вкл и прикрепите сертификат в CA Certificate.

image

Настройка и использование файловых подключений

Для работы с файлами нужно включить функцию files в values.yaml. Процесс для пользователя:

  1. Создает подключение типа Файл.
  2. Загружает CSV- или XLS-файл.
  3. Файл попадает во внутреннее хранилище S3 (MinIO), а затем его содержимое загружается в ClickHouse®.
  4. DataLens создает датасет поверх этой таблицы в ClickHouse®.

Совет

Задача администратора — убедиться, что все компоненты (S3, ClickHouse®, Valkey™) работают и для них достаточно места.

Особенности коннекторов

JSON API

Позволяет подключаться к источникам, которые отдают данные в формате JSON по HTTP. Используется в связке с Editor для быстрого создания чартов из программных источников.

Подробнее про использование API Connector можно прочитать в документации.

Trino (ранее PrestoSQL)

Это не база данных, а федеративный движок запросов. Trino позволяет выполнять единый SQL-запрос к данным, которые физически лежат в разных системах, например объединять данные из PostgreSQL и S3 в одном запросе. DataLens подключается к Trino, а тот — к конечным источникам.

Подробнее про подключение к Trino можно прочитать в документации.

Практика: создание файлового подключения

  1. Убедитесь, что в вашем values.yaml включена функция files:

    features:
    files:
        enabled: true
    

    Если нет, включите и примените конфигурацию: ./init.sh --values <ваш_файл>.yaml.

  2. Создайте на локальном компьютере простой CSV-файл с именем sales.csv:

    City,Sales
    Moscow,1500
    Paris,1200
    London,1800
    
  3. В интерфейсе DataLens создайте новое подключение типа Файл.

  4. Загрузите файл sales.csv. Дождитесь окончания обработки.

  5. После успешной загрузки вы увидите предпросмотр данных. Нажмите Создать в правом верхнем углу.

Кейс

Пользователь жалуется, что не может подключиться к Greenplum®. Ошибка Connection timed out. Каким будет первый шаг в диагностике проблемы?

  • Перезапустить под data-api.
  • Проверить пароль пользователя.
  • Проверить сетевую доступность от пода data-api до хоста и порта Greenplum®.
  • Попросить пользователя проверить SQL-запрос.
Узнать ответ
  • Перезапустить под data-api.

    Неверно. Перезапуск поможет, если под завис, но это не первый шаг. Сначала нужно понять причину.

  • Проверить пароль пользователя.

    Неверно. Неверный пароль обычно выдает ошибку Authentication failed, а не Connection timed out.

  • Проверить сетевую доступность от пода data-api до хоста и порта Greenplum®.

    Верно. Connection timed out — классический симптом сетевой проблемы (firewall, security group).

  • Попросить пользователя проверить SQL-запрос.

    Неверно. На этапе создания подключения SQL-запросов еще нет. Проблема на более низком уровне.

Итоги

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