Умный доступ к данным SAP HANA: невозможно подсчитать строки виртуальной таблицы (Hive)
У меня есть виртуальная машина HANA Express, с которой я хочу взаимодействовать с кластером Hadoop. У меня есть таблица Hive, которую я подключил через Smart Data Access (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 "
Я также добавил новую виртуальную таблицу, используя заглавные буквы для имени виртуальной таблицы (ORCTABLE
) в HANA, так как HANA использует прописные буквы по умолчанию, та же ошибка! Другие попытки:
SELECT count(1) FROM "SYSTEM"."orctable"
SELECT count(columnA) FROM "SYSTEM"."orctable"
SELECT count(A.*) FROM "SYSTEM"."orctable" as A
- ...
Когда я звоню select count(*) from orctable
из моего интерфейса Hive все работает нормально.
Я также нашел этот учебник, где SELECT COUNT(*)
сделано против виртуальной таблицы Hive: https://blogs.sap.com/2014/06/02/sap-hana-smart-data-access3-how-to-access-hadoop-data-through-hive-with-sda/
Я использую последнюю виртуальную машину HANA Express, драйвер Hive ODBC v2.1.7 для SUSE 12 и кластер HDP 2.5 с Hive 1.2.1.
Есть ли у кого-то еще эта проблема или предположение, почему это не работает или уже есть решение?
2 ответа
Найден обходной путь:
SELECT COUNT(*) FROM (SELECT * FROM "SYSTEM"."orctable");
Вы пытались запустить оператор в журнале ошибок от Hive UI?
ВЫБЕРИТЕ СЧЕТЧИК (*) ОТ HIVE.default.orctable orctable
И работает ли простой выбор без подсчета?