SAP Vora: невозможно добавить таблицу Vora в качестве виртуальной таблицы через Smart Data Access в HANA Studio

Я использую виртуальную машину с HANA Express 2 SP 01. На небольшом тестовом кластере я установил Hortonworks Data Platform 2.6 со Spark 1.6.3, а также добавил HANA Vora 1.4 и Spark Controller 2.1.

Я следовал руководству по установке и администрированию SAP Vora: ">https://help.sap.com/http.svc/rc/f09ec811fe634f588647c342cac84c38/1.4/en-US/SAP_Vora_Installation_Admin_Guide_1.4_en.pdf до главы 2.9. Все работает нормально, но часть Zeppelin с интерпретатором %jdbc:

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

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

Здесь я получаю NoSuchMethodError. Однако, если я буду следовать инструкциям в следующей главе (2.9 Подключение контроллера Spark SAP HANA к SAP Vora), я также не смогу добавить таблицу из источника данных Vora в мою базу данных HANA Express. См. также этот скриншот:

введите здесь описание изображения


person D. Müller    schedule 06.07.2017    source источник
comment
Только что нашел этот вопрос: stackoverflow.com/questions/37045599/ Существует ли матрица совместимости для всех этих инструментов и версий? Меня немного смущают разные версии. Не могу найти настоящий документ...   -  person D. Müller    schedule 06.07.2017


Ответы (2)


Что касается java.lang.NoSuchMethodError, скорее всего, был прикреплен неправильный файл jar Hive.

Ссылка в вашем комментарии относится к контроллеру Spark, но в этом посте/вопросе вы используете HANA Wire. Оба являются допустимыми методами добавления виртуальных таблиц из Vora.

Проблема, с которой вы столкнулись, описана в разделе 3.3 руководства Vora руководство по устранению неполадок

person Dimitri Vorobiev    schedule 06.07.2017
comment
Да, действия, описанные в разделе 3.3 руководства по устранению неполадок, помогли мне! Мне пришлось изменить 1) строку на varchar(...) 2) int на целое число 3) имя таблицы в верхний регистр и 4) добавить определение tableSchema, которое повторяет столбцы. Большое спасибо! - person D. Müller; 07.07.2017
comment
Обновление: ваше предположение о неправильной банке Hive также было верным. Мне пришлось взять hive-jdbc-‹version›-standalone.jar, который, например. был для меня /usr/hdp/2.6.1.0-129/hive2/jdbc/hive-jdbc-2.1.0.2.6.1.0-129-standalone.jar. Я нашел его с помощью find / -name hive-jdbc*.jar! Итак, танки, отвечая на оба вопроса, Дмитрий! - person D. Müller; 07.07.2017

Основная причина проблемы:

Соответствующая дисковая или реляционная таблица SAP Vora имеет один или несколько столбцов типа данных STRING, VARCHAR(n) или CHAR(n), которые неявно преобразуются в VARCHAR() или CHAR(). Однако SAP HANA поддерживает только эти типы данных до максимального размера VARCHAR (2000) или CHAR (5000), поэтому SAP HANA столкнется с исключением во время выполнения из-за несовместимости с Vora.

Чтобы иметь возможность добавлять таблицы Vora в качестве виртуальных таблиц в HANA, вам необходимо создать таблицу в VORA с параметром схемы таблиц. Пример создания PFB:

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)");
person Adhav Ravi    schedule 07.02.2018