2014-03-30 51 views
5

所以我刚开始在10分钟前就开始搞乱Google BigQuery,我想知道是否有人知道他们用来存储数据的底层架构?例如,这仅仅是他们自己的BigTable基础设施的下一代?Google BigQuery基础架构

另外,是否清楚他们用于索引,索引重建等什么样的策略?我只是想分析一下,在这种情况下,您是否足够成熟,可以100%确定端到端的数据发生了什么,或者是否有一些黑盒子区域“事情正常工作“?

回答

16

没有索引...每个查询都是表扫描。查询架构描述here。 您的数据以Colossus(GFS的后继者)名为ColumnIO的专有柱状格式存储。 Colossus复制数据中心内的数据,并且您的数据也会复制到其他地理区域,以确保即使Google数据中心脱机,数据仍然可用。

为了回答您的具体问题

  • 尽管数据可能会暂时存储在Bigtable中,所有数据都存储长期在巨像(现在!)。
  • 添加到bigquery的新数据在休息时被加密(即,每当它被写出到永久存储器时)。它通过网络发送时也是加密的。
  • 如前所述,没有索引,所以没有重建索引的策略。根据您向表中添加数据的方式,您的表可能会合并,这意味着以更高效的方式重写底层文件。
  • Colossus是各种服务中大量Google数据的基础,ColumnIO是整个Google的标准。我会称这两种技术都成熟。
  • 但是,你也应该认为它是一个黑匣子。所有这些细节可能会随着Google成熟或架构中的存储系统的变化而改变。然而,它应该永远“只是工作”(SLA警告之内,当然)

如果你有兴趣了解的BigQuery在幕后是如何工作或如何有效地使用它的详细信息,这里是一个无耻的插头我们的book关于这个问题将在6月份发布。

+0

伟大的洞察力约旦。感谢您的回应。我认为缺乏索引是相当迷人的。关于我的“成熟”评论,我可能会更好地表述它,只是询问客户对其数据的控制级别。我很喜欢搭乘谷歌旅行车的想法,只是从建筑改进中受益而不用举手。我想这将成为许多企业架构师和CTO以及财务人员的巨大卖点。 –