BigQuery(BQ)拥有自己的存储系统,该存储系统与Google Cloud Store(GCS)完全分开。
我的问题是:为什么BQ不像Hadoop Hive那样直接处理存储在GCS上的数据?这种设计的好处和必要性是什么?
答案 0 :(得分:3)
这是因为BigQuery使用面向列的数据库系统,并且具有后台进程,这些进程会不断检查数据是否以最佳方式存储。因此,数据由BigQuery管理(这就是为什么它拥有自己的存储),并且只向用户公开最高层。
有关更多详细信息,请参见此article:
当您将位加载到BigQuery中时,服务将承担全部 负责管理数据,并且仅公开逻辑 数据库基元给你
答案 1 :(得分:3)
BigQuery通过拥有自己的独立存储而获得了许多好处。
例如,BigQuery能够通过在存储在其上的磁盘上移动数据并对其进行重新排序,并添加更多磁盘并随着数据库变得越来越大而重复该过程,从而不断优化其数据存储。
BigQuery还利用一个独立的计算层来查询存储层,从而使存储层可以扩展,同时需要较少的整体硬件来运行查询。这样,BigQuery便可以根据需要调用更多处理能力,但是当未执行来自特定数据库的查询时,则没有闲置的硬件。
有关BigQueries结构和优化的更深入说明,您可以签出this article I wrote for The Data School.