Символ косой черты (/) в столбцах таблицы SAP Vora

У меня есть данные из инфо-провайдера SAP BW, записанные в HDFS. Теперь я пытаюсь сделать эти данные доступными для отчетов в Vora 1.3.

Я пытаюсь запустить оператор в консоли Vora Tools SQL, начиная с:

CREATE TABLE F002_5_F (calyear string, 
    calmonth string, 
    /bic/zfiscweek string, 
    doc_currcy string,
    co_area string, 
    /bic/zbillamt decimal(17,2),
    ......)
USING com.sap.spark.vora
OPTIONS (.....

И при выполнении Vora сообщает о синтаксической ошибке в строках для полей с именами, содержащими часть "/bic/". В качестве обходного пути я попытался указать имена полей в кавычках, например. "/БИК/zfiscweek". Но затем Вора сообщил о синтаксической ошибке в строке «ИСПОЛЬЗОВАНИЕ com.sap.spark.vora».

Любые комментарии о том, как следует обрабатывать имена полей с символом «/» в моделировании Vora?


person Roman    schedule 22.06.2017    source источник
comment
Только что попробовал это в Vora 1.4, у меня все заработало. По-прежнему нет поддержки символа /, хотя он поддерживается Hive и Spark SQL. Серьезно, это БОЛЬШОЙ пробел в функциональности, я видел, как архитекторы BW со стороны заказчика недоверчиво смеялись над этим. Они хотят выгрузить данные своей корпоративной памяти BW в Vora и не смогут этого сделать, пока это не будет исправлено. @ФранкЛеглер   -  person Roman    schedule 14.09.2017


Ответы (2)


Имена столбцов в кавычках не поддерживаются. Вы должны заменить косую черту "/" другим символом, чтобы имя столбца стало действительным идентификатором SQL.

person reinholdk    schedule 22.06.2017
comment
поскольку я должен загружать данные из файлов ORC, созданных в процессе архивирования SAP BW (NLS в Hadoop), у меня нет возможности заменить косую черту чем-либо. Это похоже на функциональную брешь в Vora. - person Roman; 23.06.2017

Попробуйте окружить имена столбцов обратными кавычками.

CREATE TABLE SLASHTABLE (`/A1` double, `/A2` int, `/A3` string) 
USING com.sap.spark.vora 
OPTIONS (files "/user/vora/test.csv");

Это также работает в запросах SELECT:

SELECT `/A1` from SLASHTABLE; 
person Frank Legler    schedule 06.07.2017