蜂巢有没有任何api来检查sql但不执行它?

时间:2019-05-06 04:15:37

标签: hive hiveql

我正在寻找可以检查所提交的sql的api,但无需执行它。当我的用户提交一个sql时,我需要实时告诉他们sql是否正确,然后我需要保存该sql并在以后执行该sql。因此,如果Hive api具有此功能?

1 个答案:

答案 0 :(得分:0)

EXPLAIN <query to be checked>将满足您的这一要求。

Hive提供一个EXPLAIN命令,该命令显示查询的执行计划。当查询以EXPLAIN开始执行时,最初会检查查询是否存在语法错误,然后将执行计划显示为结果。这样,用户将能够检查他们编写的查询是否正确,以及从执行计划中执行是否有效。 (此处没有实际执行查询)

要了解有关EXPLAIN的更多信息,可以参考HERE

使用EXPLAIN 的查询的示例输出:

EXPLAIN SELECT * FROM test_table;

STAGE DEPENDENCIES:
2     Stage-0 is a root stage
3   
4   STAGE PLANS:
5     Stage: Stage-0
6       Fetch Operator
7         limit: -1
8         Processor Tree:
9           TableScan
10            alias: test_table
11            Statistics: Num rows: 1 Data size: 15812 Basic stats: COMPLETE Column stats: NONE
12            Select Operator
13              expressions: id (type: int), name (type: string), email_preferences (type: struct<email_format:string,frequency:string,categories:struct<promos:boolean,surveys:boolean>>), addresses (type: map<string,struct<street_1:string,street_2:string,city:string,state:string,zip_code:string>>), orders (type: array<struct<order_id:string,order_date:string,items:array<struct<product_id:int,sku:string,name:string,price:double,qty:int>>>>)
14              outputColumnNames: _col0, _col1, _col2, _col3, _col4
15              Statistics: Num rows: 1 Data size: 15812 Basic stats: COMPLETE Column stats: NONE
16              ListSink

希望有帮助!