[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
目录
相关文章
|
1月前
|
存储 监控 NoSQL
九大核心NoSQL数据库及使用场景详解
【10月更文挑战第6天】在当今大数据与云计算飞速发展的时代,NoSQL数据库以其灵活的数据模型、可扩展性和高性能,成为了众多应用场景下的首选。本文将为您详细介绍九大核心NoSQL数据库及其典型使用场景,帮助您在工作和学习中更好地选择和应用。
61 3
|
7天前
|
存储 人工智能 安全
Snowflake在云数据平台中的创新实践
Snowflake在云数据平台中的创新实践
27 4
|
7天前
|
存储 运维 安全
Snowflake 与传统数据仓库相比有哪些优势?
Snowflake 与传统数据仓库相比有哪些优势?
38 2
|
20天前
|
机器学习/深度学习 存储 SQL
数据仓库革新:Snowflake在云数据平台中的创新实践
【10月更文挑战第27天】Snowflake作为云原生数据仓库的领导者,以其多租户、事务性、安全的特性,支持高度可扩展性和弹性,全面兼容SQL及多种数据类型。本文探讨了Snowflake在现代化数据仓库迁移、实时数据分析、数据存储与管理及机器学习集成等领域的创新实践和应用案例,展示了其在云数据平台中的强大优势和未来潜力。
32 2
|
3月前
|
存储 负载均衡 中间件
构建可扩展的分布式数据库:技术策略与实践
【8月更文挑战第3天】构建可扩展的分布式数据库是一个复杂而具有挑战性的任务。通过采用数据分片、复制与一致性模型、分布式事务管理和负载均衡与自动扩展等关键技术策略,并合理设计节点、架构模式和网络拓扑等关键组件,可以构建出高可用性、高性能和可扩展的分布式数据库系统。然而,在实际应用中还需要注意解决数据一致性、故障恢复与容错性以及分布式事务的复杂性等挑战。随着技术的不断发展和创新,相信分布式数据库系统将在未来发挥更加重要的作用。
|
6月前
|
存储 Rust 数据库
重磅发布!!!蚂蚁图团队开源高性能原生图存储系统CStore
CStore是一款专门为图分析场景而设计的原生图存储引擎,它采用了Rust语言编写,使用基于图的存储结构,针对图分析场景进行特定优化。CStore可以存储包含千亿级点和万亿级边的图数据,在蚂蚁集团内部的多场景使用中,已经积累了多年的经验,存储容量达到了PB级别。
重磅发布!!!蚂蚁图团队开源高性能原生图存储系统CStore
|
存储 缓存 人工智能
《云计算加速开源创新》——云原生驱动数据抽象与缓存加速开源技术发展
《云计算加速开源创新》——云原生驱动数据抽象与缓存加速开源技术发展
|
存储 人工智能 缓存
2022云栖精选—云原生驱动数据抽象 与缓存加速开源技术发展
顾 荣 南京大学 计算机科学与技术系 计算机软件新技术国家重点实验室(南京大学
473 0
2022云栖精选—云原生驱动数据抽象 与缓存加速开源技术发展
|
存储 SQL 缓存
【分布式技术专题】「分布式ID系列」百度开源的分布式高性能的唯一ID生成器UidGenerator
【分布式技术专题】「分布式ID系列」百度开源的分布式高性能的唯一ID生成器UidGenerator
716 0
【分布式技术专题】「分布式ID系列」百度开源的分布式高性能的唯一ID生成器UidGenerator
|
人工智能 编解码 算法
OpenMMLab 2.0:新架构、新算法、新生态
OpenMMLab 2.0:新架构、新算法、新生态
412 0

热门文章

最新文章

下一篇
无影云桌面