DataBricks vs. Snowflake——2023 年更好的选择?

如果您最近接触过数据科学,您可能听说过 Snowflake 和 Databricks 以及它们之间的比较。

如果您不确定这些工具到底是什么以及应该使用哪一个,那么您来对地方了。 本文将介绍它们是什么,对它们进行比较,并针对最适合的用例推荐每一种。

什么是数据块?

Databricks 是一个扩展 Apache Spark 的综合数据平台。 它由 Apache Spark 的创建者创建,并被汇丰银行、亚马逊等一些最大的公司使用。

作为一个平台,Databricks 提供了一种与 Apache Spark、Delta Lake 和 MLFlow 一起工作的方法,以帮助客户清理、存储、可视化和使用数据用于机器学习目的。

它是开源软件,但基于云的托管选项可作为订阅服务使用。 与 Snowflake 一样,它遵循 Lakehouse 架构,结合了数据仓库和数据湖的优点。

另请阅读:数据湖与数据仓库:有何区别?

什么是雪花?

Snowflake 是一个基于云的数据仓库系统。 它作为按使用付费的服务运行,您需要为使用的资源付费。

Snowflake 的卖点之一是计算和存储的计费分开。 这意味着需要大量存储但很少计算的公司不必为他们不需要的计算能力付费。

该平台还包括一个定制的 SQL 查询引擎,专为在云上本地运行而设计。 Snowflake 在流行的云提供商之上运行:Google Cloud、Amazon AWS 和 Microsoft Azure。

Snowflake 和 Databricks 之间的相似之处

Databricks 和 Snowflake 都是数据湖屋。 它们结合了数据仓库和数据湖的特性,在数据存储和计算方面提供了两全其美的优势。

它们将存储和计算选项分离,因此可以独立扩展。 您可以使用这两种产品来创建用于报告和分析的仪表板。

Snowflake 和 Databricks 之间的区别

AspectDatabricksSnowflakeArchitectureDatabricks 使用两层架构。 底层是数据平面。 该层的主要职责是存储和处理您的数据。
存储由位于云存储(AWS S3 或 Azure Blob 存储)之上的 Databricks 文件系统层处理。
由 Apache Spark 管理的集群负责处理。 顶层是控制平面层。 该层包含工作区配置文件和 Notebook 命令。Snowflake 的架构可以认为具有三层。 基础层是数据存储层。 这是数据驻留的地方。
查询处理层是中间层。 这一层由“虚拟仓库”组成。 这些虚拟仓库是计算查询的不同计算节点的独立计算集群。
顶层由云服务组成。 这些服务管理和汇集 Snowflake 的其他部分。 它们处理身份验证、基础设施管理、元数据管理和访问控制等功能。可扩展性Databricks 通过在集群上添加更多工作人员同时减少未充分利用的集群上的工作人员,根据负载自动扩展。 这确保了工作负载快速运行。Snowflake 自动扩展或缩减计算资源以执行不同的数据任务,例如加载、集成或分析数据。
虽然无法更改节点大小,但可以轻松将集群的大小调整为最多 128 个节点。
此外,当一个集群不堪重负时,Snowflake 会自动提供额外的计算集群,并平衡两个集群之间的负载。
存储和计算资源独立扩展。安全使用 Databricks,您可以与您的云提供商一起创建一个虚拟私有云来运行您的 Databricks 平台。 这使您可以更好地控制和管理来自您的云提供商的访问。
此外,您可以使用 Databricks 通过网络访问控制来管理对云资源的公共访问。
您还可以创建和管理加密密钥以提高安全性。 对于 API 访问,您可以创建、管理和使用个人访问令牌。Snowflake 提供与 Databricks 类似的安全产品。 这包括通过 IP 过滤器和黑名单管理网络访问、为忘记注销的用户设置空闲会话超时、使用带轮换密钥的强加密 (AES)、对数据和对象的基于角色的访问控制、登录时的多因素身份验证通过联合身份验证进行单点登录。StorageDatabricks 以任何格式存储数据。 Databricks 平台主要侧重于数据处理和应用层。
因此,您的数据可以驻留在任何地方——云端或本地。Snowflake 以半结构化格式存储数据。 对于存储,Snowflake 管理其数据层并将数据存储在 Amazon Web Services 或 Microsoft Azure 中。 IntegrationsDatabricks 集成了最流行的数据采集集成。Snowflake 还集成了这些流行的数据采集集成。 Snowflake 作为较旧的工具,历来为它构建了大多数工具。

  修复电视上的 Netflix 音频不同步

数据块的用例

Databricks 在执行数据科学和机器学习任务(例如预测分析和推荐引擎)时最有用。 因为它是可扩展的并且可以进行微调,所以推荐用于处理更大数据工作负载的企业。 它为处理数据、分析和人工智能提供了一个平台。

雪花的用例

Snowflake 最适合用于商业智能。 这包括使用 SQL 进行数据分析、报告数据以及创建可视化仪表板。 有利于数据转换。 机器学习功能只能通过 Snowpark 等附加工具获得。

最后的话

这两个平台都有自己的优势和不同的功能集。 根据本指南,应该可以更轻松地选择适合您的策略、数据工作负载、容量和需求的平台。 像大多数事情一样,没有正确或错误的答案,只有最适合您的答案。

接下来,查看学习大数据和 Hadoop 的好资源。