[数据仓库] 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
加载中...
2票,平均分:1.00/12
15,717
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

小原

他的职业生涯始于电信行业,担任销售员,负责实施企业网络服务、办公设备和群件等 IT 产品。

之后,他曾在一家系统集成商旗下的数据中心公司担任物理服务器和托管服务的售前工程师,以及基于 SaaS 的 SFA/CRM 和 B2B 电子商务的客户工程师,之后加入 Beyond 公司,目前仍在 Beyond 工作。

我目前驻扎在中国(深圳),我的日常活动是看中国电视剧和比尔比尔。

资格证书:二级簿记员