I. Google Cloud Product - BigQuery
BigQuery作为GCP的主力大数据分析产品, 其事实上一个云上Serverless database的GCP产品.
其中BigQuery最核心组件是基于Dremel分析引擎:
- 概念-Concept: distributed search engine design
- 定义-Dremel provides a high-level, SQL-like language to express ad-hoc queries without translating them into MR job.
- 存储-Dremel uses a column-striped storage representation, which enables it to read less data from secondary storage and reduce CPU cost due to cheaper compression
其中有明显的设计差异, 例如
- extensive use of stateful caching (Dremel产品主要形态以Severless模式),
- Execution model-Volcano / Exchange Operator(并行数据库)
- separate instances where each is optimized for different use cases (Dremel属于sharding-everything架构,共享给所有用户)
- Nested type->column store
- use of indexable columnar formats optimized for lookups (Capacitor, unlike Artus, does not have indexes), etc.
- Storage Format, Capacitor and Parquet
以上这些差异使 Procella 适用于许多额外的工作负载 (e.g high QPS reporting and lookup queries)
- 查询-adhoc,trival-and-error analytics tens of seconds 35billion rows
full scan全表扫描: 不需要Indices和pre-aggregation in-memory/flash,columar storage,parallel disk IO.
虽然 MapReduce 适用于数据挖掘等长时间运行的批处理过程,但 BigQuery 是需要尽快获得结果的即席 OLAP/BI 查询的最佳选择。
BigQuery背后的技术-Dremel + Colossus + Borg + Jupiter
Dremel: The Execution Engine
Dremel将你的SQL语句转化成执行树。执行树的叶子节点被称为'slots'-插槽。大规模数据计算并从Colossus读取数据,插槽可读取千亿行数据并对每行做正则表达式的check。
这执行树的分支被称为'mixers'-混合器, 它将用于聚合aggregation。 在shuffle过程中, 借助Google’s *Jupiter network*的技术优势可迅速准确地在多节点间迁移数据。混合器mixers与槽位slots都运行在Borg资源调度器内,并分配信息到硬件上。
Dremel 根据需求动态地将插槽slot分配给查询,从而在同时查询的多个用户之间保持公平。单个用户可以获得_数千个插槽slot_来运行他们的查询。
Dremel 在 Google 被广泛使用——从搜索到广告ads,从 youtube 到 gmail——内部客户使用导致其非常重视且不断改进 Dremel。 BigQuery 用户受益于性能、耐用性、效率和可扩展性的持续改进,而无需停机和与传统技术相关的升级。
Colossus: Distributed Storage
BigQuery 依赖于 Google 最新一代的分布式文件系统 *Colossus*。每个 Google 数据中心都有自己的 Colossus 集群,每个 Colossus 集群都有足够的磁盘来一次为每个 BigQuery 用户提供数千个专用磁盘。 Colossus 还处理复制、恢复(当磁盘崩溃时)和分布式高可用管理(因此没有单点故障)。 Colossus 的速度足以让 BigQuery 为许多内存数据库提供类似的性能,但利用了更便宜但高度并行化、可扩展、持久和高性能的基础架构。
BigQuery 利用 *ColumnIO 列式存储格式* 和压缩算法以最佳方式将数据存储在 Colossus 中,以读取大量结构化数据。Colossus 允许 BigQuery 用户无缝扩展到数十 PB 的存储空间,而无需支付附加费用更昂贵的计算资源——相比典型的大多数传统数据库。
Capacitor: 列式数据存储优化格式
BigQuery Storage Format= [Inside Capacitor, BigQuery’s next-generation columnar storage format]
Borg: 分布式资源调度, K8s的原型
为了给用户提供数以千计的专用于处理任务的 CPU 内核,BigQuery 充分利用了 Google 的大型集群资源管理系统 Borg。 Borg 集群运行在数十万台机器和数十万个内核上,因此使用 3300 个 CPU 的查询只使用了 BigQuery所保留的容量的一小部分,而 BigQuery 的容量只是 Borg 集群容量的一小部分。 Borg 将服务器资源分配给作业任务;在这种情况下,作业任务执行在 Dremel 集群上。
运行大型生产数据中心时可能会出现机器崩溃、电源故障、网络交换机死机以及无数其他问题。 Borg 绕着它走,软件层被抽象了。在 Google 规模上,每天都会有数千台服务器出现故障,而 Borg 保护内部免受这些故障的影响。有人在运行查询的过程中拔掉了数据中心的机架,而您永远不会注意到其中的差异。
Jupiter: The Network
除了明显的资源调度与计算资源需求, 大数据负载往往受到网络throughput的控制与节制。Google’s Jupiter网络支持整个对半带宽(bisection bandwidth)传输1Pb/s数据, 允许高效且迅速分发大负载数据。
Jupiter网络基础设施可能是GCP中单独最大的差异点。它提供足够带宽来支持100000台机器以10Gbs的带宽来互相访问。其网络带宽要求查询语句只使用少于整个系统容量的0.1%资源。全双工带宽(full-duplex bandwidth)意味着整个集群的地理位置不在重要。如果每个机器都能以10 Gbps网络带宽访问集群中其他机器,机架不在重要。
典型的存储和计算分离的解决方案包括将数据保存在像 Google Cloud Storage 或 AWS S3 这样的对象存储中,并将数据按需加载到 VM。这种方法通常比 HDFS 等共租户架构更有效,但会受到本地 VM 和对象存储吞吐量限制。Jupiter 允许我们完全绕过这个过程,并在几秒钟内直接从存储中读取 TB 的数据,用于每个 SQL 查询。
II.Google Cloud Product - BigData Product Series
Dataplex - Data Lake Formation
利用 Dataplex 的智能数据结构摆脱数据孤岛,使组织能够通过一致的控制集中管理、监控和治理跨数据湖、数据仓库和数据集市的数据,提供对可信数据的访问并支持大规模分析。
集中式安全和治理
对数据授权和分类进行集中的政策管理、监控和审核。分布式数据所有权,可跨数据和相关工件(如机器学习模型)进行全球范围的监控和治理。
元数据管理
借助内置数据智能,对数据孤岛中的结构化、半结构化和非结构化数据自动执行数据发现、数据分类、架构检测、元数据收集和注册。您可以通过各种分析和数据科学工具轻松访问这些数据。
数据质量
自动处理分布式数据中的数据质量,实现对可信数据的开箱即用访问。使数据质量成为 DataOps 不可或缺的一部分。
数据生命周期管理
使用 Dataplex 数据湖和数据可用区,将跨多个存储服务的数据按逻辑整理为特定业务领域。只需点击一下,即可轻松管理、挑选、分层和归档数据。
专为分布式数据构建
统一数据,避免移动或重复。使数据保留在原地,最大限度地降低费用并提高性能。
BigLake - BigQuery统一存储引擎
- 跨数据仓库和数据湖存储具有统一特征的数据的单个副本。
- 针对分布式数据实现精细的访问权限控制和多云治理。
- 与开源分析工具和开放数据格式(Iceberg/Linux DeltaLake/Hudi)无缝集成。
- 提供统一Storage API, 扩展BigQuery的数据生态开放对接能力
III.Google Cloud Product - Open Platform for Multi-Cloud
Google Cloud 在开放平台上的赌注开始通过 Anthos 和 BigQuery Omni 实现。
BigQuery Omni-Multi-Cloud Data Analytics
Google宣布了[BigQuery Omni],这是一种多云分析解决方案,可以在Google Cloud,AWS和Azure上运行BigQuery(即将推出)。 现在,无论数据存储在何处,客户都可以使用相同的BigQuery UI或API来运行SQL查询并构建BigQuery ML模型。 更重要的是,BigQuery Omni在Anthos上运行,并揭示了Kurian和Google Cloud的战略,以扩大其可寻址市场。 最初,Anthos是“简单”的混合和多云应用程序平台,利用其强大的Kubernetes主干网将本地和现有AWS / Azure应用程序迁移到GCP上。 Google希望通过BigQuery Omni将整个云基础设施商品化,并使用Anthos作为中间件来赢得市场份额。 从本质上讲,谷歌将赌注押在其卓越的容器和AI / ML技术上,以在不断发展的多云世界中竞争,就像它通过搜索使互联网时代的基础操作系统商品化一样。
BigQuery Omni Deep Dive
在探讨BigQuery Omni的战略含义之前,让我们深入了解BigQuery Omni的工作原理。 与[AWS Redshift]不同,BigQuery将存储和计算分离(类似于Snowflake的工作方式),利用便宜的存储成本并分别向用户收费以处理数据。 这种结构上的决定使BigQuery Omni成为该概念的自然扩展。
之前BigQuery仅限于存储在Google Cloud中的数据。 尽管Google 多年来收购了诸如Velostrata和Alooma之类的云迁移初创公司以促进从其他云平台迁移数据,但对于大多数企业而言,转换成本仍然很高,以至于不管开发人员的经验如何,都可以通过AWS Redshift或Azure Data Warehouse使用BigQuery来证明其合理性,使用或其他功能。
Tips: 阿里云MaxCompute与BigQuery整体架构有类似, 云端存算分离有借鉴之处。
现在,BigQuery Omni在AWS内部的Anthos上运行,以直接访问S3和其他数据库中的数据。 由于BigQuery从存储开始就将计算和处理分离开来,因此现在可以将S3像存储在GCS中的数据一样对待,并在多个云上运行分析。 此处的最大优势是降低了网络出口费用的成本,并且消除了首先使用BigQuery的数据迁移负担。 借助Anthos,BigQuery Omni几乎充当了AWS本地解决方案,在AWS内部运行分析。
对于Google来说,好的一面(也许是Anthos和BigQuery Omni策略的理由)是,越来越多的公司开始采用多云和混合云解决方案。
Gartner最近对云采用情况进行的一项调查显示,使用公共云的受访者中有80%以上使用了不止一个云服务提供商。
- [Gartner, The Future of Cloud Data Management Is Multicloud]
像AWS和Azure这样的市场领导者没有动机去追求多云产品。 他们的目标是吞噬尽可能多的市场并将其锁定在他们的云平台中。 另一方面,Google别无选择,处于更好的位置,可以发挥中间件卡并向上发展。 尽管Google拥有自己的庞大基础设施,可以为数十亿用户提供搜索,地图和电子邮件服务,而不是试图从企业巨头手中抢走企业客户,但Google决定提供多云服务并将现有的数据孤岛视为潜在机会其产品的数据源将更具盈利性和竞争力。
从这个角度来看,Google Cloud的竞争对手可能实际上是IBM,而不是AWS和Azure。 IBM在2019年以340亿美元的价格收购了Red Hat,押注与流行的企业Kubernetes平台OpenShift相同的开放式混合云战略。 Google作为创建者显然在Kubernetes中具有优势(更不用说它在运行Borg方面的15年以上的经验了,Borg是Kubernetes所基于的Google原始容器管理系统),并且继续通过对Kubernetes,Istio和容器的积极贡献来扩大其领先地位。技术。 结合Kurian在Oracle上运行融合中间件产品的经验,Google似乎有条件将Anthos和BigQuery Omni成为云中的下一个大规模中间件产品。
Anthos-Open Platform based on K8s
那么Anthos的下一步是什么? 显而易见的答案是扩展产品线以支持其他数据库:Cloud SQL,Dataproc,BigTable和Spanner。 就个人而言,我对Google如何使用Looker来吸引用户寻找AWS Quicksight或Azure PowerBI的替代解决方案感兴趣。 另一个有趣的途径是将Firebase扩展到移动开发,并利用现有的生态系统来扩展“中间件”市场。 最后,最大的问题是该策略是否还会加速AI / ML技术的广泛采用。 Google被广泛视为这一领域的领导者,将BigQuery Omni与现有的AI平台产品(即[kubeflow], [TensorFlow], AI集线器/托管的Jupyter Notebook([Vertex AI])和[Kaggle]相集成可能是帮助企业采用AI / ML。