Tableau: установка Tableau Bridge для доступа к базам данных в приватных сетях

Автор: | 08/09/2021
 

Для доступа к серверам баз данных, к которым нет доступа из мира (а так и должно быть — доступ только внутри VPC) Tableau предлагает использовать Tableau Bridge.

Идея заключается в том, что мы устанавливаем Bridge внутри сети, из которой есть доступ к базам данных, а затем в datasource настраиваем доступ к базе как Private access.

Кроме того, что Bridge позволяет выполнять подключения к серверам баз данных в приватных сетях, он ещё и шифрует трафик между Tableau Online и Tableau Bridge клиентом.

Вообще, впечатления от Bridge неоднозначные. С одной стороны — Tableau его активно продвигает, как единственное решение для доступа к базам в приватных сетях. Куча документации, примеров.

С другой стороны — вся документация какая-то невнятная, и описывает то, что надо в последнюю очередь, тогда как самые простые вопросы не затронуты вообще.

К примеру, первым вопросом было — должен ли Bridge быть установлен на той машине, с которой есть доступ к RDS? В документации этот момент не описан вообще, пришлось долго выпытывать тех. поддержку, которая вроде как заявила, что сам Tableau Bridge может быть на одной машине, а Tableau Desktop, с которого добавляются новые датасорсы — на другой, и всё, что надо сделать пользователю — это добавить новый сервер баз данных.

Как оказалось — не всё так просто. В самом деле, после добавления нового датасорса и сервера — Tableau Online будет сам разруливать трафик через Bridge, но вот что бы добавить новый датасорс — к нему всё-равно требуется подключение. Почему такое странное добавление новых датасорсов? Почему нельзя было сделать так, что бы Tableau Desktop был в офисе, со своим Бриджом, отдельная ЕС2 — в Амазоне, со своим Бриджом, и роутить запросы с машины с десктопа на бридж в Амазоне?

Вообще, как там работает роутинг запросов — совершенно непонятно. Табло говорит только про «всё сделается автоматически», но как оно реализовано под капотом — не ясно от слова совсем.

В общем — обо всём по порядку.

Документация — Use Bridge to Keep Data Fresh и Plan Your Bridge Deployment.

Собственно, в этом посте мы запустим ЕС2 с упаси боже Windows, так как Bridge на момент написания может быть установлен только на эту систему, добавим туда Tableau Desktop, создадим новый workbook с новым datasource, и запаблишим его в Tableau Online.

AWS Windows EC2

Выбираем Windows Server 2019:

Тип инстанса для начала t3.large, так как Windows, плюс сам Tableau Bridge на Java, ресурсов будет кушать прилично:

Выбираем VPC, в которой наш сервер баз данных:

Для Production потом создадим отдельную VPC и разрулим доступы к серверам баз данных через VPC пиринги.

Добавим имя инстансу:

В SecurityGroup разрешаем RDP из офиса:

Bridge будет выполнять исходящие подключения к Tableau Online и базам данных, поэтому никаких дополнительных правил на входящий трафик не требуется.

Создаём ключ:

Windows RDP из Linux

Используем xfreerdp.

Для получения пароля администратора — кликаем Security > Get Windows password:

Открываем ключ:

Получаем пароль:

Подключаемся:

xfreerdp /u:Administrator /p:'.6o***A*E' /h:900 /w:1440 /v:18.***.***.139

Устанавливаем Chrome/Edge/whatever, но только не IE 11:

Хитросделанная Винда предлагает Edge, даже если гуглим Chrome:

Windows: «Your current security settings do not allow this file to be downloaded»

Ох, Винда… Ты с первых минут жизни начинаешь сношать мозг:

Включаем разрешение на загрузки:

Установка Tableau Bridge

Документация — Install Bridge.

Не уверен на счёт версии — должен ли Bridge быть той же версии, что Tableau Desktop, но использовал такую же.

Проверяем версию Desktop — Help > About Tableau:

Загружаем со страницы  Product Downloads and Release Notes(Link opens in a new window):

Запускаем инсталятор:

После установки логинимся в Tableau Online:

Готовы к подключениям:

Tableau Bridge Mode

Слева внизу можно выбрать способ запуска Bridge — как приложение, или сервис Windows. См. Install BridgeAbout the Bridge Client.

  • application: запускает Bridge только когда Windows-пользователь залогинен в систему
  • service: запускает Bridge каждый раз, когда запускается Windows

Хорошо — всё запустили, проверяем Bridge в Tableau Online — Settings > Bridge:

Статус Connected, тут готово.

MySQL драйвера для Windows

Загружаем драйвер MySQL:

Не логинимся, кликаем Just download:

Устанавливаем:

AWS Aurora RDS MySQL test instance

Создадим тестовый кластер AWS Aurora RDS:

 

В настройках выбираем AWS VPC, в которой наш EC2 с Tableau Bridge, оставляем Public access отключенным, подключаем SecurityGroup:

В SecurityGroup разрешаем доступ с нашей ЕС2 с Windows и Bridge к серверу баз данных на порт 3306:

Windows ConEmu и MySQL Shell

Устанавливаем ConEmu, ибо дефолтная Windows cmd как была неудобной, так и остаётся.

Кроме того, можно использовать MySQL Shell.

Запускаем его:

Разбираемся, как ей пользоваться: общая помощь по \help , либо по конкретной команде, например connect\? \connect.

Подключаемся к серверу:

MySQL  JS > \connect admin@tb-test.bm.local

Переключаемся в режим sql:

Создаём базу и таблицу:

Tableau Desktop и подключение к базе данных

Далее, установим Tableau Desktop на машине, на которой у нас работает наш Bridge.

Затем из этого Desktop создадим новый datasource, и отправим его в Tableau Online, откуда тот через Bridge должен будет выполнять екстракты с этого сервера баз данных.

Загружаем Tableau Desktop — https://www.tableau.com/products/desktop/download, устанавливаем его:

Вот не помню, как с лицензиями у Tableau.

Вроде бы на одну лицензию можно активировать продукт 3 раза.

Попробуем Activate with a product key:

Берём текущий ключ со старого Tableau Desktop, который у нас в офисе — Help > Manage product keys, вводим его для нового инстанса:

Ошибка «Live connections disabled on site»

Сейчас в клиенте Bridge нам пишется, что «Live connections disabled on site«:

Гуглим, находим страницу Identify causes for live query issues, включаем Tableau Bridge pool:

Ошибка пропала:

Добавление нового Tableau Data Source

Создаём новый workbook:

Кликаем New Data source:

Выбираем AWS Aurora:

Указываем данные подключения, логинимся на сервер:

Подключение есть:

Публикуем в Tableau Online, см. Publish a Data Source:

Переходим в Tableau Online, открываем подключение — Edit Connection:

Проверяем Network Type — должен быть Private Network:

Т.е. все запросы к этому датасорсу пойдут через Tableau Bridge.

Добавим тестовых данных в базу:

И попробуем увидеть данные в Tableau Online — создаём новый Workbook, добавляем ему наш датасорс:

Рефрешим данные — подтягиваем последние изменения из базы:

Добавляем колонку col1 в наш воркбук, и видим наши данные:

Обновим данные в табличке:

Рефрешим данные из датасорса:

В Jobs ждём, когда статус In Progress сменится на Sent to Bridge:

Ещё раз рефрешим данные в воркбуке:

И видим новые данные:

Готово.