将 Slick 与 Kudu/Impala 一起使用
Posted
技术标签:
【中文标题】将 Slick 与 Kudu/Impala 一起使用【英文标题】:Using Slick with Kudu/Impala 【发布时间】:2019-04-22 19:21:45 【问题描述】:Kudu 表可以通过 Impala 访问,因此它的 jdbc 驱动程序。多亏了它可以通过标准的 java/scala jdbc api 访问。我想知道是否可以使用 slick 。或者,如果没有其他支持 impla/kudu 的高级 scala db 框架。
【问题讨论】:
【参考方案1】:Slick 可用于任何 JDBC 数据库
http://slick.lightbend.com/doc/3.3.0/database.html
【讨论】:
【参考方案2】:至少,对我来说,Slick 与 Impala Kudu 并不完全兼容。使用 Slick,我无法修改数据库实体,无法创建、更新或删除任何项目。它仅适用于读取数据。
【讨论】:
【参考方案3】:您可以通过两种方式将 Slick 与任意 JDBC 驱动程序(和 SQL 方言)一起使用。
首先是使用低级别的 JDBC 调用。 SimpleDBIO
类使您可以访问 JDBC 连接:
val getAutoCommit = SimpleDBIO[Boolean](_.connection.getAutoCommit)
该示例来自Slick manual。
但是,我认为您对更高级别的工作更感兴趣。在这种情况下,对于 Slick,您需要实现自定义 Profile。如果 Impala 与现有数据库配置文件足够相似,您可以extend
现有配置文件并对其进行调整以解决任何差异。例如,这将允许您自定义如何为 Impala 格式化 SQL、如何表示时间戳、如何引用列名。 Porting SQL from Other Database Systems to Impala 上的文档将让您了解驱动程序中需要更改的内容。
如果不是,是否有任何其他支持 impla/kudu 的高级 scala db 框架。
似乎没有一个主流库支持 Impala 作为一项功能。话虽如此,Doobie documentation 提到了为 Hive 定制连接。因此,Doobie 可能值得快速尝试 Doobie,看看您是否可以查询和插入。
【讨论】:
以上是关于将 Slick 与 Kudu/Impala 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
客快物流大数据项目(七十五):使用impala创建kudu表