所以我在大约10分钟前开始搞乱Google BigQuery,我想知道是否有人知道他们用来存储数据的底层架构?例如,这只是他们自己的BigTable基础设施的下一代吗?
此外,它是否清楚他们用于索引,索引重建等的各种策略?我只是想分析一下这是否足够成熟,你可以100%确定你的数据端到端的情况,或者是否有一些黑盒子区域“事情正常工作“?
解决方法
没有索引……每个查询都是表扫描.查询体系结构描述为
here.
您的数据以Colossus(GFS的后继者)上名为ColumnIO的专有列式格式存储. Colossus会复制数据中心内的数据,您的数据也会复制到其他地理区域,以确保即使Google数据中心脱机也能保持可用状态.
您的数据以Colossus(GFS的后继者)上名为ColumnIO的专有列式格式存储. Colossus会复制数据中心内的数据,您的数据也会复制到其他地理区域,以确保即使Google数据中心脱机也能保持可用状态.
回答你的具体问题
>虽然数据可能暂时存储在Bigtable中,但所有数据都会在Colossus中长期存储(目前为止!).
>添加到bigquery的新数据在静止时加密(即,无论何时写入永久存储).它也通过网络发送时加密.
>如上所述,没有索引,因此没有重建索引的策略.根据您向表中添加数据的方式,您的表可能会合并,这意味着以更有效的方式重写底层文件.
> Colossus是各种服务中大量Google数据的基础,ColumnIO是整个Google的标准.我会称这两种技术都成熟.
>但是,您还应该将其视为黑匣子.随着Google成熟或架构的存储系统发生变化,此处的所有细节都可能会发生变化.但是,它应该总是“正常工作”(当然,在SLA警告中)
如果您对有关BigQuery如何在幕后工作或如何有效使用它的更多细节感兴趣,这里是关于该主题的book的无耻插件,将于6月份发布.