使用 bigquery 中的 bigquery select 语句的 JSON 格式的现有表的架构

Posted

技术标签:

【中文标题】使用 bigquery 中的 bigquery select 语句的 JSON 格式的现有表的架构【英文标题】:schema of an existing table in JSON format using bigquery select statement in bigquery 【发布时间】:2021-10-05 13:52:16 【问题描述】:

我们可以编写 select 语句来获取 JSON 格式的现有表的架构吗? 我们可以写bigquery到

Select 语句应在结果集中生成 json 格式。 (或在 bigquery 中 - 如何将现有表模式选择为 JSON 格式)

示例 - [ “名称”:“年份”, “类型”:“整数”, “模式”:“可为空” , “名称”:“月份”, “类型”:“整数”, “模式”:“可为空” , “名称”:“项目字节”, “类型”:“字节”, “模式”:“可为空” , “名称”:“朗”, “类型”:“字符串”, “模式”:“可为空” ]

【问题讨论】:

【参考方案1】:

可以通过查询访问数据集和表的元数据以及列。 https://cloud.google.com/bigquery/docs/information-schema-intro

对于yourdataset,所有表的所有列都可以显示其架构:

SELECT * FROM yourdataset.INFORMATION_SCHEMA.COLUMNS
where table_name="yourtablename"

也可以将其转换为 JSON 字符串:

Select table_name, TO_JSON_STRING(array_agg(schema_col)) schema
from (
SELECT
  table_name,column_name,
   STRUCT(T.column_name AS name,
    any_value(T.data_type) AS type,
    IF (any_Value(T.is_nullable)="YES","NULLABLE",null) AS mode
    ) as schema_col
FROM
  yourdataset.INFORMATION_SCHEMA.COLUMNS T
GROUP BY
  1,  2
) group by 1

【讨论】:

以上是关于使用 bigquery 中的 bigquery select 语句的 JSON 格式的现有表的架构的主要内容,如果未能解决你的问题,请参考以下文章

在bigquery中的不同部分拆分框架

从 bigQuery 中的时间戳聚合变量

BigQuery UPDATE 嵌套数组字段

Google BigQuery 中的空嵌套字段

根据另一列中的值更新 BigQuery 中的嵌套数组

一次选择中的 Bigquery 多个 unnest