Для доступа к серверам баз данных, к которым нет доступа из мира (а так и должно быть – доступ только внутри 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:
Открываем ключ:
Получаем пароль:
Подключаемся:
[simterm]
$ xfreerdp /u:Administrator /p:'.6o***A*E' /h:900 /w:1440 /v:18.***.***.139
[/simterm]
Устанавливаем 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
.
Подключаемся к серверу:
[simterm]
MySQL JS > \connect [email protected]
[/simterm]
Переключаемся в режим 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:
Ещё раз рефрешим данные в воркбуке:
И видим новые данные:
Готово.