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