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

简介: 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版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
4月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
848 3
|
6月前
|
存储 数据安全/隐私保护 容器
16.[HarmonyOS NEXT Column案例一(上)] 使用Column组件构建垂直表单布局的基础指南
在HarmonyOS NEXT应用开发中,布局是构建用户界面的基础。本教程将详细讲解如何使用Column组件创建垂直排列的表单布局,通过一个登录表单的实例,展示Column组件的基本用法、间距控制和对齐方式等核心知识点。
134 4
|
5月前
|
机器学习/深度学习 人工智能 分布式计算
AI 大模型时代的网络架构演进
​2025 年 7 月 26 日,第二届中国计算机学会(CCF)分布式计算大会暨中国算力网大会(CCF Computility 2025)在甘肃兰州隆重召开。大会以“算力网:新质生产力背景下的分布式系统”为主题,吸引了来自学术界与产业界的 1200 余位专家学者、行业代表齐聚一堂,共探分布式计算与算力网络的前沿技术与未来趋势。
|
存储 SQL 安全
啥?Snowflake 数据共享功能
啥?Snowflake 数据共享功能
234 0
|
人工智能 数据挖掘 大数据
排队免单与消费增值模式:融合玩法与优势解析
排队免单模式通过订单排队、奖励分配、加速与退出机制等,结合消费增值模式中的积分制度、利润入池与积分增值等,共同提升消费者参与度和忠诚度,促进商家销售增长。具体包括订单自动排队、大单拆小单、异业联盟、线上线下融合及数据分析优化等进阶玩法,以及积分增值模型演算,形成一套完整的消费者激励体系。
|
机器学习/深度学习 人工智能 自然语言处理
生成式人工智能入门指南
生成式 AI 是人工智能的一个子领域,专注于通过学习现有数据的模式创建新内容或生成解决方案。它是一种鼓励 AI 系统利用对数据结构的理解自主生成新颖、类似于人类的输出的方法。这可以采用图像、文本、音乐或甚至是代码的形式呈现。
431 3
|
前端开发 JavaScript 微服务
探索现代Web开发中的微前端架构
在今天的Web开发世界,应用程序的复杂性与日俱增,传统的单体前端架构已经难以满足日益增长的需求。微前端架构应运而生,成为解决大型应用开发和维护挑战的一种有效方式。本文深入探讨微前端的核心概念、优缺点,以及如何在实际项目中应用这种架构,助力团队更好地应对复杂的前端开发需求。
|
机器学习/深度学习 存储 人工智能
【OpenVI-视觉评价系列之MOS评价实战篇】手机存储不够用,清理照片太痛苦?MOS评价帮你挑选“垃圾”照片
MOS(Mean Opinion Score)是一种常用的主观质量评价方法,常用于视频、图像等多媒体领域中的质量评价。MOS视觉评价通常是通过让受试者观看视频/图像,对视频的清晰度、锐度、颜色饱和度、运动模糊、噪声等方面进行评价。然而,MOS视觉评价也存在一些局限,例如需要大量的受试者,评估时间较长等。因此,近年来,研究者们也开始探索使用客观评价方法来替代或补充MOS视觉评价。
1049 2
【OpenVI-视觉评价系列之MOS评价实战篇】手机存储不够用,清理照片太痛苦?MOS评价帮你挑选“垃圾”照片
|
机器学习/深度学习 算法
SVM算法、朴素贝叶斯算法讲解及对iris数据集分类实战(附源码)
SVM算法、朴素贝叶斯算法讲解及对iris数据集分类实战(附源码)
464 0
|
存储 SQL Cloud Native
[Snowflake核心技术解读系列一]架构设计
Snowflake取得了巨大的商业成功,技术是如何支撑起它的千亿美元市值呢?它技术强在哪?本文为大家倾情解读Snowflake的核心技术原理。
2924 0
[Snowflake核心技术解读系列一]架构设计

热门文章

最新文章