[MySQL, PostgreSQL, Веб-аналитика, DevOps] Подключение БД с SSH-туннелем к PowerBI

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
28-Фев-2021 18:31

Всем привет! Оказалось, что PowerBI не имеет встроенной возможности настроить доступ к БД, защищённой SSH-туннелем. Приходится выкручиваться. Мне очень помогла эта статья - спасибо тебе добрый и компетентный в написании инструкций человек, без тебя я бы впала в отчаяние. И тем не менее, в ней раскрыты не все нюансы. В своём материале я добавлю следующее:
  • Два уникальных совета, как сделать так, чтобы установленный туннель не падал после авторизации
  • Дополнительная инструкция для подключения к SSH при помощи приватного ключа, а не логина и пароля
  • Скрины из самого PowerBI с настройкой БД и советы о том, как работает выборка из подключенной БД и как обновлять данные, полученные по SQL-запросам.
  • Плюс я ориентирую свой материал на продуктовых аналитиков и аналитиков данных, то есть на тех, у кого нет доступа на редактирование БД и кто может не знать, что такое проброс портов и SSH-tunnel в принципе.
Итак, поехали.Вам понадобится(этап подготовки):
  • Установленный Putty. Можно взять здесь - https://www.putty.org/
  • Данные от вашего бекенда или девопса по списку:
    • IP-адрес SSH-сервера;
    • порт SSH-сервера;
    • username для доступа на SSH-сервер;
    • пароль для доступа или связка приватного и публичного ключа*
    • IP-адрес самой БД (обычно 127.0.0.1);
    • порт самой БД;
    • название БД;
    • логин доступа к БД (не то же самое, что username для доступа на SSH-сервер);
    • пароль для доступа к БД.
*Выбирать пароль или ключ не вам, а Хранителю сервера, пароль проще, ключ - безопаснее. В статье будут инструкции на оба случая. Если у вас кейс с ключами, то на этапе подготовки вам надо сгенерить оба ключа, разместить их в нужную папку на вашем компьютере и отдать внешний ключ Хранителю сервера, чтобы он его туда добавил. На эту тему есть много инструкций в интернете, я не буду повторяться.Поднимаем SSH-туннель
  • Открываем Putty
  • В Category/Session вводим IP-адрес SSH-сервера, порт SSH-сервера и выставляем радио-баттон Close window on exit на позицию Never
  • Переходим в Category/Connection/SSH и ставим галочку на Don’t start a shell or command at all
     
  • Переходим в Category/Connection/SSH/Tunnels, в поле Source port вбиваем порт самой БД, в поле Destination IP-адрес самой БД:порт самой БД. Жмём Add.
  • *пункт для тех, кто подключается с приватным ключом, если у вас случай с логином и паролем, то переходите сразу к 6 пункту инструкции
    • Запустите PuttyGen (установился на ваш компьютер вместе с Putty)
    • Выберите в верхнем меню Conversions/Import Key
    • В открывшемся окне Проводника откройте папку, куда вы сохранили файлы приватного и публичного ключа (пункт 2d списка “Вам понадобится”) и выберите файл приватного ключа. Иногда Windows делает этот файл скрытым. Возможно, вам надо будет включить отображение скрытых файлов в Проводнике, нажав на Вид и поставив галочку напротив “Скрытые элементы”
    • Нажимаем Save private key. Даём ключу любое имя на латинице и сохраняем в папку с ключами.
    • Возвращаемся в Putty. Переходим в Category/Connection/SSH/Auth и нажимаем Browse рядом с Private key file for authentication
    • В открывшемся окне Проводника выбираем сохранённый в пункте 5d файл приватного ключа.
  • Переходим в Category/Session, в поле Saved Session вводим имя нашего туннеля (любое), жмём Save. Это позволит нам не вводить все настройки каждый раз заново. После чего жмём Open
  • В открывшемся окне Терминала рядом с Login as вводим username для доступа на SSH-сервер и жмём Enter
  • *пункт для тех, у кого авторизация по паролю, если вы авторизовались по связке ключей, то пропускайте этот пункт и переходите сразу к 9. 
    • Вводим пароль для доступа на SSH-сервер и жмём Enter
Настройка PowerBISSH-туннель настроен, не закрывайте окно терминала Putty. Теперь переходим в PowerBI. Жмём Получить данные и выбираем “База данных MySQL” или “База данных PostgreSQL” в зависимости от того, что у вас. Интерфейс будет одинаковым, а вот вероятность успеха - разной, потому что MySQL И PostgreSQL используют разные драйвера. Убедитесь, что выбрали свою БД правильно. 
  • В поле Сервер вводим IP-адрес самой БД:порт самой БД 
  • В поле База данных вводим название БД
  • Жмём “Расширенные настройки” и в поле Инструкция SQL вставляем запрос, по которому нужно импортировать данные. Если вы его не напишете, PowerBI приконнектится ко всей БД, но не позволит вам вытаскивать из неё данные запросами и не позволит построить модели (или я не нашла как, если у вас есть успешный опыт, с удовольствием прочитаю его в комментах)
  • Жмём ok
  • Вводим логин доступа к БД и пароль для доступа к БД, жмём Подключение
  • Возможна вот такая ошибка, это ok
Как обновить данные из БД в PowerBI
  • Поднимаем SSH-туннель в Putty
  • Переходим в PowerBI и жмём Обновить. Все созданные запросы ещё раз отправятся на сервер и выгрузят свежую информацию

===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_mysql, #_postgresql, #_vebanalitika (Веб-аналитика), #_devops, #_powerbi, #_sshtunnel, #_database_tools, #_analysis, #_mysql, #_postgresql, #_vebanalitika (
Веб-аналитика
)
, #_devops
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 12-Май 20:43
Часовой пояс: UTC + 5