2016-05-18 4 views
0

Я пытаюсь запросить собственную RDBMS с помощью Apache Drill. Я создал плагин как источник данных JDBC и поместил свой JDBC-банку в каталог jars/3rdparty, и я могу успешно запустить такой запрос, как SELECT * FROM mytable.Apache Drill Плагин JDBC не распознает столбцы

Однако, если я использую имя столбца в запросе, такое как SELECT mycol FROM mytable, Drill возвращает следующую ошибку: Error: VALIDATION ERROR: From line 1, column 8 to line 1, column 9: Column 'mycol' not found in any table. Более того, я заметил, что моя схема полностью отсутствует, если я запускаю SELECT * FROM INFORMATION_SCHEMA.SCHEMATA, поэтому у меня есть подозрение, что Drill не может получить мою схему базы данных из драйвера JDBC.

Мне интересно, какой метод драйвера JDBC может быть реализован неправильно, что вызывает эту проблему. Драйвер JDBC использовался с другими сторонними программами, такими как Spark, без проблем.

+0

Какие СУБД вы используете? –

ответ

0

Я думаю, мы должны запросить на дрель, как select * from dfs.<storagePlugin>.tableName

Вы можете проверить один раз.?

1

Для выполнения запроса в таблице вам необходимо указать имя вашей таблицы с именем, которое вы предоставили плагину для хранения. Например, если вы назвали ваш плагин для хранения RDBMS ваш запрос должен выглядеть следующим образом:

SELECT * FROM rdbms.mytable

Ваш дополнительный запрос SELECT * FROM INFORMATION_SCHEMA.SCHEMATA скорее всего не удалось по той же причине. Попробуйте SELECT * FROM rdbms.INFORMATION_SCHEMA.SCHEMATA. И не забудьте заменить rdbms с именем, которое вы указали на свой плагин для хранения.

Смежные вопросы