2017-10-13 105 views
0

任何人都可以解释如何通过Drill REST API获取表列表。
我试过show database - >use mysql.db - >show table list
能够获取数据库列表,但无法从相应的数据库中获取表列表。Apache Drill |从REST API获取表列表

在此先感谢。

编辑来自备注

我的JSON请求是这样第一:

{ "queryType" : "SQL", "query" : "USE MYSQL.dbtest" } 

我得到了默认模式的结果,那么我送

{ "queryType" : "SQL", "query" : "SHOW TABLES" } 

然后我得到的例外是这样

org.apache.drill.common.exceptions.UserRemoteException: VALIDATION ERROR: No default schema selected. Select a schema using 'USE schema' command [Error Id: e4e2d2f4-6f08-4ef9-9be3-ba3bbe2d20d9 on spark-slave:31010] 
+0

我的JSON请求是这样第一:{“查询类型”:“SQL”,“查询”:“USE MYSQL.dbtest”}什么应该工作使用SELECT语句是我得到了默认模式的结果,那么我发送{“queryType”:“SQL”,“查询”:“SHOW TABLES”}然后我得到这样的异常org.apache.drill.common.exceptions.UserRemoteException:VALIDATION错误:没有选择默认架构。使用'USE模式'命令选择模式[错误ID:e4e2d2f4-6f08-4ef9-9be3-ba3bbe2d20d9 on spark-slave:31010] –

+0

请编辑您的问题并避免使用注释获取新信息。 – tobi6

回答

0

很少有帮助的信息。由于您不提供有关您的JSON请求字符串的信息,我必须假设。

首先,https://drill.apache.org/docs/rest-api/#query表明,你可以将查询发送到钻。这可能是你用过的。

其次,没有命令show table list。即使直接在Drill中,这也不适用。正确的命令,也可在https://drill.apache.org/docs/show-tables/的文档中找到SHOW TABLES;

如果您需要任何进一步的帮助,请添加更多信息。

编辑

看来,钻不 “记住” 你的USE命令。也许一个新的会议正在打开。为避免需要使用USE,您可以尝试在您的SHOW语句中包含数据库标识符。

{ "queryType" : "SQL", "query" : "SHOW MYSQL.dbtest.TABLES" } 

虽然我不确定这是否可能。

{ "queryType" : "SQL", "query" : "SELECT * FROM MYSQL.dbtest.<a_table_name>" } 
+0

感谢您的回复。我的JSON请求是这样第一:{ “查询类型”: “SQL”, “查询”: “USE MYSQL.dbtest” } –