BigQuery 格式化工具
使用 BigQuery 规则格式化 Google BigQuery Standard SQL,支持反引号括起的 project.dataset.table 名称、三引号字符串和原始字符串、# 注释以及 @query 参数。QUALIFY 会另起一行,SELECT * EXCEPT 和 REPLACE 会保留在同一行,窗口子句会进行缩进。未闭合的字符串、注释和括号会报告所在行和列,帮助分析师和数据工程师检查查询。
常见问题
支持哪些 BigQuery 语法?
可识别 `project.dataset.table` 这样的反引号名称、带反斜杠转义的单引号和双引号字符串、三引号字符串,以及带原始字符串前缀 r'' 和字节串前缀 b'' 的字符串。@named 参数和 @@system 变量会按原样保留。
格式化工具会保留哈希注释(#)吗?
支持。BigQuery 接受 # 注释以及 -- 和 /* */ 注释,三种注释都会保留在原处。
如何处理 QUALIFY?
QUALIFY 会像 WHERE 和 HAVING 一样另起一行。筛选条件会缩进到它的下方。
SELECT * EXCEPT 和 REPLACE 怎么处理?
当 EXCEPT 或 REPLACE 跟在星号后面时,会与星号保留在同一行。这样 SELECT * EXCEPT (col) 就不会被误认为 EXCEPT 集合运算。
数组和结构体会保持完整吗?
会。arr[OFFSET(0)] 这样的数组下标会按原样保留,STRUCT 和 ARRAY 构造函数的格式化方式与其他函数调用相同。
窗口函数会如何排版?
较长的 OVER 子句会展开为缩进代码块,其中 PARTITION BY 和 ORDER BY 各占一行。较短的子句则保留在同一行。
它会更改关键字的大小写吗?
不会。关键字、函数和名称会保留你输入时的大小写。只有空白字符和换行会改变。
会检测哪些错误?
未闭合的字符串、三引号字符串、反引号名称和块注释,以及不匹配的括号;每项都会标明行和列。查询不会发送到 BigQuery,也不会产生费用。
输入内容可以有多大?
每个请求最多 1 MB,每条语句最多 128 KB。包含多条语句的脚本会逐条格式化。
可以选择缩进方式吗?查询会被保存吗?
可使用 2 个或 4 个空格,也可使用制表符。查询只会在内存中格式化,绝不会保存。