BigQuery - 复杂数据类型



BigQuery 除了支持 STRING、INTEGER 和 BOOLEAN 等“常规”数据类型外,还支持所谓的复杂数据。这通常也称为嵌套数据,因为数据不适合传统的扁平表,必须位于列的子集。

复杂数据结构很常见

对嵌套模式的支持允许更简化的加载过程。尽管 Google Cloud 将关于以下数据类型的教程列为“高级”,但嵌套数据非常常见。

了解如何展平并使用这些数据类型是任何面向 SQL 的开发人员的宝贵技能。

这些数据结构常见的原因是源数据(例如 API 的 JSON 输出)通常以这种格式返回:

[{data: "id": '125467", "name": "Acme Inc.", "locations": 
   {"store_no": 4, "employee_count": 15}}]
  • 请注意,“id”和“name”位于相同的引用级别。可以使用“data”作为键访问它们。
  • 但是,要获取诸如“store_no”和“employee_count”之类的字段,不仅需要访问 data 键,还需要展平“locations”数组。

这就是 BigQuery 的复杂数据类型支持非常有帮助的地方。数据工程师无需编写一个迭代并展开“locations”的脚本,就可以按原样将这些数据加载到 BigQuery 表中。

BigQuery 中的复杂数据结构

BigQuery 支持以下三种类型的复杂或嵌套数据:

  • STRUCT
  • ARRAY
  • JSON

处理这些类型的方法将在接下来的章节中解释。

广告