简介: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. MyBatis架构设计及源代码分析系列(一):MyBatis架构

    如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处. 一.概述 MyBatis并不是一个完整的ORM框架,其官方首页是这么介绍自己 The MyBa ...

  2. Junit4 架构设计系列(2): Runner.run()与Statement

    Overall 系列入口: Junit4 架构设计系列(1): Request,ClassRequest 和 RunnerBuilder 前文中,我们基本理清了Junit4执行Case大体上的Flow ...

  3. Junit4 架构设计系列(1): Request,ClassRequest 和 RunnerBuilder

    Overall Junit的成功已不言而喻,其广泛应用于单元测试,测试驱动开发领域.大量的工具,IDE都集成了JUnit,著名的有Maven,Ant,Eclipse,甚至像Google SDK提供的A ...

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

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

  5. 支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型

    支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型 原创 杨翊(席翁) 阿里巴巴云原生 2020-12-28    

  6. Netty 源码分析系列(二)Netty 架构设计

    前言 上一篇文章,我们对 Netty做了一个基本的概述,知道什么是Netty以及Netty的简单应用. Netty 源码分析系列(一)Netty 概述 本篇文章我们就来说说Netty的架构设计,解密高 ...

  7. ENode框架Conference案例分析系列之 - 架构设计

    Conference架构概述 先贴一下Conference案例的在线地址,UI因为完全拿了微软的实现,所以都是英文的,以后我有空再改为中文的. Conference后台会议管理:http://www. ...

  8. .NET架构设计、框架设计系列文章总结

    从事.NET开发到现在已经有七个年头了.慢慢的可能会很少写.NET文章了.不知不觉竟然走了这么多年,热爱.NET热爱c#.突然想对这一路的经历进行一个总结. 是时候开始下一阶段的旅途,希望这些文章可以 ...

  9. Spark Streaming源码解读之Driver中ReceiverTracker架构设计以具体实现彻底研究

    本期内容 : ReceiverTracker的架构设计 消息循环系统 ReceiverTracker具体实现 一. ReceiverTracker的架构设计 1. ReceiverTracker可以以 ...

  10. Nginx技术研究系列7-Azure环境中Nginx高可用性和部署架构设计

    前几篇文章介绍了Nginx的应用.动态路由.配置.在实际生产环境部署时,我们需要同时考虑Nginx的高可用性和部署架构. Nginx自身不支持集群以保证自身的高可用性,商业版本的Nginx+推荐: T ...

随机推荐

  1. P2602 [ZJOI2010] 数字计数:数位DP

    https://www.luogu.com.cn/problem/P2602 // #include <iostream> // #include <iomanip> // # ...

  2. 之字形打印二叉树—Java

    给定一颗二叉树,逐层打印,并且每层打印的方向是不一样的,比如: 逐层打印的结果是:1 3 2 4 5 6 8 7 代码: import java.util.ArrayList; import java ...

  3. 介绍几款WPF应用的UI库

    在WPF中对于前端页面的书写,我们有现成的UI类库,不需要我们自己再去写 我这里介绍几款 1.MahApps 官网 https://mahapps.com/ 使用,在App.xaml中添加 <A ...

  4. 【Nginx】如何使用自签CA配置HTTPS加密反向代理访问?看了这篇我会了!!

    写在前面 随着互联网的发展,很多公司和个人越来越重视网络的安全性,越来越多的公司采用HTTPS协议来代替了HTTP协议.为何说HTTPS协议比HTTP协议安全呢?小伙伴们自行百度吧!我就不说了.今天, ...

  5. AXI-自定义IP-PS设计

    基于AXI4的自定义IP核的设计 1.实验目标 利用vivado中内置的AXI总线初始化的IP核设计工具,将自己设计的流水灯的PL代码打包成IP核外设,挂在PS上,通过PS上的按钮控制流水灯的开始和结 ...

  6. KingbaseES 对象重命名需要注意的事项

    前言: Oracle 对视图或同义词依赖的底层对象表,如果被重命名,则视图或同义词失效.Oracle DBA 经常利用这个特点,对表进行重建,在重建过程中,无法通过视图或同义词访问,这就保证了数据的安 ...

  7. FR常用正则表达式

    禁止输入中文字符 ^[^\u4e00-\u9fa5]{0,}$

  8. 哈希表(HashTable)

    哈希表 哈希表:也叫做散列表.是根据关键字和值(Key-Value)直接进行访问的数据结构.也就是说,它通过关键字 key 和一个映射函数 Hash(key) 计算出对应的值 value,然后把键值对 ...

  9. 【WCH以太网接口系列芯片】STM32+CH390+Lwip协议栈简单应用测试

    本篇文章基于STM32F103和CH390H芯片进行例程移植及相关注意事项,简单验证TCP\UDP\Ping基础功能. 硬件:STM32F103开发板+沁恒CH390H的评估版图一示,SPI使用接口为 ...

  10. Git 版本控制系统的完整指南

    什么是 Git? Git 是一个流行的版本控制系统.它是由 Linus Torvalds 于 2005 年创建的,自那时以来由 Junio Hamano 维护. 它用于: 跟踪代码更改 跟踪谁做出了更 ...