BigQuery - STRUCT 数据类型



STRUCT 和 ARRAY 是开发人员在 BigQuery 的列式结构中存储嵌套数据的方式。

什么是 Struct?

STRUCT 是一组具有指定类型(必需)和字段名称(可选)的字段的集合。值得注意的是,与 ARRAY 不同,STRUCT 类型可以包含混合的数据类型。

为了更好地理解 STRUCT 类型,请再次查看上一章中的示例,现在进行了一些更改。

"locations": [
   {"store_no": 4, "employee_count": 15, "store_name": "New York 5th Ave"}, 
   {"store_no": 5, "employee_count": 30, "store_name": "New York Lower Manh"}
]

之前“locations”是相同类型的**字典**(用 JSON 表示),现在它包含两个 STRUCT,其类型为**<整数,整数,字符串>**。

  • 尽管支持 STRUCT 类型,但在表创建阶段,BigQuery 没有提供显式的 STRUCT 标签。
  • 相反,STRUCT 表示为具有 NULLABLE 模式的 RECORD。

**注意** - 将 STRUCT 视为容器而非专用数据类型。

在模式中定义时,STRUCT 内部的元素将用“.”表示和选择。此处,**模式**将为 -

{"locations", "RECORD", "NULLABLE"},
{"locations.store_no", "INTEGER", "NULLABLE},
{"locations.employee_count", "INTEGER", "NULLABLE"},
{"locations.store_name", "STRING", "NULLABLE"}

点表示法

要选择 STRUCT 元素,需要在 FROM 子句中使用**点表示法** -

dot Notation

查询执行后,您可能会得到如下**输出** -

dot Notation
广告