我正在尝试为巨大的JSON数据集创建架构。数据已经处于非规范化形式(我从第三方得到它)。我现在面临的一个问题是,非规范化的JSON具有字符串数组(有时是对象),这些数组转换为经典SQL表之间的一对多关系。这是BQ无法识别的。
查找数组是否意味着每个这样的数组都需要放在自己的表中?
我创建了一个简单的例子:
{ "name": "John Doe", "books_read": [ "Jungle Book", "Cinderella", "Harry Potter", "The Little Prince" ] }
除了创建两个表users
和books_read
并链接它们之外,此样本数据是否有良好的架构?
我非常专注于非规范化,因此创建多个表就像是反对BQ。
答案 0 :(得分:1)
由于BigQuery支持嵌套和结构化数据(与JSON相同的模型),因此最好将其建模为具有以下模式的单个表:
STRING name
REPEATED STRING books_read
BigQuery的SQL方言有很多支持来处理这种重复的结构。