hive是否有任何api来检查sql但不执行它?

h4cxqtbf  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(366)

我正在寻找一个api,检查提交的sql,但不需要执行它。当我的用户提交一个sql时,我需要实时告诉他们sql是否正确,然后我需要保存sql并在将来执行sql。那么如果hiveapi有这个特性呢?

ljo96ir5

ljo96ir51#

EXPLAIN <query to be checked> 符合你的要求。
hive提供一个explain命令,显示查询的执行计划。执行查询时使用 EXPLAIN 在查询开始时,首先检查查询是否有语法错误,然后显示执行计划作为结果。通过这种方式,用户将能够检查他们编写的查询是否正确,以及从执行计划执行查询是否有效(这里没有实际执行查询)
阅读更多关于 EXPLAIN ,你可以参考这里
查询的示例输出 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

希望有帮助!

相关问题