2015-10-26 2 views
1

Использование Apache Drill v1.2 и Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64-битный встроенный режим.Apache Drill 1.2 и Oracle JDBC

Мне любопытно, если кто-то успел связать сверло Apache с Oracle DB. Я обновил drill-override.conf со следующими конфигурациями (в документах):

drill.exec: { 
    cluster-id: "drillbits1", 
    zk.connect: "localhost:2181", 
    drill.exec.sys.store.provider.local.path = "/mypath" 
} 

и поместил ojdbc6.jar в \apache-drill-1.2.0\jars\3rdparty. Я могу успешно создать хранилище плагин:

{ 
    "type": "jdbc", 
    "driver": "oracle.jdbc.driver.OracleDriver", 
    "url": "jdbc:oracle:thin:@<IP>:<PORT>:<SID>", 
    "username": "USERNAME", 
    "password": "PASSWORD", 
    "enabled": true 
} 

но когда я выполняю запрос, такие как:

select * from <storage_name>.<schema_name>.`dual`; 

Я получаю следующее сообщение об ошибке:

Query Failed: An Error Occurred 
org.apache.drill.common.exceptions.UserRemoteException: VALIDATION ERROR: From line 1, column 15 to line 1, column 20: Table '<storage_name>.<schema_name>.dual' not found [Error Id: 57a4153c-6378-4026-b90c-9bb727e131ae on <computer_name>:<PORT>]. 

Я пробовал для запроса другой схемы/таблиц и получения аналогичного результата. Я также пытался подключиться к Teradata и получить ту же ошибку. Есть ли у кого-нибудь предложения или проблемы с подобными проблемами?

+0

Я мало знаю о Oracle DB. Вы не считаете, что имя базы данных также должно быть в запросе. –

+1

DB/SID указан в URL-адресе плагина. Я попытался включить его в запрос, но это не изменило результат, и вытащить его из подключаемого модуля приведет к ошибке создания. – eroma934

+0

Вы пробовали выбрать * из .'dual'; Я получил некоторую повторяющуюся ключевую ошибку, подобную этой: http://www.scalerlabs.io/blog/apache-drill-exploring-connecting-to-rdbms-via-jdbc/ –

ответ

2

Он работает с Drill 1.3 (выпущен 23-Dec-2015)

Plugin: имя - оракул

{ 
    "type": "jdbc", 
    "driver": "oracle.jdbc.driver.OracleDriver", 
    "url": "jdbc:oracle:thin:user/[email protected]:1521:orcl ", 
    "enabled": true 
} 

Запрос:

select * from <plugin-name>.<user-name>.<table-name>; 

Пример:

select * from oracle.USER.SAMPLE; 

Для получения более подробной информации отметьте drill's documentation.

Note: Make sure you added ojdbc7.12.1.0.2.jar (recommended in docs) in apache-drill-1.3.0/jars/3rdparty

+0

подтверждено ... обновления до 1.3 исправили эту проблему – eroma934

+0

снято в темноте, но вы пробовали какие-либо соединения Teradata? Он не выглядит активным, и я не смог настроить плагин для хранения. – eroma934

+0

@ eroma934 Да, это сработало. Я уверен, что u добавил 'tdgssconfig.jar' и' terajdbc4.jar' в 'jars/3rdparty' –

1

Это вид работ в буровой установке Apache 1.3. Странно, что я могу только запросить таблицы, для которых созданы синонимы ... В командной строке попробуйте:
использовать < имя_хранилища>;
показать таблицы;
Это даст вам список объектов, которые вы можете запросить - двойное не входит в этот список ;-).

0

Я использую apache-drill-1.9.0, и кажется, что имя схемы интерпретируется с учетом регистра и должно быть поэтому в верхнем регистре.

Для таблицы user1.my_tab (который по умолчанию, созданный в Oracle в верхнем регистре) это работает в Drill (плагин имя оракул)

SELECT * FROM oracle.USER1.my_tab; 

Но это вызывает ошибку

SELECT * FROM oracle.user1.my_tab; 

SEVERE: org.apache.calcite.sql.validate.SqlValidatorException: Table 'oracle.user1.my_tab' not found 

Альтернативный подход - установить имя плагина и имя схемы с use (владелец также должен быть в верхнем регистре)

0: jdbc:drill:zk=local> use oracle.USER1; 
+-------+-------------------------------------------+ 
| ok |     summary     | 
+-------+-------------------------------------------+ 
| true | Default schema changed to [oracle.USER1] | 
+-------+-------------------------------------------+ 
1 row selected (0,169 seconds) 
0: jdbc:drill:zk=local> select * from my_tab; 
+------+ 
| X | 
+------+ 
| 1.0 | 
| 1.0 | 
+------+ 
2 rows selected (0,151 seconds) 
Смежные вопросы