SAP HANA 智能数据访问:无法计算虚拟行 Table (Hive)

SAP HANA Smart Data Access: Can't count rows of virtual Table (Hive)

我有一个 HANA Express VM,我想与 Hadoop 集群交互。我有一个 Hive table,我通过智能数据访问 (SDA) 将其连接到 HANA。虚拟 table 一切正常,我可以使用 SAP HANA Studio 查询 Hive 数据(select 语句),但是当我尝试计算 table 行时,出现异常在我的 HANA 工作室中:

SELECT count(*) FROM "SYSTEM"."orctable";

导致以下异常:

Could not execute 'SELECT count(*) FROM "SYSTEM"."orctable"' in 602 ms 558 µs . 
SAP DBTech JDBC: [403]: internal error: Error opening the cursor for the remote database [Hortonworks][Hardy] (35) Error from server: error code: '0' error message: 'ExecuteStatement finished with operation state: ERROR_STATE'. for query "SELECT COUNT(*) FROM HIVE.default.orctable orctable "

我还在HANA中为虚拟table名称(ORCTABLE)添加了一个使用大写字母的新虚拟table,因为HANA默认使用大写字母,同样的错误!其他尝试:

当我从 Hive UI 调用 select count(*) from orctable 时,一切正常。

我还发现了这个教程,其中 SELECT COUNT(*) 是针对虚拟 Hive table 制作的:https://blogs.sap.com/2014/06/02/sap-hana-smart-data-access3-how-to-access-hadoop-data-through-hive-with-sda/

我使用的是 HANA Express 的最新 VM、SUSE 12 的 Hive ODBC 驱动程序 v2.1.7 和带有 Hive 1.2.1 的 HDP 2.5 集群。

有其他人遇到过这个问题,或者猜出为什么这不起作用或已经找到解决方案了吗?

您是否尝试过 运行 Hive ui 错误日志中的语句?

SELECT COUNT(*) 来自 HIVE.default.orctable orctable

没有计数的简单 select 是否有效?

找到解决方法:

SELECT COUNT(*) FROM (SELECT * FROM "SYSTEM"."orctable");