如何使用 BigQuery 提取 JSON 对象中的所有键

Fel*_*ffa 12 json google-bigquery

BigQuery 具有在实时交互式查询中解析 JSON 的功能:只需将 JSON 编码对象存储为字符串,并使用 JSON_EXTRACT_SCALAR 等函数实时查询。

但是,我找不到发现这些对象中所有键(属性)的方法。

我可以为此使用 UDF 吗?

Sea*_*ere 9

这是使用标准 SQL的东西:

CREATE TEMP FUNCTION jsonObjectKeys(input STRING)
RETURNS Array<String>
LANGUAGE js AS """
  return Object.keys(JSON.parse(input));
""";
WITH keys AS (
  SELECT
    jsonObjectKeys(myColumn) AS keys
  FROM
    myProject.myTable
  WHERE myColumn IS NOT NULL
)
SELECT
  DISTINCT k
FROM keys
CROSS JOIN UNNEST(keys.keys) AS k
ORDER BY k
Run Code Online (Sandbox Code Playgroud)