JSON 数组(一对多)的 BigQuery 非规范化建议
BigQuery denormalization advice for JSON arrays (one-to-many)
我正在尝试为巨大的 JSON 数据集创建一个模式。数据已经是非规范化形式(我是从第三方那里得到的)。我现在面临的一个问题是,非规范化 JSON 具有字符串数组(有时是对象),这转化为经典 SQL table 之间的一对多关系。这是BQ不认识的。
查找数组是否意味着每个这样的数组都需要放在自己的 table 中?
我创建了一个简单的示例:
{ "name": "John Doe", "books_read": [ "Jungle Book", "Cinderella", "Harry Potter", "The Little Prince" ] }
除了创建两个 tables users
和 books_read
并链接它们之外,是否有适用于此示例数据的良好模式?
我非常专注于非规范化,以至于创建多个 table 感觉就像在违背 BQ。
由于 BigQuery 支持嵌套和结构化数据(与 JSON 相同的模型),最好将其建模为具有以下架构的单个 table:
STRING name
REPEATED STRING books_read
BigQuery 的 SQL 方言对处理此类重复结构提供了大量支持。
我正在尝试为巨大的 JSON 数据集创建一个模式。数据已经是非规范化形式(我是从第三方那里得到的)。我现在面临的一个问题是,非规范化 JSON 具有字符串数组(有时是对象),这转化为经典 SQL table 之间的一对多关系。这是BQ不认识的。
查找数组是否意味着每个这样的数组都需要放在自己的 table 中?
我创建了一个简单的示例:
{ "name": "John Doe", "books_read": [ "Jungle Book", "Cinderella", "Harry Potter", "The Little Prince" ] }
除了创建两个 tables users
和 books_read
并链接它们之外,是否有适用于此示例数据的良好模式?
我非常专注于非规范化,以至于创建多个 table 感觉就像在违背 BQ。
由于 BigQuery 支持嵌套和结构化数据(与 JSON 相同的模型),最好将其建模为具有以下架构的单个 table:
STRING name
REPEATED STRING books_read
BigQuery 的 SQL 方言对处理此类重复结构提供了大量支持。