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数据仓库产品,它不仅具有灵活性(即买即用)、高安全性、扩展性和弹性等特点,而且支持多租户、事务、标准SQL语法和半结构化、非结构化数据。Snowflake在2015年开始上线使用,如今发展成支持每天运行数百万条查询的PB级云原生数据仓库。
图 1 整体架构图
整体架构
图1展示了Snowflake的整体架构。Snowflake设计的终目的是为用户提供高易用性、高可操作性,以及高可靠性,基于这样的前提,Snowflake的内核组件的设计都具有高可靠、高可扩展的特性。组件是互相独立的,组件之间通过RESTful接口进行通信。Snowflake内核组件从底向上可以分为三个层面:
1)数据存储。Snowflake的数据存储是构建在Amazon S3存储服务至上,主要用来存储表数据和查询结果。
2)虚拟仓库。虚拟仓库构建在Amazon EC2虚拟机组成的弹性集群之上,负责执行用户的查询请求。
3)云服务组件。云服务组件是Snowflake的大脑,它包括并发访问控制、基础设施管理、优化器、事务管理、安全管理、元数据管理,其中元数据包含schema信息、表信息、权限认证信息、秘钥、统计信息等。
本篇文章为开胃菜,先从Snowflake架构设计切入,有个总体的了解。接下来会陆续推出几篇系列文章,讲解包括Snowflake重要的云原生技术及其它的创新之处,云服务组件,面向云的各自特性。
相关文章