1

MongoDBinのストレージ プラグインを追加したいapache-drill。ドキュメントを読んだ後、プログラムで次の 2 つの方法でそれを行うことができることがわかりました。

  1. 残りの API
  2. 構成に bootstrap-storage-plugins.json を使用する

Javaコードに2番目の方法を使用しています。

私のコードの有用な部分:

Connection conn = new Driver().connect("jdbc:drill:zk=local",null);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("show databases");
        while (rs.next())
        {
            String SCHEMA_NAME = rs.getString("SCHEMA_NAME");
            System.out.println(SCHEMA_NAME);
        }

ブートストラップ ストレージ プラグイン.json:

{
  "type": "mongo",
  "connection": "mongodb://localhost:27017/",
  "enabled": true
}

しかし発砲時

"select * from mongo.testDB.`testCollection`";

次の例外が発生しました:

org.apache.calcite.sql.validate.SqlValidatorException SEVERE: org.apache.calcite.sql.validate.SqlValidatorException: テーブル 'mongo.testDB.testCollection' が見つかりません 2015 年 8 月 12 日 3:47:05 AM org.apache.calcite .runtime.CalciteException SEVERE: org.apache.calcite.runtime.CalciteContextException: 行 1、列 15 から行 1、列 19: テーブル 'mongo.testDB.testCollection' が見つかりません java.sql.SQLException: 解析エラー: 行から1、列 15 から行 1、列 19: テーブル 'mongo.testDB.testCollection' が見つかりません

bootstrap-storage-plugins.json私のクラスパスにあります。追加情報を提供する必要がありますか?

編集:

クエリshow databasesを実行しましたが、 のスキーマが表示されませんMongoDB。表示されているのは次のとおりです。

INFORMATION_SCHEMA
cp.default
dfs.default
dfs.root
dfs.tmp
sys 
4

1 に答える 1

0

クエリは、ファイル システムに対するクエリのように見えます。mongo ストレージ プラグイン構成を使用すると、ワークスペースやファイルがないため、クエリを次のようにしてみてください。

SELECT * FROM testCollection;

正しいデータベース名を使用していることと、コレクションがリストされていることを確認してください (SHOW DATABASES および SHOW TABLES)。

この公開された Drill doc の訂正が役立つかもしれません。

于 2015-08-13T00:25:12.717 に答える