Когда нужно было извлечь данные из разных баз данных и проанализировать ваши данные, я зависела от студии интеграции Talend Data. Вы можете просто перетащить компоненты подключения, установить его свойства и все готово к работе. Иногда IDE болезненны. Легко объяснить, что вы хотите сделать, с помощью простого запроса вместо того, чтобы перетаскивать сотни столбцов и сопоставлять их или объединять их.
Затем я узнал о Presto server, разработанном FaceBook и теперь имеющем открытый исходный код. Представьте себе выполнение запроса, как показано ниже, где mysqlDB ссылается на таблицу в базе данных MySql, а CassandraDB ссылается на таблицу CassandraDB.
select * from mysqlDB.TableX inner join CassandraDB.TableY on mysqlDB.TableX.ColumnK=CassandraDB.TableY.ColumnN
Звучит безумно в самом начале. Сервер Presto делает это реальным. Он может делать гораздо больше вещей, чем это и то, в масштабе FaceBook. Документация Presto действительно хорошо описывает пошаговое руководство по настройке. Вот что я сделал, чтобы запустить запрос, показанный выше.
- Загрузите архив Presto Server здесь. Разархивируйте его.
- Создайте папку данных. Это просто место, где Presto хранит свою метаинформацию. Создайте его за пределами каталога установки сервера, чтобы не потерять метаинформацию между обновлениями версии сервера.
- Следуйте документации, чтобы создать папку ```etc``` и различные файлы свойств в ней. После того, как все файлы свойств созданы, вот так выглядит моя папка etc.
- Настройте файлы каталога для каждой из ваших баз данных, которые вы хотите использовать, следуя руководству по свойствам подключения здесь.
- Вот и все, запустите Presto-сервер, запустив программу запуска в папке bin, как показано ниже.
presto-server-0.172/bin/launcher run
Теперь сервер запущен и он инициализировал необходимые подключения к каталогу (базе данных). Давайте получим клиент presto (интерфейс командной строки) здесь. Это исполняемый файл jar, поэтому запустите его с помощью приведенной ниже команды.
/presto-cli-0.172-executable.jar --server localhost:8080 --catalog yourCatalogName --schema yourSchemaName
Удачного запроса :)