SAP Vora: Not able to add Vora table as Virtual table via Smart Data Access in HANA Studio

254 views Asked by At

I'm using a VM with HANA Express 2 SP 01. On a small test cluster I installed the Hortonworks Data Platform 2.6 with Spark 1.6.3, and also added HANA Vora 1.4 and the Spark Controller 2.1.

I followed the SAP Vora Installation and Administration guide: https://help.sap.com/http.svc/rc/f09ec811fe634f588647c342cac84c38/1.4/en-US/SAP_Vora_Installation_Admin_Guide_1.4_en.pdf until chapter 2.9. Everything works fine, but the Zeppelin part with the %jdbc interpreter:

%jdbc
select * from sys.tables using com.sap.spark.engines
============================================================

java.lang.NoSuchMethodError: org.apache.hive.service.cli.thrift.TExecuteStatementReq.setQueryTimeout(J)V
...

Here I get a NoSuchMethodError. However, if I follow the instructions in the next chapter (2.9 Connect SAP HANA Spark Controller to SAP Vora), I'm also not able to add a table from the Vora DataSource to my HANA Express Database. See also this screenshot:

enter image description here

2

There are 2 answers

2
Dimitri Vorobiev On BEST ANSWER

Regarding the java.lang.NoSuchMethodError, most likely the wrong Hive jar file was attached.

The link in your comment refers to the Spark Controller, but in this post/question you are using the HANA Wire. Both are valid methods of adding virtual tables from Vora.

The issue you are experiencing here is handled in section 3.3 of the Vora troubleshooting guide

0
Adhav Ravi On

Root cause of the issue:

The relevant SAP Vora disk table or relational table has one or more columns of data type STRING, VARCHAR(n), or CHAR(n), which are implicitly converted into VARCHAR() or CHAR(). However, SAP HANA only supports these data types up to a maximum size VARCHAR(2000) or CHAR(5000) and therefore SAP HANA will run into a runtime exception due to an incompatibility with Vora.

To be able to add Vora tables as virtual tables in HANA you need to create table in VORA with tableschema option. PFB sample create:

CREATE TABLE sample(
A String,
B String,
)
USING
com.sap.spark.engines.relational
OPTIONS (files
"/user/****/file_path", tableschema "A varchar(2000), B varchar(2000)");