Snowflake & Delta Lake两大新型数仓对比分析

Snowflake & Delta Lake 代表了当前业内最先进的两种数仓形态,并且都得到了市场上用户的高度认可。

1

概述

数据分析从上世纪 80 年代兴起以来,大体经历了企业数仓(EDW)、数据湖(Data Lake)、以及现在的云原生数仓、湖仓一体等过程。企业数仓是数据仓库最原始的版本,从当前的视角来看,存在着只能处理结构化数据、集中式的存储和计算、以及成本昂贵等缺点。数据湖是伴随着数据爆炸式增长而出现的技术,它能够存储结构化以及非结构化的数据、拥有分布式的存储、以及经济的成本。但由于其“不管后面用不用,先存储起来”的理念,在数据治理、质量审核方面有很多的缺失,因此在后续实际的使用当中会面临较多的问题。以 Snowflake 和 Delta Lake 为代表的新兴数仓就是有针对性的去解决上述问题,并充分利用当前卓越技术(如云计算、Hadoop、Spark 等)的新一代企业数据解决方案。

总体来看,Snowflake 像是企业数仓(EDW)的 2.0 版本。Delta Lake 则是 Data Lake 的 2.0 版本。

两个阵营都在争相成为一站式服务,来处理用户的任何数据,以及应对任何场景。

Snowflake 2019 提出 Data Ocean - 支持结构化、半结构化数据,并提供弹性扩展,存储便宜、计算按需付费,事务支持,托管服务功能。19 Q3提供数据复制功能,使 Snowflake 客户能够复制数据库,并使数据库在不同区域和/或云提供商的多个帐户之间保持同步。这样可以确保在区域性或云提供商中断的情况下业务连续性。它还允许客户想要迁移到其他区域或云时所需的可移植性。另一个好处是能够轻松安全地在区域和云之间共享数据。扩展全球数据湖的覆盖范围,从而将数据湖变成数据海洋。

Databricks 2020 基于 Delta Lake 提出 Data Lakehouse 概念。数据湖 1.0 版本虽然适用于存储数据,但缺少一些关键功能:它们不支持事务,它们不强制执行数据质量,并且缺乏一致性/隔离性,几乎不可能混合添加和读取以及批处理和流式作业。由于这些原因,数据湖的许多承诺尚未实现,并且在许多情况下导致失去数据仓库的许多好处。Data Lakehouse 提供事务支持,强制的模式要求及健壮的治理和审核机制,除了提供对 BI 分析的支持,Data Lakehouse 还支持存算分离,数据格式开放性,非结构化到结构化数据类型全支持,以及支持机器学习、科学计算及 AI 等工作负载,并提供端到端流等功能。

下面对 Snowflake 和 Delta Lake 分别做一个详细介绍。

2

Snowflake 介绍

Snowflake 是完全建立在云上的企业级数据仓库解决方案。Snowflake 是云原生的因为它针对并基于云环境进行了根本性的重新设计,处理引擎和其他大部分组件都是从新开始开发的。Snowflake 在亚马逊及其他云上提供即付即用的服务。用户只需将数据导入云,就可以立即利用他们熟悉的工具和界面进行管理和查询。从 2012 年底,Snowflake 开始计划实施,到 2015 年 6 月,Snowflake 已经可以大体可用。目前,Snowflake 已经被越来越多的组织采用,每天管理者几百上千万次的查询以及 PB 级以上的数据。

Snowflake 的关键特点如下:

* 纯粹的 SaaS 服务体验:用户不需要购买机器、聘请数据库管理员或安装软件。用户要么已经在云中拥有数据,要么上传数据。然后,就可以使用 Snowflake 的图形界面或 ODBC 等标准化接口立即操作和查询数据。与其他数据库即服务(DBaaS)产品不同,Snowflake 的服务覆盖了整个用户体验。用户无需调优,无需物理设计,无需存储整理任务。

* 关系型语法兼容:Snowflake 对 ANSI SQL 和 ACID 事务提供了全面的支持。大多数用户几乎不需要更改就可以迁移现有工作负载。

* 半结构化数据支持:自动模式发现(schema)及列式存储等功能使得 Snowflake 可以像普通关系数据一样处理无 schema、半结构化的数据,并没有额外开销。

* 弹性

* 高可用

* 数据持久性

* 经济:以上都是云原生所带来的好处。

* 安全:Snowflake 中所有的数据包括临时文件及网络传输都是端到端加密的,没有任何信息会暴露。并且基于角色的权限控制使用户能够在 SQL 级别上执行细粒度的访问控制。

3

Snowflake 核心技术

存储和计算分离

Shared-nothing 架构目前已经成为高性能数据仓库的主流体系结构,主要原因有两个:可扩展性和商用廉价硬件。在 Shared-nothing 结构中,每个查询处理器节点都有自己的本地磁盘。表是跨节点水平分区的,每个节点只负责其本地磁盘上的行。这种设计可以很好地扩展星型模式查询,因为将一个小的(广播的)维度表与一个大的(分区的)事实表连接起来只需要很少的带宽。而且,由于共享数据结构或硬件资源几乎没有争用,因此不需要昂贵的定制硬件。这种方法是很容易理解的并具有良好优点的软件设计。

不过,纯粹的 Shared-nothing 结构有一个重要的缺点:它将计算资源和存储资源紧密耦合,这在某些场景中会导致问题。

异构工作负载:虽然硬件是同样的,但工作负载通常不是。有些任务需要高 IO,轻计算,有些需要重计算,轻 IO。因此,硬件配置需要在平均利用率较低的情况下进行权衡。

节点关系变化:如果一些节点发生更改,或者是由于节点故障,或者是用户调整系统大小,则大量数据需要重新 shuffle。由于相同的节点同时负责数据 shuffle 和查询,因此会对性能有显著的影响,从而限制了灵活性和可用性。

在线升级:虽然可以通过数据复制、系统节点交替升级等技术减少影响,但总体上还是比较困难。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格赚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值