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

时间:2017-07-27 08:50:22

标签: jdbc apache-drill

我正在尝试通过JDBC使用钻取,但是我在使用databasemeta-interface时遇到了问题。

我正在访问mongodb数据库(称为HR)和一个名为EMPLOYEES的集合(我们将Oracle的HR​​模式复制到mongo中以测试我们的代码是否可通过Apache钻取移植到NoSQL和其他非RDBMS源)

Select * from mongo.HR.EMPLOYEES一样查询表格工作正常,但我如何访问databasemetadata?

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

我还尝试设置catalog = mongo,Schema = HR,table = EMPLOYEES,但没有成功?

任何想法,我可以获得列元数据?

1 个答案:

答案 0 :(得分:0)

如果您查看DatabaseMetaData.getColumns的文档,则会说:

  

catalog - 目录名称;必须与目录名称匹配   存储在数据库中; ""检索那些没有目录的人; null   意味着不应使用目录名称来缩小搜索范围   schemaPattern - 架构名称模式;必须匹配模式名称   它存储在数据库中; ""检索没有架构的那些;   null表示不应使用模式名称来缩小   搜索

或者,换句话说,如果您不知道要使用什么,请使用null catalogschemaPattern。然后,兼容的JDBC驱动程序应该删除(忽略)该条件。然后,您可以检查TABLE_CATTABLE_SCHEM的值,以查看目录和架构对列实际具有的值。