我有一台HANA Express VM,我希望与Hadoop群集进行交互。我有一个Hive表,我通过智能数据访问(SDA)连接到HANA。虚拟表一切正常,我可以使用SAP HANA Studio查询Hive数据(select
语句),但是当我尝试计算表行时,我的HANA Studio中出现异常:
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中为虚拟表名称(ORCTABLE
)添加了一个使用大写字母的新虚拟表,因为HANA使用大写字母作为默认值,同样的错误!其他尝试:
SELECT count(1) FROM "SYSTEM"."orctable"
SELECT count(columnA) FROM "SYSTEM"."orctable"
SELECT count(A.*) FROM "SYSTEM"."orctable" as A
当我从Hive UI调用select count(*) from orctable
时,每个标记都可以正常工作。
我还发现本教程中针对虚拟Hive表创建了SELECT COUNT(*)
: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群集。
是否有其他人出现此问题或猜测为什么这不起作用或已经解决了?
答案 0 :(得分:0)
您是否尝试过来自Hive ui的错误日志中的语句?
SELECT COUNT(*)FROM HIVE.default.orctable orctable
这是一个简单的选择,没有计数工作?
答案 1 :(得分:0)
找到了解决方法:
SELECT COUNT(*) FROM (SELECT * FROM "SYSTEM"."orctable");