Snowflake 数据仓库即服务

2025 年 8 月 1 日 | 阅读 8 分钟

什么是数据仓库?

数据仓库(DW)是指用于分析而非事务处理的关系型数据库。它从一个或多个来源收集和编译信息。它充当公司运营系统中收集的全部或部分数据集的联合存储库。

数据库与数据仓库

为了提供广泛的访问和分析,数据仓库侧重于从各种来源收集信息。它们擅长数据聚合,并能更全面地了解组织随时间推移的数据。数据仓库可以存储大量历史数据,并且能够快速、复杂地查询这些数据。标准运营数据库主要关注事务处理功能,例如为正在进行的业务流程提供实时数据更新。

数据仓库的用途是什么?

数据存储服务于两大功能。首先,它充当历史存储库,用于整合公司所需的数据和信息,这些数据和信息可能来自多个来源。其次,它通过充当查询执行和处理的引擎,促进最终用户与数据库中包含的数据进行交互。

Snowflake Data Warehousing as a Service

在不暂时暂停数据库更新过程的情况下执行复杂查询是非常困难的。在经常中断的事务处理数据库中,数据错误和缺失是不可避免的。因此,数据仓库充当一个独立的平台,用于整合来自多个来源的信息并在这些不同来源上进行分析。

Snowflake Data Warehousing as a Service

此外,它还可以让企业轻松地共享数据,而无需通过 ETL 或其他方法移动数据。更先进的云数据仓库可以轻松地将结构化和半结构化数据(如 JSON)提取并聚合到统一的关系型 SQL 视图中。

构成数据仓库的元素

数据仓库通常包括来自运营和事务处理系统(如 ERP、CRM、财务应用程序、物联网设备以及移动和互联网平台)的数据源。

  • 用于清理和聚合数据的存储位置
  • 用于分析(查询、报告和共享)数据的存储,位于演示/访问区域。
  • BI 软件、提取和 ETL 技术以及其他数据工具连接器或 API。
  • 许多平台(无论是否基于云)都采用过时的“无共享”架构。
  • 此架构将存储、计算和数据库服务紧密结合,极大地限制了数据库管理员根据存储或分析更多数据的需求或服务更多并发用户的需求来弹性扩展数据库的能力。

数据仓库还可以提供去中心化的数据集市,其中一部分可供特定业务部门的分析需求使用。

数据湖与数据仓库

尽管它们都是用于海量数据存储的常用术语,但它们并不等同。数据湖是指以高度灵活的方式存储的大量非结构化、半结构化和结构化数据的集合,以便将来使用。数据仓库是指存储已经过处理以供特定应用程序使用的经过组织、过滤的数据的位置。

Snowflake:数据仓库的替代设计

Snowflake 数据云包含一个从头开始构建的 SQL 数据仓库。与现有数据仓库相比,它具有独特的新颖架构,能够处理数据和分析的所有方面,兼具高性能、高并发、简单性和经济性。

Snowflake 使用的所有计算节点都可以访问核心持久化数据存储。然而,Snowflake 使用 MPP(大规模并行处理)计算集群来处理查询,这与无共享架构类似。在此配置中,每个集群节点在本地存储一部分完整数据集。

Snowflake Data Warehousing as a Service

您可以将 Snowflake 用作数据湖,同时支付云数据存储的费用。Snowflake 数据湖可以以关系结构原生提取和查询多种不同类型的数据,包括 JSON、CSV、表、Parquet、ORC 等,并具有完整的事务 ACID 完整性。

除了弹性的基础设施和数据工程、数据应用开发、数据科学以及 AI 和 ML 应用的集成之外,Snowflake 平台还包括数据湖、数据共享与协作以及数据市场。由于 Snowflake 是一个真正的数据平台即服务,它会自动管理基础设施、优化、数据保护和可用性,因此企业可以专注于使用数据而不是管理数据。

重要概念与架构

Snowflake 的数据云由一个先进的数据平台提供支持,该平台作为一种自助管理服务提供。与传统选项相比,Snowflake 提供了更快、更易用、功能更强大的数据处理、存储和分析解决方案。

数据平台作为独立运行的服务

Snowflake 作为一项完全自助管理的服务,意味着

  • 无需选择、安装、配置或管理虚拟和物理硬件。
  • 几乎无需安装、设置或维护任何软件。
  • Snowflake 负责持续的管理、调整、更新和维护。

Snowflake 的架构

Snowflake 的设计结合了传统的共享磁盘和无共享数据库架构。与共享磁盘系统类似,Snowflake 使用一个中心数据存储库来持久化数据,该存储库可从平台上的每个计算节点访问。然而,Snowflake 使用 MPP(大规模并行处理)计算集群来处理查询,这与无共享架构类似。集群中的每个节点在本地存储一部分完整数据集。这种方法提供了共享磁盘架构的数据管理便捷性,以及无共享设计的效率和横向扩展优势。

Snowflake 的独特架构包含三个主要层

  • 数据库存储
  • 查询处理
  • 云服务

数据库存储

Snowflake 在加载数据后,将其重组为其内部优化、压缩的列式结构。这些优化后的数据通过 Snowflake 存储在云存储中。

Snowflake 控制着此数据的存储的各个方面,包括元数据、统计信息、压缩、文件大小、组织、结构和其他元素。客户只能通过使用 Snowflake 执行的 SQL 查询操作来查看和访问 Snowflake 存储的数据对象。

查询处理

处理层是执行查询的地方。Snowflake 使用“虚拟仓库”来处理查询。每个虚拟仓库由 Snowflake 从云提供商分配的大量计算节点组成的 MPP 计算集群构成。

基于云的服务

由一组协调 Snowflake 内部操作的服务组成的云服务层。从登录到查询调度,这些服务连接 Snowflake 的各个部分以执行用户请求。此外,Snowflake 从云提供商那里配置计算实例来执行云服务层。

此层管理以下服务

  • 验证
  • 基础设施管理
  • 元数据管理
  • 查询解析和优化
  • 访问控制

连接到 Snowflake

有多种方法可以连接到 Snowflake 的服务

一个基于 Web 的用户界面,提供对所有 Snowflake 管理和使用功能的访问。

  • 通过命令行客户端(如 SnowSQL)可以访问管理和使用 Snowflake 的所有方面。
  • ODBC 和 JDBC 驱动程序,其他程序(如 Tableau)可以使用它们连接到 Snowflake。
  • Python 和 Spark 等原生连接器,可用于创建连接到 Snowflake 的应用程序。
  • ETL 工具(如 Informatica)和 BI 工具(如 ThoughtSpot)等应用程序可以使用第三方连接器连接到 Snowflake。

提供 Snowflake 数据仓库的服务

它是一种灵活、可扩展的解决方案,可以随着您的业务发展而发展,并确保您的数据安全、可用,并随时可供报告。Snowflake 就像一个游戏,将复杂的数据领域变成一个令人兴奋的可能性领域。它不仅仅是一个数据仓库。使用 Snowflake,您的潜力是无限的。

Snowflake 数据仓库的关键特性

设计:多集群共享数据架构

Snowflake 采用了一种称为多集群共享数据架构的新颖设计,该设计提供了

共享存储:数据存储在安全的中央云存储层中,消除了数据孤岛,并确保每个人都能访问最新信息。

独立的虚拟仓库:为了便于数据查询,Snowflake 在云中创建临时虚拟仓库(计算集群)。因为这些仓库独立于存储层运行。

Snowflake Data Warehousing as a Service

弹性扩展:通过根据处理需求轻松地向上或向下扩展虚拟仓库,确保最佳性能和经济效益。

大规模并行处理 (MPP):MPP 通过将查询分布到多个虚拟仓库来对大型数据集进行并行处理和加快结果。

可扩展性:Snowflake 架构自然支持可扩展性。独立存储和计算扩展,以适应不断变化的工作负载,而不会影响数据可用性,独立于存储扩展计算资源(虚拟仓库)。

自动扩展:在无需人工干预的情况下,Snowflake 会无缝地调整虚拟仓库的大小以适应工作负载需求,确保资源的最佳利用。

性能

Snowflake 出色的性能通过以下方式实现

MPP 架构:通过将查询分布到多个虚拟仓库中,可以实现更快的执行和并行处理。

列式存储:通过允许查询仅访问相关数据列,列式数据存储可以减少处理时间。

云原生设计:Snowflake 利用云基础设施确保高性能数据处理。

安全性

Snowflake 简化了安全的数据共享和协作

  • 与其他 Snowflake 账户创建安全的数据共享,以便在不影响安全性的情况下访问特定数据集。
  • 在受管共享环境中,细粒度的访问控制确保只有授权用户才能访问共享数据。
  • 云数据共享:Snowflake 通过云基础设施使网站和组织的数据共享更加便捷和安全。

以下是其主要属性和优势列表

Snowflake 云原生架构的突出特点包括

  • 用户可以根据自己的需求独立扩展,因为它将计算和存储分开。

多集群共享数据架构

  • 对于计算采用无共享架构,对于存储采用共享磁盘架构。
  • 自动管理资源分配以实现高并发性能。

协作与数据共享

  • 借助 Snowflake 安全数据共享等功能,可以在账户之间共享数据而无需复制。
  • 用户可以通过 Snowflake Marketplace 获取第三方数据集。

工具与互操作性

  • 轻松与数据科学平台、ETL 解决方案(如 Informatica 和 Matillion)以及 BI 工具(如 Tableau 和 Power BI)集成。

Snowflake 的易用性优势

  • 简化的数据管理、查询和加载。
  • 与传统数据仓库相比,需要更少的管理。
  • 按需付费模式
  • 它具有成本效益,因为费用基于使用量,并且存储和计算有不同的定价。
  • 全球可用性:可在多个地区提供,支持灾难恢复和全球业务连续性。

用例

对半结构化和结构化数据进行商业智能分析。

  • 人工智能和机器学习
    充当预测分析和机器学习算法的单一数据源。
  • 实时数据集成
    为需要最新数据的应用程序处理流数据。
  • 数据协作
    使部门、组织和外部合作伙伴能够安全地共享数据。
  • 法规遵从
    确保遵守行业特定数据标准和法规。

Snowflake 的弹性扩展和计算/存储分离确保了从复杂的 AI/ML 工作流到业务分析的各种用例的成本效益和灵活性。

结论

总之,我们可以得出结论,Snowflake 用户友好的界面、安全的数据共享功能以及与外部工具的无缝集成,使企业能够获得有意义的见解,促进协作,并在日益依赖数据的世界中保持竞争力。由于其按需付费的定价和低维护要求,它成为那些寻求简洁而不牺牲性能的企业的一个受宠的选择。


下一主题