Snowflake 高级分析中的数据归档解决方案

2025年7月31日 | 阅读 14 分钟

维护的简单性无疑是 Snowflake 客户的卖点之一。除了许多其他引人注目且入门门槛低的功能外,您可以在几分钟内启动您的 Snowflake 实例,使用信用卡付费,并且永远不必担心自动扩展。

然而,即使有这样的简单性,也存在需要遵循特定方法的场合。需要考虑超出 OOTB(开箱即用)功能之外的选项的一个绝佳例子是数据归档策略。主要是为了满足合规性标准。

Data Archiving Solutions in Snowflake Advanced Analytics

归档数据

数据归档是将不经常使用的数据移动到数据仓库(或任何数据应用程序)中低成本、低性能的存储中的过程。这保证了两件事:

  • 通过减少存储在数据仓库中的数据量来提高查询性能。
  • 在“业务窗口”结束后,保留信息直到“合规窗口”结束。

归档数据不等于备份数据

根据公司的需求,数据可以在不同的阶段进行归档。数据归档过程通常包括三个阶段:

热(HOT):您的数据尚未在此处归档。它具有出色的性能和查询时间,并且易于访问。由于这是您的公司数据,因此每字节的成本最高,应该如此。这是实际存储在您的表中并被下游应用程序(如报告、BI、数据科学等)使用的数据。

温(WARM):企业可能不会常规查询超过预定截止日期(例如一年)的数据。但是,为了保证合规性和以防万一的需求,它必须保留。

这就是所谓的温存储。不太冷,但也不太热。为了使其业务可用,很容易将其移至热区域。通常,这些是表或已卸载数据的压缩副本,存储在 S3(或其他对象存储)上。

冷(COLD):在离开业务需求后,数据已进入合规和安全窗口。在此情况下,成本是一个关键考虑因素;因此,所选择的存储机制不必具有最佳的查询性能。从技术上讲,当合规团队请求时,可以将这些数据转移到温存储,然后转移到热存储进行查询。

当我们制定归档策略时,有几个激励因素可以帮助我们选择行动方案。

Data Archiving Solutions in Snowflake Advanced Analytics

因素 1:性能和成本

如果处理得当,Snowflake 可以相当便宜。因此,在实施复杂的归档计划之前,如果成本控制和性能是主要驱动力,您可以考虑以下解决方案:

Snowflake 提供聚类键和微分区来保证最佳的查询剪枝。如果您的查询性能不佳,检查和优化聚类键是明智的。请注意,如果存储成本是一个问题,Snowflake 会压缩所有表和时间旅行数据(可减少 5 倍)。

因此,Snowflake 仅需要存储 10 TB 数据中的 2 TB。如果这仍然是一个问题,那么从按需计划切换到 Snowflake 容量计划将是明智的。存储成本可以节省 40% 以上!

因素 2:数据在温存储或冷存储之后仍可能被查询的可能性

用户是否会希望查询已归档的数据?

因素 3:第三个因素是您的数据库架构层是否为Snowflake。(初始、已验证、报告等)

在分层架构中,是否需要为每个层设计不同的模式?

因素 4:归档计划是否符合所有适用的合规性规则?

如果您的归档计划不符合您遵守的法规,那么就没有意义了。归档是一项任务,如果只完成一部分,就相当于完全没有完成。在制定计划之前,请与您的 IT 人员核实合规性要求。

因素 5:公司是否准备购买和投资更便宜的存储设备?

使用 Snowflake 进行归档非常简单。这里有一些精彩的讨论和文章,展示了如何做到这一点。您的主要云提供商可能有不同的工具,但方法是通用的。

Data Archiving Solutions in Snowflake Advanced Analytics

重要概念与架构

Snowflake 的数据云由一个高级数据平台提供支持,该平台作为一种自助管理服务。与传统选项相比,Snowflake 能够提供更快、更友好、更灵活的数据处理、存储和分析解决方案。

Snowflake 数据平台的基础既不是数据库技术,也不是 Hadoop 等“大数据”软件平台。相反,Snowflake 融合了一种为云原生构建的全新架构和一个全新的 SQL 查询引擎。除了许多更具体的功能和独特能力外,Snowflake 还为用户提供了企业级分析数据库的所有功能。

数据平台作为自助管理服务

Snowflake 是一种自助管理服务,无需进行硬件选择、安装、配置或管理(虚拟和物理)。几乎没有软件需要安装、配置或管理。Snowflake 负责持续的维护、管理、更新和调整。Snowflake 完全在云基础设施上运行。所有 Snowflake 服务组件(可选的命令行客户端、驱动程序和连接器除外)都托管在公共云基础设施中。

Snowflake 的计算需求由虚拟计算实例满足,数据通过存储服务持久存储。Snowflake 无法在私有云基础设施(本地或托管)上运行。Snowflake 不是用户可安装的打包软件解决方案。Snowflake 负责软件安装和更新的所有方面。

Snowflake 架构

Snowflake 的架构结合了标准的共享磁盘和无共享数据库技术。Snowflake 像共享磁盘系统一样,为持久化数据提供了一个中央数据存储库,该存储库可从平台的所有计算节点访问。

然而,与无共享架构一样,Snowflake 使用 MPP(大规模并行处理)计算集群来执行查询,在这些集群中,每个节点在本地维护完整数据集的一个子集。这种技术在提供共享磁盘设计的简单数据管理的同时,保留了无共享架构的速度和横向扩展优势。

Snowflake 的独特架构包括三个关键层:

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

数据库存储

当数据导入 Snowflake 时,它会被重新组织成内部优化、压缩的列式格式。Snowflake 将优化后的数据保留在云端。Snowflake 的数据对象对消费者不可直接查看或访问;它们只能通过 Snowflake 支持的 SQL 查询操作进行访问。

云服务

云服务层是一组帮助 Snowflake 协调其操作的服务。云服务层还使用 Snowflake 从云提供商那里配置的计算实例。

连接到 Snowflake。

  • Snowflake 支持多种连接到该服务的方法:
  • 一个基于 Web 的用户界面,提供对所有 Snowflake 管理和使用选项的访问。
  • 命令行客户端(如 SnowSQL)可以访问 Snowflake 管理和使用的所有部分。
  • 原生连接器(如 Python 和 Spark)可用于创建连接到 Snowflake 的应用程序。
Data Archiving Solutions in Snowflake Advanced Analytics

Snowflake 提供了多种高效的数据归档方法,确保您的数据可访问并符合保留规定。以下是一些在 Snowflake 中存储数据的常用方法:

1. 时间旅行和故障安全

时间旅行: Snowflake 的时间旅行功能允许您在特定保留期内(对于企业账户最多 90 天)访问历史数据。您可以恢复或还原错误删除或修改的数据,这对于短期归档非常理想。

故障安全:在时间旅行期之后,数据会进入“故障安全”状态,再额外保留七天,在此期间 Snowflake 会保留数据以进行灾难恢复,但无法直接访问。如有必要,Snowflake 的支持团队可以协助恢复。

2. 数据保留策略和分区

按日期或其他相关列对表进行分区,可以轻松归档旧分区,并在主存储中仅保留最近的数据。

3. 使用 Stage 进行数据分层

使用 Snowflake 的内部 Stage 进行半永久存储。但是,对于低成本、长期存储,最好将数据卸载到云存储(Amazon S3、Azure Blob 或 Google Cloud Storage),并构建外部表以根据需要进行访问。

4. 数据卸载到冷存储

Snowflake 与 AWS Glacier 等云冷存储系统无缝集成。虽然您无法直接从这些存储层查询,但它们适用于必须为了合规性而保留的很少访问的数据。

5. 用于归档的存储过程和自动化

创建存储过程,根据指定策略自动将旧数据传输到外部存储并定期归档数据。您还可以使用 Snowflake 的任务调度在特定时间表上运行这些函数。

6. 归档设计的 Schema

为归档表创建一个单独的 Schema。为了成功管理数据生命周期,请定期将历史数据从主 Schema 迁移到归档 Schema。

这些选项中的每一个都可以根据您组织的 data access 需求、预算限制和监管要求进行调整。例如,将外部表与时间旅行结合用于长期归档和保留最近数据,可以有效地平衡成本和可访问性。

Data Archiving Solutions in Snowflake Advanced Analytics

什么是 Snowflake 数据平台?

Snowflake 数据库

Snowflake 数据集成提供用于批量加载、upsert 和卸载的 Snaps,以及基本的 CRUD(创建、读取、更新和删除)操作。SnapLogic 的智能集成平台使 Snaps 能够轻松地将各种数据源(包括 Teradata、Oracle、MySQL)和应用程序(包括 Salesforce、Workday 和 Anaplan)连接到 Snowflake,无需任何编码。

Snowflake 如何在云环境中管理数据存储和可伸缩性?

Snowflake 通过一种分离计算和存储的新颖架构来管理云环境中的数据存储和可伸缩性。这种分离使 Snowflake 能够提供弹性的可伸缩性和有效的云数据存储管理。以下是 Snowflake 处理数据存储和可伸缩性的方法:

微分区

这些微分区专为速度和并行处理而设计。这种方法通过仅读取必要的微分区来实现高效的查询执行,从而减少数据 I/O 并提高查询性能。

可扩展性

计算扩展:用户可以设置不同大小的虚拟仓库(计算集群),并调整其资源以满足工作负载需求。您可以向上或向下扩展以适应更多的查询或更少的查询,从而确保最佳性能,同时避免过度配置。

零拷贝克隆

Snowflake 允许您创建数据库、Schema 和表的零拷贝克隆。这些克隆不需要额外的存储空间,并且对于开发、测试和为各种用例构建隔离环境等操作非常有用。

Data Archiving Solutions in Snowflake Advanced Analytics

时间旅行和版本控制

Snowflake 包含时间旅行和版本控制工具,允许您查看历史数据并恢复到早期状态,而无需手动备份。这有助于数据管理和恢复。

弹性数据共享

Snowflake 支持弹性数据共享,可以轻松地与外部组织共享数据。数据生产者可以授予对其数据的只读或读写访问权限,而数据使用者可以轻松访问共享数据。

与现有应用程序的良好兼容性。

在许多组织中,数据分析数据科学应用程序已成为焦点,提供支持它们的资源是一项首要任务。此外,AI 和机器学习用例带来了新的需求,而传统平台可能难以高效地满足这些需求。相比之下,数据云从头开始设计,旨在满足即使是最苛刻的数据工作负载的资源需求。

Data Archiving Solutions in Snowflake Advanced Analytics

按需扩展的能力。

高峰需求会导致资源争用问题,将某些用户排除在外,降低生产力,并限制快速高效地获取数据驱动的洞察的能力。Snowflake 的数据云会自动扩展以适应激增,从而在需要时和地点提供这些资源的访问。自动资源扩展使近乎无限数量的用户能够运行并发应用程序,同时保持性能。

完全托管的服务

传统数据架构需要持续的维护,包括软件和硬件升级。Snowflake 数据云是一个完全托管的企业数据解决方案,管理工作量几乎为零。

什么是 Snowflake 数据云?

它有助于普及数据并打破数据孤岛,从而提高企业绩效。Snowflake 构建在 Amazon Web Services、Microsoft Azure 和 Google Cloud 的基础设施之上。无需选择、安装、配置或管理任何硬件或软件,因此它适用于不希望将资源投入到本地服务器的设置、维护和支持中的组织。

Snowflake 在数据仓库中的作用

其架构允许并发用户访问几乎无限的实时存储和计算资源。Snowflake 架构是一种新颖的数据存储和处理方式。

Snowflake 架构由三个层组成,每个层都可以独立扩展:存储、计算和云服务。其架构为海量数据提供了灵活性。

Data Archiving Solutions in Snowflake Advanced Analytics

数据库存储:分离存储和计算资源。Snowflake 分离存储和计算服务,因此存储需求高但 CPU 周期需求低的组织,或反之亦然,不必为强制他们支付两者费用的集成包付费。用户可以根据需要向上或向下扩展,仅为他们使用的资源付费。存储按每 TB/月计费,而计算按秒计费。

数据库存储层存储所有加载到 Snowflake 的数据,包括结构化和半结构化数据。Snowflake 自动处理数据存储的所有方面,包括组织、文件大小、结构、压缩、元数据和统计信息。此存储层独立于计算资源运行。

计算层包括虚拟仓库和可伸缩性

Snowflake 的计算层由执行查询所需的数据处理功能的虚拟仓库组成。每个虚拟仓库(或集群)都可以访问存储层中的所有数据,然后可以独立运行,防止仓库之间共享或竞争计算资源。这允许非中断的自动化扩展,这意味着在执行查询时,可以增加计算资源,而无需重新分发或重新平衡存储层中的数据。

Data Archiving Solutions in Snowflake Advanced Analytics

云服务包括元数据管理、优化和自动化。

最后,Snowflake 云服务层使用 ANSI SQL 来协调整个系统。它消除了手动数据仓库管理和调优的需求。

Snowflake 为您的业务带来的五大显著优势

Snowflake 是为云而设计的,旨在克服许多传统基于硬件的数据仓库中遇到的问题,例如可伸缩性受限、数据转换问题以及由高查询量引起的延迟或故障。以下是 Snowflake 可以帮助企业的五种方式:

1. 出色的性能和速度:由于云是弹性的,如果您需要更快地加载数据或执行大量查询,您可以扩展您的虚拟仓库以利用额外的计算资源。之后,您可以减小虚拟仓库的规模,只为使用的时间付费。

2. 灵活的存储:支持结构化和半结构化数据。您可以将结构化和半结构化数据合并进行分析,并直接加载到云数据库中,而无需先将其转换为固定的关系模式。Snowflake 会自动优化数据存储和查询。

3. 多集群架构:提高实时数据应用程序的并发性和可访问性。当大量用户或用例的典型数据仓库中过多的查询竞争资源时,可能会出现并发问题(如延迟或故障)。

Snowflake 独特的 M u l t i-cluster 架构解决了并发问题:一个虚拟仓库的查询不会影响另一个仓库的查询,并且每个虚拟仓库都可以根据需要进行扩展和缩减。

4. 简化的数据共享和整个生态系统的集成:Snowflake 的架构促进了 Snowflake 数据云用户之间的数据交换。它还允许组织通过从用户界面直接创建读取器帐户,与任何数据使用者(无论他们是否是 Snowflake 客户)即时共享数据。此功能使提供商能够为使用者设置和管理 Snowflake 帐户。

5. 基于云的安全性和高可用性:Snowflake 分布在平台的可访问区域(AWS、Google Cloud 或 Azure)中,旨在持续运行,同时容忍组件和网络故障,对用户的影响最小。

Data Archiving Solutions in Snowflake Advanced Analytics

利用 Snowflake 数据云进行数据科学和工程

  • 它易于使用,并在多种方面为普通用户提供帮助:
  • Snowflake 提供 Python、Java 等语言的 SQL 和 API 支持。
  • Snowflake 支持 Python、Java 等计算机语言的 SQL 和 API。
  • 它具有适应性,可以与主要应用程序和系统通信,从而促进跨不同行业的data management。
  • Snowflake 一直致力于变得更具包容性和对更广泛受众更有价值,最近推出了一项名为 Snowpark 的新开发者体验。

使用 Snowpark 进行机器学习和高级分析

Snowpark 是一种开发者体验,允许您使用您选择的语言编写代码并在 Snowflake 上直接执行。它提供了 Python、Scala 和 Java 的接口,以补充 Snowflake 原始的 SQL 接口,并使更广泛的开发人员能够构建他们所需的应用程序和解决方案。

Snowpark 被广泛认为是将 SQL 的强大功能与 Python 的灵活性相结合的机器学习和数据科学框架;它可以用于训练机器学习模型。

Data Archiving Solutions in Snowflake Advanced Analytics

Snowflake 提供了一个由 Snowflake 数据共享驱动的 Snowflake Marketplace,使组织能够大规模安全地提供、发现、使用和共享实时、受控的数据和数据服务,同时避免了传统市场的成本和延迟。

数据可以在内部和外部的业务部门、部门、合作伙伴和客户之间共享。Snowflake 用户可以访问来自 Zillow、Weather Source、Epsilon、FactSet 和 Safegraph 等大型 SaaS 提供商的数据集。

使用 Stitch 将您的数据生态系统连接到 Snowflake

Stitch 是一个简单但有效的 ETL 解决方案,专为开发人员设计。它通过连接到您的第一方数据源并将数据复制到您的数据存储库中,简化了将您的数据生态系统集成到 Snowflake 的过程。使用 Stitch 提取和加载数据可以简化迁移,并且用户可以在 Snowflake 中存储的数据上执行转换。

1. 实施数据保留策略以实现合规性

数据保留合规性:Snowflake 的灵活保留功能在法规严格的地区(如医疗保健和银行业)非常有用。通过自动化保留和删除,您可以确保遵守 GDPR、HIPAA 和 CCPA 等法规,这些法规通常要求特定的保留和删除时间范围。

策略定义和自动化:使用 SQL 和存储过程,您可以定义 Snowflake 中数据保留的期限。

使用任务调度和 Snowflake 任务,您可以自动化保留策略,以归档或删除已超过法规限制的数据。

Data Archiving Solutions in Snowflake Advanced Analytics

2. 通过版本控制进行数据生命周期管理。

版本化数据管理

使用时间旅行和故障安全来管理历史数据版本,这对于审计日志、回滚功能和版本化快照非常有用。

使用零拷贝克隆为每个更新周期实现快照,以跟踪数据更改,同时降低存储成本。

克隆允许您通过在重大更新或转换之前捕获快照来构建数据的增量版本,从而提供详细的历史记录。

Data Archiving Solutions in Snowflake Advanced Analytics

3. 共享存档数据

Snowflake 的安全数据共享功能支持非物理数据传输,这使其非常适合与合作伙伴或第三方共享存档数据。

4. 提高存档工作流的数据加载性能

Snowpipe 自动执行外部存储源的渐进式加载。Snowpipe 会识别 S3 或其他云存储站点中的新数据,并将其馈送到 Snowflake。

示例工作流程:将数据卸载到 S3 后,根据需要使用 Snowpipe 重新加载和重新归档这些数据的部分。

批量加载优化:Snowflake 与批量数据加载配合良好。与单独加载每条记录相比,批量数据以更大的分组加载,以提高性能,特别是对于数据量大的归档活动。

5. 改进的存储优化技术。

通过键列(例如,时间戳)进行聚类和分区可以提高最近数据的查询性能,并允许对旧数据进行剪枝以节省存储空间。

对于外部数据归档,请考虑使用带压缩的列式格式,如 Parquet 或 ORC。这些格式可以大大降低存储成本,同时提高访问存档数据时的查询效率。

6. 自动化归档流程的最佳实践

自动化归档管道

使用 Snowflake 的 Tasks 和 Streams 计划归档工作流。可以安排 Tasks 定期运行(例如,在每个月末),以自动将旧数据卸载到外部存储。

结论

最后,我们可以得出结论,Snowflake 提供了强大而多样化的数据归档解决方案,可帮助组织有效地管理历史数据,同时最大限度地降低存储成本并确保合规性。Snowflake 的功能,如时间旅行、故障安全、零拷贝克隆和外部表,使您能够创建快照并恢复和管理数据,而无需重复。分层存储和外部存储集成通过卸载不经常访问的数据来节省成本,而分区和剪枝算法可确保数据得到有效归档并在需要时可访问。


下一主题