跳转到正文

Hive 格式化工具

使用 Hive 规则格式化 Apache Hive HiveQL,支持反引号标识符、带反斜杠转义的单引号和双引号字符串,以及 ${hivevar:name} 变量。CLUSTER BY、DISTRIBUTE BY 和 SORT BY 会作为子句保留,LATERAL VIEW 和 LEFT SEMI JOIN 会另起新行,列和条件会缩进。对于 Hadoop 数据工程师,未闭合的字符串和括号会报告行和列。

重置

常见问题

支持哪些 HiveQL 语法?

可以识别反引号标识符,以及带反斜杠转义的单引号和双引号字符串。Map['key'] 和 array[0] 下标,以及 ${hivevar:date} 和 ${hiveconf:x} 这样的变量替换都会保持原样。

哪些 Hive 子句会单独占一行?

CLUSTER BY、DISTRIBUTE BY 和 SORT BY 的处理方式与 ORDER BY 相同。LATERAL VIEW、LATERAL VIEW OUTER 和 LEFT SEMI JOIN 会像连接子句一样另起新行。

变量替换会保留吗?

会。${hivevar:...} 和 ${hiveconf:...} 占位符会完全按照输入内容保留。其中的冒号不会被插入空格。

它能格式化 INSERT OVERWRITE 语句吗?

可以。INSERT OVERWRITE TABLE ... PARTITION (...) 会保持连在一起,为其提供数据的 SELECT 则会在下方格式化。

支持 MERGE 吗?

可以。ACID MERGE 语句中的 WHEN MATCHED 和 WHEN NOT MATCHED 分支会另起新行。

注释会保留吗?

可以。-- 行注释和 /* 块注释 */ 会保留原位。多行块注释会按照新的布局重新缩进。

它会更改关键字的大小写吗?

不会。关键字和名称会保留你输入时的大小写。只有空白字符和换行会改变。

会检测哪些错误?

未闭合的字符串、反引号标识符、下标和块注释,以及不平衡的括号;每项都会标出行和列。不会在你的集群上运行任何内容。

输入内容可以有多大?

每个请求最多 1 MB,每条语句最多 128 KB。包含多条语句的脚本会逐条格式化。

可以选择缩进方式吗?我的 SQL 会保存吗?

可使用 2 个或 4 个空格,也可使用制表符。SQL 只会在内存中格式化,绝不会保存。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。