1.什么是Snowflake数据云仓库?
Snowflake 是在 Cloud 之上开发的基于云的数据仓库平台。截至目前,亚马逊网络服务 (AWS)微软 Azure 和谷歌云等常见的云供应商都支持 Snowflake。
Snowflake 是一个真正的 SaaS 产品。因为它完全在公共云基础架构上运行,无需安装、配置或维护任何硬件(虚拟或真实)或软件。
Snowflake 提供的数据仓库模型比典型的数据仓库系统更快、更容易设置并且适应性更强。
由于其独特的特性,它迅速成为分析市场数据管理解决方案的佼佼者。
2.Snowflake架构
Snowflake 数据库设计是共享磁盘(shared-disk)和无共享(shared-nothing)数据库系统的组合。 Snowflake 与共享磁盘系统一样,使用中央数据存储来存储数据,并且可以从平台中的所有计算节点访问。
Snowflake 使用 MPP(大规模并行处理)计算集群执行计算,其中集群里的每个节点在本地维护完整数据集的一部分,类似于无共享系统。
这种方法结合了共享磁盘设计的数据管理便利性与无共享架构的速度和横向扩展优势。
Snowflake架构有三层:
1. 存储层
2. 计算层
3. 云服务层
我们来详细讨论下每一层。
2.1 存储层
Snowflake 将数据划分为无数个微分区,每个微分区都在内部进行了优化和压缩。它以列方式存储数据。
数据保存在云中,并使用shared-disk方式进行管理,使数据管理变得简单。在 shared-nothing 架构中,这确保了用户不必担心数据在多个节点上的分布。
为了获取数据以进行查询处理,计算节点链接到存储层。由于存储层是独立的,我们只需为每月平均使用的存储付费。
Snowflake 的存储是弹性的,因为它是在云中提供的,并且根据每 TB 的消耗量按月支付。
存储的定价由云提供商根据每月的存储利用率收取,这意味着存储成本是使用压缩后每月使用的平均存储量确定的。
2.2 计算层
该层由可扩展计算单元的虚拟仓库组成。
计算层从存储层获取数据并将其缓存在本地以增强将来的查询结果,即每个虚拟仓库都有自己的缓存。
多个虚拟仓库可以同时运行,维护ACID,对数据执行多个并发处理。
在 Snowflake 中,可以根据工作负载构建多个虚拟仓库以满足不同的需求。
这些仓库本质上是 MPP(大规模并行处理)。每个虚拟仓库都可以使用一个存储层。
虚拟仓库有自己的计算集群,不与其他虚拟仓库交互,即无共享架构。
该仓库的定价将采用动态方式,即,费用将根据您消耗了多少计算单位来计算,按照学分(Credit)进行计算。
因此,每当数据仓库进行计算时,那时只有计费时钟会运行。以下是不同数据仓库规模的计费计量。
此计费将按每秒使用次数进行。最低收费为一分钟,即一旦数据仓库开始计算,最低收费将从一分钟使用开始计算。例如,如果您只使用 30 秒,则计费时间为一分钟。
2.3 云服务层
该层包含在整个 Snowflake 中协调的所有操作,例如身份验证、安全性、加载数据的元数据管理和查询优化器。
服务层为DDL、DML等数据操作提供SQL客户端接口。这种云服务也可以像其他层一样进行扩展。
此云服务的定价不会直接收取。默认情况下,将为云服务分配一些积分,因为这些服务也需要计算能力才能运行。
当使用率超过每天使用的总计算量的 10% 时,将开始对云服务收费。例如,如果操作计算使用了 100 个积分,而云服务使用了 15 个积分,那么云服务的收费将是 15 - (10% of 100) = 15。
3.什么是学分?
学分是Snowflake中的收费单位。每个学分的金额将根据版本和云提供商计算。你可以在此链接中查看和估算价格。
你可以选择云提供商、地区和货币;你将得到每个学分的估计费用。
4.创建Snowflake账号
Snowflake 提供免费试驾账号;它的使用价值为 400 美元。你可以在下面的链接中创建一个免费试用帐户。
https://signup.snowflake.com/
在注册页面中,输入您的基本详细信息,然后单击继续。
选择 Snowflake 版本、云提供商和区域。确保你已选中许可协议框,然后单击开始。
一封确认邮件将发送到你注册的邮箱。
转到你的电子邮件收件箱,打开来自 Snowflake support的激活邮件,然后单击“点击激活”链接。你将被重定向到新的页面,你可以在其中设置用户名和密码。
设置用户名和密码。单击“开始”继续。
开始后,你将收到确认邮件,说明你的帐户已被激活。单击“登录到Snowflake”链接。
你现在将被重定向到Snowflake WebUI的登录页面。
总结
在本文中,我们了解了 Snowflake 的概念、架构,并开设了一个免费试用帐户,用于 POC 和测试目的。我们还讨论了如何访问 Snowflake WebUl。
在接下来的文章中,我们将看到如何安装 SnowSQL,使用 SnowSQL (CLI) 访问 Snowflake,并将学习各种数据库管理活动。
译者介绍
杨晓娟,51CTO社区编辑,西安电子科技大学计算机专业硕士研究生,资深研发工程师,信息系统项目管理师,拥有近20年Java开发经验。分别在NEC、甲骨文、英方从事数据存储、Oracle数据库的数据迁移以及同构/异构数据库复制等研发工作,尤其在数据库、数据编码等方面有深入钻研和了解。
原文An Introduction To Snowflake Data Warehouse,作者:M.S.M. Sivam