gpt4 book ai didi

sql - 如何完全在 BigQuery 中创建具有嵌套架构的新表

转载 作者:行者123 更新时间:2023-12-04 21:40:37 24 4
gpt4 key购买 nike

我在 BigQuery 中有一个嵌套表 A,其架构如下:

    {
"name": "page_event",
"mode": "repeated",
"type": "RECORD",
"fields": [
{
"name": "id",
"type": "STRING"
}
]
}

我想用其他表中的数据丰富表 A 并将结果保存为新的嵌套表。假设我想将“描述”字段添加到表 A(创建表 B),所以我的架构如下:
    {
"name": "page_event",
"mode": "repeated",
"type": "RECORD",
"fields": [
{
"name": "id",
"type": "STRING"
},
{
"name": "description",
"type": "STRING"
}
]
}

如何在 BigQuery 中执行此操作?似乎在 BigQuery SQL 中没有用于创建嵌套结构的函数(除了生成列表的 NEST 函数 - 但该函数似乎不起作用,因意外错误而失败)

我能想到的唯一方法是:
  • 使用字符串连接函数生成带有名为“json”的单个字段的表 B,其内容是来自 A 的丰富数据,转换为 json 字符串
  • 将 B 作为一组文件 F 导出到 GCS
  • 将 F 加载为表 C

  • 有没有更简单的方法来做到这一点?

    最佳答案

    要丰富现有表的模式,可以使用表补丁 API
    https://cloud.google.com/bigquery/docs/reference/v2/tables/patch

    请求将如下所示

    PATCH https://www.googleapis.com/bigquery/v2/projects/{project_id}/datasets/{dataset_id}/tables/{table_id}?key={YOUR_API_KEY}

    {
    "schema": {
    "fields": [
    {
    "name": "page_event",
    "mode": "repeated",
    "type": "RECORD",
    "fields": [
    {
    "name": "id",
    "type": "STRING"
    },
    {
    "name": "description",
    "type": "STRING"
    }
    ]
    }
    ]
    }
    }

    补丁前

    enter image description here

    补丁后

    enter image description here

    关于sql - 如何完全在 BigQuery 中创建具有嵌套架构的新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27548490/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com