Доступ к таблицам Kudu можно получить через Impala, таким образом, это драйвер jdbc. Благодаря этому он доступен через стандартный java/scala jdbc API. Мне было интересно, можно ли использовать slick для этого. Или, если нет, есть какая-либо другая высокоуровневая структура scala db, поддерживающая impla/kudu.
Использование Slick с Kudu/Impala
Ответы (3)
Slick можно использовать с любой базой данных JDBC.
http://slick.lightbend.com/doc/3.3.0/database.html
По крайней мере, для меня Slick не полностью совместим с Impala Kudu. Используя Slick, я не могу изменять объекты БД, не могу создавать, обновлять или удалять какие-либо элементы. Он работает только для чтения данных.
Есть два способа использования 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, чтобы узнать, можете ли вы, например, запрашивать и вставлять.