[GCP]BigQuery大数据产品系列分析介绍

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 介绍GCP大数据相关产品能力系列介绍

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_arch.png


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


gcp_bigdata_arch.jpg


Dataplex - Data Lake Formation


利用 Dataplex 的智能数据结构摆脱数据孤岛,使组织能够通过一致的控制集中管理、监控和治理跨数据湖、数据仓库和数据集市的数据,提供对可信数据的访问并支持大规模分析。

image.png

集中式安全和治理


对数据授权和分类进行集中的政策管理、监控和审核。分布式数据所有权,可跨数据和相关工件(如机器学习模型)进行全球范围的监控和治理。


元数据管理


借助内置数据智能,对数据孤岛中的结构化、半结构化和非结构化数据自动执行数据发现、数据分类、架构检测、元数据收集和注册。您可以通过各种分析和数据科学工具轻松访问这些数据。


数据质量


自动处理分布式数据中的数据质量,实现对可信数据的开箱即用访问。使数据质量成为 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内部运行分析。


bigquery_onmi.jpeg


对于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。



相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1天前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之将多业务分表同步到odps的一个三级分区表中,每级分区怎么赋值
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
14 4
|
6天前
|
SQL 机器学习/深度学习 分布式计算
MaxCompute产品使用问题之如何调整改变SQL查询的严格性
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4天前
|
存储 数据采集 分布式计算
Java中的大数据处理与分析架构
Java中的大数据处理与分析架构
|
6天前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用问题之删除了某个分区的数据,如何找回
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
存储 SQL 分布式计算
MaxCompute产品使用问题之如何查看项目空间耗用的存储大小
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之使用Table 2.0的表时,如何加快查询速度
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用问题之在同步表时,分区通常使用的是什么字段
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1天前
|
数据采集 分布式计算 DataWorks
DataWorks产品使用合集之odps如何使用正则表达式匹配字段的内容
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
6 0
|
5天前
|
消息中间件 存储 大数据
深度分析:Apache Kafka及其在大数据处理中的应用
Apache Kafka是高吞吐、低延迟的分布式流处理平台,常用于实时数据流、日志收集和事件驱动架构。与RabbitMQ(吞吐量有限)、Pulsar(多租户支持但生态系统小)和Amazon Kinesis(托管服务,成本高)对比,Kafka在高吞吐和持久化上有优势。适用场景包括实时处理、数据集成、日志收集和消息传递。选型需考虑吞吐延迟、持久化、协议支持等因素,使用时注意资源配置、数据管理、监控及安全性。
|
5天前
|
SQL 运维 druid
深度分析:Apache Doris及其在大数据处理中的应用
Apache Doris是一款开源的高性能实时分析数据库,设计用于低延迟SQL查询和实时数据处理,适合大规模实时分析场景。与Apache Druid、ClickHouse和Greenplum相比,Doris在易用性和实时性上有优势,但其他产品在特定领域如高吞吐、SQL支持或数据处理有特长。选型要考虑查询性能、实时性、SQL需求和运维成本。Doris适用于实时数据分析、BI报表、数据中台和物联网数据处理。使用时注意资源配置、数据模型设计、监控调优和导入策略。

相关产品

  • 云原生大数据计算服务 MaxCompute