【问题标题】:LibreOffice Base JDBC connection to Hive returns “Method not supported” when executing valid select statement执行有效的选择语句时,LibreOffice Base JDBC 连接到 Hive 返回“方法不支持”
【发布时间】:2016-07-11 22:50:19
【问题描述】:

我正在尝试获取在 Ubuntu v16.04 上运行的 LibreOffice 的 Base v5.1.4.2,以通过 JDBC 连接到 Hive v1.2.1 数据库。我将从 Maven Central 下载的以下 jars 添加到 LibreOffice 的类路径('Tools -> LibreOffice -> Advanced -> Class Path'):

hive-common-1.2.1.jar
hive-jdbc-1.2.1.jar
hive-metastore-1.2.1.jar
hive-service-1.2.1.jar
hadoop-common-2.6.2.jar
httpclient-4.4.jar
httpcore-4.4.jar
libthrift-0.9.2.jar
commons-logging-1.1.3.jar
slf4j-api-1.7.5.jar

然后我重新启动 LibreOffice,打开 Base,选择 'Connect to an existing database' -> 'JDBC' 并设置以下属性:

我输入凭据并单击“测试连接”按钮,返回“连接已成功建立”消息。太好了!

在 LibreOffice Base UI 中,“表格”面板下的选项显示为灰色。查询选项卡中的选项没有,所以我尝试连接到 Hive。

“使用向导创建查询”选项提示输入密码,然后返回“无法检索来自 'airline.on_time_performance' 的字段名称。”

JDBC 连接能够连接到 Hive 并列出表,但检索列似乎有问题。当我尝试执行一个简单的 select 语句时,“在 SQL 视图中创建查询”选项返回一个有点神秘的“不支持方法”消息:

错误信息有点含糊。我怀疑我可能缺少一个依赖项,因为我 能够使用 JDBC 从 Java 连接到 Hive。

我很想知道社区中是否有人拥有与 Hive 一起使用的 LibreOffice Base。如果是这样,我错过了什么?

【问题讨论】:

  • 你这里有几十个版本的 JDBC 驱动程序已经过时了。我发现 2.5.4 没有太多麻烦。可能您正在使用的那个已经过时了。 Java JDBC 版本。更新。
  • 鉴于错误“字段名称...无法检索”,该版本的 JDBC 驱动程序不支持DatabaseMetaData.getColumns

标签: jdbc hive libreoffice libreoffice-base


【解决方案1】:

Apache JDBC 驱动程序报告“方法不支持”大多数功能,只是因为 Apache 提交者没有费心处理简单的yes/no API 调用列表.呵呵。
如果您想自己查看,只需download DBVisualizer Free,配置 Apache Hive 驱动程序,打开连接,然后检查 Database Info 选项卡。

现在,DBVis 对蹩脚的驱动程序相当宽容,但似乎 LibreOffice 不是。

您可以尝试使用Cloudera Hive JDBC driver 作为替代方案。您只需“注册”(即留下您的电子邮件地址)即可访问下载 URL;它比 Apache 更容易部署(基于 Simba SDK,捆绑了所有 Hive 特定的 JAR),它可以与任何 BI 工具配合使用。所以希望它也适用于 LibreThing。

免责声明:我希望 Apache 发行版有合适的 JDBC 驱动程序,任何人都可以使用它而不是依赖“免费”商业软件。但现在这只是一个愿望。

【讨论】:

  • 谢谢@Samson。这真是很有帮助的洞察力。我看到 Cloudera Hive 驱动程序目前只为 Redhat 和 Suse 打包(我使用的是 Ubuntu)。 DbVisualizer 工具很酷 - 我以前从未见过,而且就像您说的那样,它清楚地识别了各种不受支持的方法。
  • 不要被“打包”的东西所迷惑——它对 ODBC (C 代码的本机编译) 有意义,但对 JDBC (只是一堆)有意义可移植 JAR,您可以在 Windows 上的 Eclipse 中编译它们,然后在 Linux 或 AIX 上使用它们)。下载 任何 的“JDBC 包”,打开 ZIP,在 JDBC 4.0 兼容和 JDBC 4.1 兼容变体之间进行选择(取决于 LibreBureau 支持的内容),然后将 JAR 放在 Windows 上的某个位置。或 Linux。
  • @Alex,还有一件事:最新版本的 Cloudera Impala JDBC 驱动程序有一个错误——在某些特定配置中(即启用 SSL)它会失败,并显示有关“套接字已打开”的奇怪消息在连接时。我怀疑它与 Hive 驱动程序共享相同的代码库。如果您自己收到奇怪的消息,请尝试一些旧版本...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2019-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多