You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JSON Schema转换为BigQuery Schema?有无对应工具?

JSON Schema 转 BigQuery Schema 的可行方案

现成工具

  • jsonschema2bq(Python库):专门针对JSON Schema到BigQuery Schema的转换,支持嵌套结构、数据类型自动映射(如JSON integer→BigQuery INT64,JSON object→BigQuery RECORD),还能根据JSON Schema的required关键字设置BigQuery字段的mode(必填字段设为REQUIRED,其余默认NULLABLE)。通过pip安装后,调用API即可完成转换。
  • BigQuery CLI 自动推导:若有符合目标JSON Schema的样本数据文件,可先用bq load命令创建临时表并让BigQuery自动检测Schema,再通过bq show --schema --format=prettyjson <数据集>.<表名>导出标准BigQuery Schema格式。适合有样本数据的场景。
  • Apache Beam/Dataflow:在数据流处理场景中,可利用Apache Beam的Schema转换能力,编写简单逻辑将JSON Schema映射为BigQuery Schema,适合批量或实时数据管道的Schema同步需求。

自定义转换实现

如果需要定制化处理(比如添加policyTags、自定义数据类型映射),可自行编写脚本实现核心规则:

  1. 数据类型映射:
    • JSON string → BigQuery STRING
    • JSON integer → BigQuery INT64
    • JSON number → BigQuery FLOAT64
    • JSON boolean → BigQuery BOOL
    • JSON object → BigQuery RECORD
    • JSON array → 对应元素类型 + REPEATED模式
  2. 模式(mode)配置:JSON Schemarequired数组中的字段设为REQUIRED,其余为NULLABLE;数组类型默认REPEATED。
  3. 嵌套结构递归解析:遍历JSON Schema的properties,递归生成BigQuery的fields数组。

转换示例

源JSON Schema片段

{
  "type": "object",
  "properties": {
    "user_id": {"type": "integer", "description": "唯一用户标识"},
    "user_name": {"type": "string"},
    "hobbies": {"type": "array", "items": {"type": "string"}}
  },
  "required": ["user_id"]
}

转换后的BigQuery Schema片段

[
  {
    "name": "user_id",
    "type": "INT64",
    "mode": "REQUIRED",
    "description": "唯一用户标识"
  },
  {
    "name": "user_name",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "hobbies",
    "type": "STRING",
    "mode": "REPEATED"
  }
]

内容的提问来源于stack exchange,提问作者Eric Kolotyluk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 01:15:40