BigQuery存储系统:原理、优化与应用
1. 高效存储:BigQuery成功的秘诀
高效存储是任何数据库管理系统成功的关键因素之一。BigQuery的许多快速特性都源于其独特的数据存储方式。从底层的存储硬件(使用大规模分布式文件系统)到文件格式(自定义列存储),BigQuery的存储栈(包括元数据和存储数据)都针对分析速度进行了优化。
1.1 存储数据
BigQuery存储着艾字节级别的数据,这些数据分布在数十个区域的数百万个物理磁盘上。底层存储系统的主要目标是确保这些分布式数据能够被快速访问,并保证任意两个表可以相互连接,这意味着它们需要存储在同一位置。
当你将数据加载到BigQuery时,数据会被写入Capacitor文件并存储在Colossus上。Colossus使用纠删码对数据进行编码,即使大量磁盘出现故障或损坏,数据仍然能够保持持久。将数据写入单个Colossus集群就足以保证数据的高持久性。为了确保数据既持久又可用,数据会被复制到同一区域内的另一个可用区。如果使用多区域的BigQuery位置(如美国或欧盟),数据还会在区域外的副本中存储一份,以便在发生重大灾难时能够恢复数据。
1.2 物理存储:Colossus
BigQuery将所有数据存储在Colossus上,这是Google广泛使用的分布式存储系统。Colossus是Google文件系统(GFS)的演进版本,通过创建更灵活的元数据系统和消除单点故障,解决了GFS中的可扩展性、灵活性和可靠性问题。
Colossus通过大量服务器中的大量磁盘组合形成文件系统。为了避免数据丢失,采用了编码的方式,主要有复制编码和纠删码两种: <
BigQuery存储原理与优化技巧
超级会员免费看
订阅专栏 解锁全文
2617

被折叠的 条评论
为什么被折叠?



