Apache Drill 和 databaseMetadata.getColumns:目录/模式的值?

Apache Drill and databaseMetadata.getColumns: Values for catalog / schema?

我正尝试通过 JDBC 使用 drill,但我在使用数据库元接口时遇到问题。

我正在访问一个 mongodb 数据库(称为 HR)和一个名为 EMPLOYEES 的集合(我们将 Oracle 的 HR 模式复制到 mongo 以测试我们的代码是否适用于 table NoSQL 和其他非 RDBMS 源通过 Apache drill)

Select * from mongo.HR.EMPLOYEES 一样查询 table 工作正常,但我如何访问数据库元数据?

当我尝试使用该方法时 getColumns() (catalog=null, Schema = „mongo.HR“, table=“EMPLOYEES“), 我只收到一个空的结果集。

我也试过设置catalog=mongo、Schema=HR、table=EMPLOYEES,但是没有成功?

知道吗,我可以得到列元数据吗?

如果你查看 DatabaseMetaData.getColumns 的文档,它说:

catalog - a catalog name; must match the catalog name as it is stored in the database; "" retrieves those without a catalog; null means that the catalog name should not be used to narrow the search
schemaPattern - a schema name pattern; must match the schema name as it is stored in the database; "" retrieves those without a schema; null means that the schema name should not be used to narrow the search

或者,换句话说,如果你不知道用什么,那么用null代替catalogschemaPattern。合规的 JDBC 驱动程序然后应放弃(忽略)该条件。然后,您可以检查 TABLE_CATTABLE_SCHEM 的值,以查看 catalog 和 schema 对列的实际值。