BigQuery查询执行与架构详解
1. 查询结果返回
当查询工作分片完成查询执行后,结果会被分为两部分。结果的第一页左右会与查询元数据一起存储在分布式关系数据库Spanner中,Spanner数据位于查询运行的同一区域。其余数据则会写入Google的分布式文件系统Colossus。对于结果较小的查询,无需访问磁盘,因此可以非常快速地返回结果。
BigQuery API设计为可重连的。在最佳情况下,它可以同步运行,但如果超时,调用客户端应该能够重新连接。为实现这一点,在超时之前,作业服务器会向客户端返回一个作业ID,客户端可以通过该作业ID查找以获取结果。BigQuery客户端 bq.py (云客户端库)和开放数据库连接(ODBC)/JDBC驱动程序封装了此协议,因此最终用户可以可靠地获取查询结果。
BigQuery结果会存储24小时,它们在功能上等同于一个表,可以像查询表一样进行查询。普通SELECT查询的结果限制为10GB。如果要写入更多数据,可以使用 CREATE TABLE AS SELECT 或 INSERT 语句,这些语句没有大小限制。
2. BigQuery升级
BigQuery可以进行原地升级,无需停机。实际上,升级经常进行,通常每周至少一次。升级通常会在几天内逐步推出,第一天从单个区域的单个区域开始,随后每天扩大范围。这样做的目标是尽可能以最小的“影响范围”捕获任何问题。
BigQuery甚至可以在不中断查询的情况下进行更新。要开始升级,会先将一部分分片的工作清空(即它们停止接受新工作),然后对这些分片进行原地
超级会员免费看
订阅专栏 解锁全文
22

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



