优化的 SQL 函数和运算符

在使用自定义查询或视图将商业智能 (BI) 工具连接到 BigQuery 时,BigQuery BI Engine 会优化以下标准 SQL 函数和运算符。使用此列表中未列出的函数和运算符的查询的运行速度可能更缓慢。

要查看不支持的 SQL 功能的列表,请参阅不支持的功能部分。

如需详细了解如何在数据洞察中使用自定义查询和视图,请参阅连接到 BigQuery。如需详细了解如何将其他 BI 工具连接到 BigQuery,请参阅 BigQuery BI Engine SQL 接口概览预览)。

要查看所有 BigQuery 标准 SQL 运算符和函数的列表,请参阅标准 SQL 函数和运算符

优化的运算符

  • ORDER BY
  • LIMIT count [OFFSET skip_rows]
  • UNION ALL
  • HAVING
  • GROUP BY
  • WHERE
  • INNERLEFTRIGHT JOIN(大小限制较小)

优化的函数

比较

  • =
  • <>
  • <
  • <=
  • >
  • >=
  • BETWEEN
  • IN
  • LEAST
  • GREATEST
  • CASE
  • COALESCE
  • IF
  • ISNULL
  • IS [NOT] NULL
  • IS [NOT] TRUE
  • IS [NOT] FALSE
  • IFNULL
  • NULLIF

逻辑

  • NOT
  • AND
  • OR

数学

  • -(一元取反)
  • +
  • -(二元取反)
  • *
  • /
  • IEEE_DIVIDE
  • DIV
  • MOD
  • ROUND
  • TRUNC
  • FLOOR
  • CEIL
  • ABS
  • SIGN
  • SQRT
  • EXP
  • POW
  • IS_INF
  • IS_NAN
  • SIN
  • SINH
  • ASIN
  • ASINH
  • COS
  • COSH
  • ACOS
  • ACOSH
  • TAN
  • TANH
  • ATAN
  • ATAN2
  • ATANH
  • LOG
  • LN
  • LOG10

按位

  • BIT_COUNT
  • ~(按位 NOT
  • &(按位 AND
  • |(按位 OR
  • ^(按位 XOR
  • <<(按位左移)
  • >>(按位右移)

字符串和字节

  • CHAR_LENGTH
  • LENGTH
  • BYTE_LENGTH
  • STRPOS
  • SUBSTR
  • STARTS_WITH
  • ENDS_WITH
  • STRING_LIKE
  • REGEXP_CONTAINS
  • REGEXP_EXTRACT
  • REGEXP_REPLACE
  • UPPER
  • LOWER
  • CONCAT
  • TRIM
  • LTRIM
  • RTRIM
  • LPAD
  • RPAD
  • REPEAT
  • REVERSE
  • REPLACE
  • SAFE_CONVERT_BYTES_TO_STRING
  • TO_HEX
  • FROM_HEX
  • TO_BASE32
  • FROM_BASE32
  • TO_BASE64
  • FROM_BASE64
  • FORMAT
  • NORMALIZE
  • JSON_EXTRACT
  • JSON_EXTRACT_SCALAR
  • ASCII
  • SAFE_CONVERT_BYTES_TO_STRING
  • INSTR
  • LEFT
  • RIGHT
  • TRANSLATE
  • INITCAP

时间戳、日期和时间

  • 时间戳函数
    • TIMESTAMP_MICROS
    • TIMESTAMP_MILLIS
    • TIMESTAMP_SECONDS
    • TIMESTAMP
    • STRING(timestamp_expression,[timezone])
    • UNIX_SECONDS
    • UNIX_MILLIS
    • UNIX_MICROS
    • FORMAT_TIMESTAMP
    • PARSE_TIMESTAMP
    • TIMESTAMP_ADD
    • TIMESTAMP_SUB
    • TIMESTAMP_DIFF
    • EXTRACT
    • DATE
    • TIME
    • DATETIME
    • TIMESTAMP_TRUNC
  • 日期函数
    • DATE(year, month, day)
    • DATE_FROM_UNIX_DATE
    • UNIX_DATE
    • FORMAT_DATE
    • PARSE_DATE
    • DATE_ADD
    • DATE_SUB
    • DATE_DIFF
    • EXTRACT(原类型 DATE
    • DATE_TRUNC
    • CURRENT_TIMESTAMP
  • 时间函数
    • EXTRACT
    • FORMAT_TIME
    • PARSE_TIME
    • TIME_ADD
    • TIME_SUB
    • TIME_DIFF
    • TIME_TRUNC
    • CURRENT_TIME
  • 日期时间函数
    • DATETIME
    • EXTRACT
    • FORMAT_DATETIME
    • PARSE_DATETIME
    • DATETIME_ADD
    • DATETIME_SUB
    • DATETIME_DIFF
    • DATETIME_TRUNC
    • CURRENT_DATETIME

哈希技术

  • FARM_FINGERPRINT
  • MD5
  • SHA1
  • SHA256
  • SHA512

网络

  • NET_IP_IN_NET
  • NET_MAKE_NET
  • NET.HOST
  • NET.REG_DOMAIN
  • NET.PUBLIC_SUFFIX
  • NET.IP_FROM_STRING
  • NET.IP_TO_STRING
  • NET.IP_NET_MASK
  • NET.IP_TRUNC
  • NET.IPV4_FROM_INT64
  • NET.IPV4_TO_INT64

SAFE 函数

  • 数学
    • MOD
    • ROUND
    • ABS
    • SQRT
    • POW
    • SINH
    • ASIN
    • COSH
    • ACOS
    • ACOSH
    • ATANH
    • LN
    • LOG
    • LOG10
    • FLOOR
    • CEIL
    • DIV
    • EXP
    • ROUND
    • SAFE_NEGATE
    • SAFE_ADD
    • SAFE_SUBTRACT
    • SAFE_MULTIPLY
    • SAFE_DIVIDE
  • 字符串
    • REGEXP_CONTAINS
    • REGEXP_EXTRACT
    • REGEXP_REPLACE
    • FORMAT
    • SUBSTR
    • ASCII
    • SAFE_CONVERT_BYTES_TO_STRING
    • INSTR
    • LEFT
    • RIGHT
    • TRANSLATE
    • INITCAP
  • 时间戳、日期和时间
    • DATE_FROM_UNIX_DATE
    • PARSE_DATE
    • PARSE_DATETIME
    • PARSE_TIME
    • PARSE_TIMESTAMP
    • FORMAT_TIMESTAMP
    • TIMESTAMP_SECONDS
    • TIMESTAMP_MILLIS
    • TIMESTAMP_MICROS
  • 网络
    • NET.SAFE_IP_FROM_STRING
  • 其他
    • SAFE_CAST

聚合函数

  • SUM
  • COUNT
  • COUNTIF
  • ANY_VALUE
  • AVG
  • MAX
  • MIN
  • HLL_COUNT.INIT
  • HLL_COUNT.MERGE
  • HLL_COUNT.MERGE_PARTIAL
  • GROUP BY 子句
  • BIT_AND
  • BIT_OR
  • BIT_XOR
  • LOGICAL_AND
  • LOGICAL_OR
  • DISJUNCTION_AGG
  • STRING_AGG
  • CORR
  • COVAR_POP
  • COVAR_SAMP
  • STDDEV_POP
  • STDDEV_SAMP
  • STDDEV
  • VAR_POP
  • VAR_SAMP
  • VARIANCE
  • APPROX_COUNT_DISTINCT

其他

  • CAST
  • HLL_COUNT.EXTRACT
  • STRUCT 字段的点运算符
  • ARRAY_LENGTH

不受支持的特性

不支持以下 SQL 功能:

  • UDF
  • 外部表
  • GEOGRAPHYARRAYSTRUCT 类型
  • 分析函数

虽然 BigQuery BI Engine 自定义查询不支持某些 SQL 功能,但是有一种解决方法:

  1. 在 BigQuery 中创建自定义查询。
  2. 将查询结果保存到表中。
  3. 安排您的自定义查询以定期更新表。每小时或每天刷新一次的频率最有效,因为每分钟刷新一次会使 BI Engine 缓存更频繁地失效。
  4. 在性能关键查询中引用此表格。