Snowflake 核心技術解讀系列一 架構設計

語言: CN / TW / HK

背景: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重要的雲原生技術及其它的創新之處,雲服務元件,面向雲的各自特性。

原文連結

本文為阿里雲原創內容,未經允許不得轉載。