[数据仓库] 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 的专用数据云服务仍然值得关注。
3
