Использование Slick с Kudu/Impala

Доступ к таблицам Kudu можно получить через Impala, таким образом, это драйвер jdbc. Благодаря этому он доступен через стандартный java/scala jdbc API. Мне было интересно, можно ли использовать slick для этого. Или, если нет, есть какая-либо другая высокоуровневая структура scala db, поддерживающая impla/kudu.


person abalcerek    schedule 22.04.2019    source источник


Ответы (3)


Slick можно использовать с любой базой данных JDBC.

http://slick.lightbend.com/doc/3.3.0/database.html

person Dmytro Mitin    schedule 23.04.2019

По крайней мере, для меня Slick не полностью совместим с Impala Kudu. Используя Slick, я не могу изменять объекты БД, не могу создавать, обновлять или удалять какие-либо элементы. Он работает только для чтения данных.

person AlleXyS    schedule 31.03.2020

Есть два способа использования Slick с произвольным драйвером JDBC (и диалектом SQL).

Первый заключается в использовании низкоуровневых вызовов JDBC. Класс SimpleDBIO дает вам доступ к соединению JDBC:

val getAutoCommit = SimpleDBIO[Boolean](_.connection.getAutoCommit)

Этот пример взят из руководства по Slick.

Однако, я думаю, вы больше заинтересованы в работе на более высоком уровне. В этом случае для Slick вам потребуется реализовать собственный Профиль. Если Impala достаточно похожа на существующий профиль базы данных, вы можете extend изменить существующий профиль и настроить его с учетом любых различий. Например, это позволит вам настроить форматирование SQL для Impala, представление временных меток и цитирование имен столбцов. Документация по переносу SQL из других систем баз данных в Impala будет дать вам представление о том, что нужно изменить в драйвере.

Или, если нет, есть какая-либо другая высокоуровневая структура scala db, поддерживающая impla/kudu.

Похоже, ни одна из основных библиотек не поддерживает Impala как функцию. При этом в документации Doobie упоминается настройка соединений для Hive. Таким образом, Doobie, возможно, стоит быстро попробовать Doobie, чтобы узнать, можете ли вы, например, запрашивать и вставлять.

person Richard Dallaway    schedule 31.03.2020