2016-05-18 3 views
0

Apache Drillを使用して独自のRDBMSにクエリを実行しようとしています。 JDBCデータソースとしてプラグインを作成し、jars/3rdpartyディレクトリにJDBC jarを配置しました。SELECT * FROM mytableなどのクエリを正常に実行できます。Apache Drill JDBCプラグインで列が認識されない

ただし、SELECT mycol FROM mytableなどのクエリで列名を使用すると、次のエラーが返されます。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

どのRDBMSを使用していますか? –

答えて

0

私はあなたが一度チェックすることができ、我々はselect * from dfs.<storagePlugin>.tableName

のようにドリルに問い合わせるべきだと思いますか。?

1

テーブルに対してクエリを実行するには、テーブルの名前の前にストレージプラグインの名前を付ける必要があります。あなたがRDBMSストレージプラグインという名前を付けた場合たとえばクエリは次のようになります。

SELECT * FROM rdbms.mytable

あなたの追加のクエリSELECT * FROM INFORMATION_SCHEMA.SCHEMATAはおそらく同じ理由で失敗しました。試してくださいSELECT * FROM rdbms.INFORMATION_SCHEMA.SCHEMATArdbmsをストレージプラグインに付けた名前に置き換えることを忘れないでください。

関連する問題