简介: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数据仓库产品,它不仅具有灵活性(即买即用)、高安全性、极致扩展性和弹性等特点,而且支持多租户、事务、标准SQL语法和半结构化、非结构化数据。Snowflake在2015年开始上线使用,如今发展成支持每天运行数百万条查询的PB级云原生数据仓库。

图 1 整体架构图

整体架构

图1展示了Snowflake的整体架构。Snowflake设计的最终目的是为用户提供高易用性、高可操作性,以及高可靠性,基于这样的前提,Snowflake的内核组件的设计都具有高可靠、高可扩展的特性。组件是互相独立的,组件之间通过RESTful接口进行通信。Snowflake内核组件从底向上可以分为三个层面:

1)数据存储。Snowflake的数据存储是构建在Amazon S3存储服务至上,主要用来存储表数据和查询结果。

2)虚拟仓库。虚拟仓库构建在Amazon EC2虚拟机组成的弹性集群之上,负责执行用户的查询请求。

3)云服务组件。云服务组件是Snowflake的大脑,它包括并发访问控制、基础设施管理、优化器、事务管理、安全管理、元数据管理,其中元数据包含schema信息、表信息、权限认证信息、秘钥、统计信息等。

本篇文章为开胃菜,先从Snowflake架构设计切入,有个总体的了解。接下来会陆续推出几篇系列文章,讲解包括Snowflake重要的云原生技术及其它的创新之处,云服务组件,面向云的各自特性。

原文链接

本文为阿里云原创内容,未经允许不得转载。

Snowflake核心技术解读系列——架构设计相关推荐

  1. 深入解读 MySQL 架构设计原理,剖析存储架构选型核心

    孙玄,江湖人称"玄姐",前58集团技术委员会主席,前转转二手交易平台首席架构师.今天想跟你聊点儿企业里那些年薪百万的架构师,他们的架构设计思维是如何升级的,以及他们是如何玩转 My ...

  2. 一文带你解读Volcano架构设计与原理

    摘要:Volcano主要是基于Kubernetes做的一个批处理系统,希望上层的HPC.中间层大数据的应用以及最下面一层AI能够在统一Kubernetes上面运行的更高效. Volcano产生的背景 ...

  3. .NET企业级应用架构设计系列之应用服务器

    本文属spanzhang(张友邦)原创,发布地址为:http://blog.csdn.net/spanzhang.转载或引用请注明原文之出处,谢谢! .NET企业级应用架构设计系列之开场白 .NET企 ...

  4. .net core实践系列之短信服务-架构设计

    前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:h ...

  5. 消息中间件系列(九):详解RocketMQ的架构设计、关键特性、与应用场景

    内容大纲: RocketMQ的简介与演进 RocketMQ的架构设计 RocketMQ的关键特性 RocketMQ的应用场景 RocketMQ的简介 RocketMQ一个纯java.分布式.队列模型的 ...

  6. 大型网站架构设计系列总结

    大型网站架构设计系列-我的总结如下: 1. 数据结构和产品架构设计,这是基础! 2. 角色分开,各司其职(web服务器,缓存服务器,负载平衡,数据库等) 3. HTML静态化(用缓存服务器也可) 4. ...

  7. 企业管理系统前后端分离架构设计 系列一 权限模型篇

    ACL(Access Control List)(访问控制列表) DAC(Discretionary Access Control)(自主访问控制) MAC(Mandatory Access Cont ...

  8. 架构思维成长系列教程(十二)- 云平台架构设计

    背景 云平台是个非常宽泛的领域,一般分成:IaaS 基础设施即服务.PaaS 平台即服务.SaaS 软件即服务,本文侧重介绍企业私有云平台架构. 内容 云平台技术架构 云平台技术架构 如图所示,这是一 ...

  9. 标准解读系列之三:智慧高速建设需要什么样的技术架构?

    文章版权所有,未经授权请勿转载或使用 智慧高速公路是以多维状态感知.多源信息融合等手段对高速公路运行状态进行智能感知,为运营方提供智慧化的监测.应急.养护.运维.决策能力,为交通管理方提供智慧化交通管 ...

最新文章

  1. 【每日DP】day2、P1879 [USACO06NOV]Corn Fields G玉米地(状压DP模板题)难度⭐⭐⭐★
  2. 2017年1月22日 10:00
  3. 远程mysql定时删除数据_mysql定时备份数据库 删除历史文件 将备份数据库传送到另外服务器...
  4. html file对象修改,HTML DOM
  5. android中读取properties文件
  6. PLSQL的中文乱码显示全是问号
  7. 15个常用excel函数公式_(干货)EXCEL常用函数公式大全及举例
  8. JavaScript (05)-大话JS,屌丝逆袭(四)
  9. 小学计算机课程目录五年级,小学信息技术课程目录.doc
  10. 四、Spyder 下使用 Scrapy 开发爬虫之腾讯视频抓取
  11. 自订安装套件选单(转)
  12. Unet(pytorch)——制作自己的数据集(二分类)
  13. php html wxml,微信开发之WXML、WXSS 和JS的详细介绍
  14. 深度图+灰度图 可视化判断灰度图区域是否有深度
  15. 芯来科技开源软件调试命令解析(nuclei-linux-sdk、openocd.cfg)
  16. flashback使用
  17. 【回溯专题】—— 回溯算法入门篇
  18. 《Java 8实战》 之 Lambda
  19. 有利可图网_有利可图的项目手册-现在可用
  20. 如何在Django中优雅的使用pyecharts设计可视化BI系统(多图表)

热门文章

  1. rocketmq 消息指定_进大厂必备的RocketMQ你会吗?
  2. lnmp php文件访问不了,记一次lnmp环境下无法执行php文件
  3. 我精心珍藏的Python代码技巧
  4. python字典怎么添加值_python字典中如何添加键值对
  5. mysqlfor循环中出错继续_Python学习笔记(循环)
  6. 如何修改ant-input的高度_水质自动采样器的流量计功能如何应用?
  7. mongoose 批量修改字段_WordPress图片路径批量替换方法
  8. C++中类和对象的一些注意事项 --- 多态
  9. git rebase用法_Git:Clone别人的代码之后push到自己码云上失败的解决办法
  10. u8 附件上传后存放路径_织梦DedeCms附件按月份保存的修改方法