[Snowflake核心技术解读系列四]云特性

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: Snowflake取得了巨大的商业成功,技术是如何支撑起它的千亿美元市值呢?它技术强在哪?本文为大家倾情解读Snowflake的核心技术原理。

背景:2020年9月16日,Snowflake成功IPO,交易首日市场估值达到704亿美元,募集资金34亿美元。Snowflake成为迄今为止规模最大的软件IPO,市值最高突破1200亿美元。Snowflake提供基于云的数据存储和分析服务,一般被称为 "数据仓库即服务",它允许企业用户使用基于云的硬件和软件来存储和分析数据。Snowflake自2014年起在亚马逊S3上运行,自2018年起在微软Azure上运行,自2019年起在谷歌云平台上运行,其Snowflake Data Exchange允许客户发现、交换和安全地共享数据。[维基百科]

Snowflake取得了巨大的商业成功,技术是如何支撑起它的千亿美元市值呢?它技术强在哪?OLAP内核技术爱好者浙川为大家倾情解读Snowflake的核心技术原理。本文为该系列四。

更多云特性

Snowflake除了通过上述的数据存储、虚拟仓库、云服务组件来充分挖掘和利用云原生技术外,还提供了更多的云特性来丰富关系型数据仓库的功能,以下章节会对此进行详细介绍。

完全面向SaaS

用户使用Snowflake数仓,不需要购买任何机器,也不需要安装任何软件,只需要购买Snowflake服务就行了。用户只要将数据上传到Snowflake中,就可以对这些数据进行查询分析操作。Snowflake不仅支持标准的数据库访问接口如JDBC、ODBC等,而且支持通过Web界面上的按钮直接操作数据。Snowflake的Web界面还支持用户直接访问数据库元数据、统计使用信息、进行用户和系统管理等。和DBaas(Database-as-a-Service)的最大不同是,Snowflake不需要用户进行数据仓库参数配置与调优,不需要用户关注底层物理部署方式、存储备份模式、故障恢复等数据仓库关键特性。用户在Snowflake上只需要关注的就是数据以及对数据的查询。

高可靠性

Snowflake在两种情况下会面临可靠性问题:1)人为控制的系统升级或运维管理,2)系统故障。由于越来越多的用户使用数仓的数据分析能力来支撑他们的核心业务,这些核心业务是不能接受业务停服的,因此,提供非常高的可靠性已经成了任何数据仓库需要重点解决的问题之一。Snowflake采用了两种方案来解决其两种情况下面临的可靠性问题:在线升级机制和故障恢复机制。

image.png

图 2 Snowflake多数据中心实例


故障恢复机制。如图2所示,Snowflake可以容忍其架构所有层级中单个节点或者任意组合节点发生故障,如果有节点发生故障,那么其他节点可以接管故障节点负责的工作,以不影响用户的使用体验。Snowflake的数据是存储在Amazon S3存储服务上的,S3会将数据在不同的数据中心中进行备份,即便单个数据中心完全宕掉了,S3仍然可以通过其他数据中心提供相同的数据。因此,S3可以提供99.99%的数据可用性和99:999999999%的数据持久性。Snowflake云服务组件中的元数据也是以这样的方式存储在S3中的。除了元数据以外,云服务组件中其他组件都直接部署在EC2上,这些EC2也分布在不同的数据中心中,由上层的负载均衡器来将用户请求均匀地转发到不同的EC2上。即使某个云服务组件节点挂掉,或者某个数据中心整个挂掉,那么整个Snowflake系统也不会受到影响,顶多是这个云服务组件目前正在服务的查询请求会失败。后续相关的查询请求均会自动转发到该云服务组件在其他数据中心的正常节点上。

和云服务组件不同的是,虚拟仓库并不是分布在不同的数据中心中,这么做的目的主要是考虑性能因素。网络性能是分析型查询执行性能的重要影响因素之一,而同一个数据中心内的网络性能会远远高于跨数据中心访问的网络性能,因此,作为实际执行查询请求的虚拟仓库的计算节点是构建在同一个数据中心的EC2上的。在查询执行过程中,如果某个计算节点挂掉了,该查询会执行失败,但是Snowflake会自动在相同的虚拟仓库上重试。重试前,Snowflake要么立即将挂掉的计算节点用新的节点来替换,要么在无法替换的情况下,将挂掉的计算节点移除。Snowflake会维护一个备计算节点池,以便快速地替换挂掉的计算节点。

如果虚拟仓库所在的数据中心整个挂掉,那么该虚拟仓库所正在运行的所有查询都会失败,此时就需要用户来介入了:用户需要主动地将虚拟仓库部署到另一个数据中心来继续服务。但是,这就会导致系统的不可用了。Snowflake当前采用这种设计方案的一个前提假设是数据中心整个挂掉的概率非常低,当然Snowflake也在设计新的方案以保障数据中心整个挂掉情况下的服务可靠性。

在线升级机制。Snowflake能够在做系统升级的时候,也提供高可靠性,这依赖于Snowflake的在线升级机制。由于Snowflake的云服务组件和虚拟仓库是无状态的,Snowflake允许同时部署云服务组件中不同组件和虚拟仓库的不同版本。所有状态都保存在key-value存储中,状态数据通过一个映射引擎来进行访问,该映射引擎还负责处理元数据版本和演进。

注:译文来自 https://www.snowflake.com/resource/sigmod-2016-paper-snowflake-elastic-data-warehouse/

(Snowflake核心技术解读系列一)架构设计

(Snowflake核心技术解读系列二)云原生技术

(Snowflake核心技术解读系列三)云原生技术


随时欢迎技术圈的小伙伴们过来交流^_^

AnalyticDB详情见:产品详情

AnalyticDB产品试用:产品试用

AnalyticDB知乎公众号:云原生数据仓库

AnalyticDB开发者社区公众号:云原生数据仓库

AnalyticDB开发者钉钉群:23128105

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
5月前
|
人工智能 监控 Cloud Native
阿里云参编业内首个代码大模型标准丨云原生 2024 年 1 月产品技术动态
阿里云参编业内首个代码大模型标准丨云原生 2024 年 1 月产品技术动态
|
存储 容灾 安全
云上架构和传统IT架构有什么区别及优势?
在云计算走向成熟之前,我们更应该关注系统云计算架构的细节,从传统的架构到云上大数据,实现了很多的转变。
3470 0
|
2月前
|
存储 安全 数据库
云计算:架构、类型及其优缺点
【8月更文挑战第20天】
367 0
|
机器学习/深度学习 自然语言处理 监控
智能计算的优点
智能计算的优点
|
存储 负载均衡 监控
云原生计算基金会是干什么的?底层原理是什么?
云原生计算基金会是干什么的?底层原理是什么?
977 0
|
关系型数据库 分布式数据库 PolarDB
《开源PolarDB总体架构和企业级特性》电子版地址
开源PolarDB总体架构和企业级特性
319 0
《开源PolarDB总体架构和企业级特性》电子版地址
|
存储 SQL 分布式计算
首次公开!阿里云开源PolarDB总体架构和企业级特性
在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云 PolarDB 内核技术专家北侠带来了主题为《PolarDB 总体架构设计和企业级特性》的精彩演讲。
30835 1
首次公开!阿里云开源PolarDB总体架构和企业级特性
|
人工智能 编解码 算法
OpenMMLab 2.0:新架构、新算法、新生态
OpenMMLab 2.0:新架构、新算法、新生态
409 0
|
存储 SQL Cloud Native
[Snowflake核心技术解读系列一]架构设计
Snowflake取得了巨大的商业成功,技术是如何支撑起它的千亿美元市值呢?它技术强在哪?本文为大家倾情解读Snowflake的核心技术原理。
2450 0
[Snowflake核心技术解读系列一]架构设计
|
存储 Cloud Native 数据挖掘
[Snowflake核心技术解读系列三]云原生技术
Snowflake取得了巨大的商业成功,技术是如何支撑起它的千亿美元市值呢?它技术强在哪?本文为大家倾情解读Snowflake的核心技术原理。
689 0
[Snowflake核心技术解读系列三]云原生技术

热门文章

最新文章