[数据仓库] Snowflake 特性和架构 [大数据]

这位是技术销售部的小原。
我将介绍
数据仓库(DWH)“ Snowflake 知名的云端数据仓库包括GCP上的“Google BigQuery”和AWS上的“Amazon Redshift”,但“Snowflake”最近越来越受欢迎。Snowflake
还允许您指定AWS、GCP或Azure平台,并在该基础设施上运行Snowflake服务。
*信息截至2020年9月。
雪花特征
● 所有数据集中在一个来源
Snowflake 提供了一个统一的、可直接查询的数据源,用于高效管理您的所有数据,包括 JSON 和 XML 格式,并提供近乎无限的低成本云存储空间。您还可以通过独特的私有数据交换功能,访问数据并与您的客户和合作伙伴共享数据。
● 完全兼容 SQL / 多集群
支持无限并发用户和查询,在多集群计算资源上实现近乎无限的并发性。直接使用 SQL 查询半结构化数据,完全兼容 ANSI SQL 并提供原生支持,可充分利用您选择的分析和机器学习工具。
● 近乎零维护
无需计划停机即可自动更新,从而免去了系统管理和维护工作。Snowflake 的使用量也可根据秒数自动扩展或缩减,实现全球数据访问和跨云数据同步。
雪花建筑
Snowflake架构的特点是采用三层设计,将存储、计算和云服务分别置于不同的层级。
虽然计算资源和存储资源在物理上是分离的,但它们在逻辑上集成到一个统一的数据平台系统中,从而实现了无中断的扩展。
● 服务:
由运行在多个可用区中的无状态计算资源组成,
为全局状态管理提供高可用性分布式元数据存储,从而支持数据修剪、数据交换和跨云数据复制等服务。
服务层提供安全性和加密密钥管理,支持所有 SQL、DML 和 DDL 功能,包括:
用户会话的
身份验证和管理;
强制执行安全功能;执行
查询编译和优化;
协调所有事务
例如,为了执行数据修剪,服务层会编译查询元数据,以确定需要扫描哪些微分区才能快速完成查询
,从而提高性能,因为只扫描完成查询所需的数据。
此外,自动化元数据处理由一个独立的集成子系统执行,该子系统收集统计信息并执行其他元数据操作,而无需用户计算资源。
● 计算:
计算层是 Snowflake 的骨干:它是一个计算引擎,旨在快速高效地处理大量数据,执行所有数据处理。
根据 Snowflake 的数据修剪算法,从存储层检索满足查询所需的最小数据。
Snowflake 独特的多计算引擎可以同时处理相同的数据,实现系统范围内的事务一致性和完全的 ACID 合规性,
从而确保工作负载隔离,并确保读取操作 (SELECT) 始终看到一致的数据
(写入操作永远不会阻塞读取器)
在本地缓存数据和查询结果,显著提高性能并降低成本
(缓存的查询结果不收取计算费用)
● 存储:
存储层在处理数据时执行以下操作:
将数据分割成微分区,每个数据文件创建数十万个分区
。提取元数据(例如时间戳和最小值/最大值)以实现高效的查询处理。
压缩微分区以
节省存储空间成本。使用安全的密钥层级结构对数据进行完全加密。
概括
Snowflake 是一项假定使用云平台基础设施的服务,
由于 AWS、GCP 和 Azure 都已经拥有自己的数据仓库服务,因此存在一定的竞争。但
由于 Snowflake 是一项专门针对其数据云的服务,因此根据具体用途,尝试使用它可能会很有趣。
2