随着世界采用多层数据存储方法,组织转换数据的方式也发生了变化。它促使企业将提取、加载和转换 (ELT) 工具与 Medallion 架构集成。这一趋势重塑了跨业务线以及部门用户、数据分析师和 C 级管理人员获取和转换数据的方式。应用严格的数据转换规则并通过数据仓库为您的团队提供数据可能无法完全解决您业务不断发展和探索性的数据问题整合需求。
根据您的组织生成的数据量及其生成速率,在不了解消费模式的情况下处理数据可能会代价高昂。随着每天都会出现更多的临时查询和分析,基于案例的数据转换可能在经济上更加可行。这并不意味着您以原始形式存储数据。相反,有必要添加多层转换、丰富和业务规则来优化成本和性能。
业务需求如何塑造数据库技术
让我们快速了解一下数据管理的演变过程。 我们从云数据仓库开始。传统的数据仓库,例如基于关系数据库系统的数据仓库,多年来一直是企业数据管理的支柱。它们针对结构化数据进行了优化,通常用于商业智能和报告。
然后,我们进入了数据湖时代。 数据湖因处理大量结构化和非结构化数据而变得流行。它们提供数据存储和处理方面的灵活性,使组织能够以其本机格式存储原始和多样化的数据。
现在,我们有了数据湖屋。数据湖屋的概念是为了应对与数据湖相关的一些挑战而出现的,例如数据质量、数据治理以及对交易能力的需求。数据湖屋架构旨在结合数据湖和数据仓库的最佳特性,将数据湖的可扩展性和灵活性与数据仓库的可靠性和性能结合起来。 Delta Lake 和 Apache Iceberg 等技术通过向数据湖添加事务功能和模式实施,为数据湖屋概念的发展做出了贡献。
为了充分利用这种不断发展的架构的潜力,我们建议实施最佳实践,其中之一就是奖章架构。
什么是大奖章架构?
Medallion 架构在数据世界中越来越受欢迎。与传统的数据湖架构不同,传统的数据湖架构存储原始或非结构化数据,没有任何模式实施或强一致性保证,奖章架构为您的数据引入了结构和组织。它允许您向存储在 Delta Lake 中的数据集添加架构演化功能,从而更轻松地有效查询和分析数据。
徽章架构越来越受欢迎的原因之一是它能够以可扩展的方式处理大量不同的数据类型。通过利用 Delta Lake 的事务功能,您可以确保海量数据集操作的原子、一致、独立和持久 (ACID) 合规性.
但是它与传统的数据湖架构有何不同?虽然这两种方法都存储原始或非结构化数据,但奖章架构引入了定义青铜的系统方法数据湖中的 、银层和金层。这使得数据工程师能够为正确的受众提供正确的数据。它还使用户可以更轻松地查询和分析其数据集,而无需牺牲性能或可靠性。
这显示了 SQL ELT(本机)参考架构。
这就是徽章架构在 Delta Lake 和云数据仓库领域蓬勃发展的原因。它为您宝贵的数据集提供了可扩展性、可靠性、性能和结构化存储的强大组合。现在,让我们探讨一下数据处理需要如何随着架构的变化而变化。
为什么 ELT 是 Medallion 架构的正确数据转换流程?
根据定义,Medallion 数据架构有多个层。数据在这些层中移动时会被逐步处理和细化。使用传统的提取、转换、加载 (ETL) 可能效率低下,因为每次转换通常都需要将数据从数据仓库或 Lakehouse 中移出,而这是下一个处理级别所需的。
相反,更有效的方法是使用下推技术,将代码推送到目标/源中,从而允许在其所在的位置进行数据处理。在这种情况下,只有数据转换代码移动,而不是数据本身。 ELT 使您能够根据需要多次转换数据,从而进一步简化此流程,从而提高系统效率。使用 ELT,您可以减轻源系统的负担,因为数据仅被引入数据湖/湖房一次。
ELT 的优化设计提供了多种竞争优势。它使您能够更快地处理大量数据,从而加速洞察和决策。它还通过最大限度地减少网络和系统之间不必要的数据移动来降低运营成本。
在 Medallion 数据架构中运行 ELT 所需的数据集成功能
一些特定的数据集成功能将使您能够在 Medallion 数据架构中成功运行 ELT。其中包括:
- 大规模并行处理:这是一项必备技术,可以在多台机器上同时运行 ELT 代码,从而提高数据作业的性能。像 Spark 这样的处理引擎可以通过扩展到更大的集群并添加更多节点来处理海量数据集。调度程序将任务分配给工作节点,平衡工作负载并最大化资源利用率。
- 数据加载模式:确保该工具不仅仅依赖批量加载,还支持实时流以及完整和增量加载。 变更数据捕获 (CDC) 和架构漂移是传输数据时最常用的功能从源头到数据湖屋。
- 优化每个阶段的数据处理:Medallion 架构是一个用于在数据湖库内逻辑组织数据的系统。 Medallion 架构中的每一层都有不同的用途,并且在应用转换时会考虑安全边界、保留规则、用户访问策略、所需的延迟和业务影响级别。您应该能够在粒度级别处理数据,并针对逻辑数据处理的下一步进行优化。
- 在设计时预览代码:此功能可让您在运行 ELT 代码之前查看其结果,这可以帮助您捕获错误并确保您的代码按照您的预期运行做。
- 多云支持:不要将您的集成能力限制在一个特定的生态系统中。确保您可以在多个云环境中运行数据管道作业,例如 Snowflake、Databricks、Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud。
- 自动调整:这可以让您的 ELT 工具自动调整作业的设置以提高其性能。该工具应支持人工智能,以收集运行时统计数据并根据数据特征调整执行策略。
- 灵活的转换:ELT 工具必须支持灵活的转换逻辑,因为可以使用更广泛的工具和技术(包括 SQL、Python 和 Spark)来执行转换。如果您需要执行 SQL 不支持的复杂转换,这会很有用。
- 将 SQL 代码与专有代码组合:这使您能够在单个 ELT 管道中使用 SQL 代码和专有代码。如果您需要执行 SQL 不支持的任务,这会很有用。例如,您可以使用 SQL 查询数据库并检索数据,然后编写 Python 函数来实施数据质量检查,应用自定义逻辑来识别和解决任何数据问题。
- 端到端工作流程:此功能提供了一个可视化界面,允许您将 ELT 作业作为完整任务流程的一部分进行设计和执行。该工具应该能够调度和编排一组任务,从提取数据到触发下游任务、管理依赖关系以及启用数据可观察性。
- 安全、访问控制和屏蔽功能:这使您可以控制谁有权访问您的数据并屏蔽敏感数据。这对于保护您的数据免遭未经授权的访问非常重要。
- 实施数据运营的能力数据运营:这使您能够将 ETL 流程与 DevOps 流程集成。这可以帮助您提高数据的质量和可靠性。
- 在 ETL 和 ELT 之间轻松切换:这使您可以轻松在 ETL 和 ELT 处理之间切换。如果您需要更改数据处理策略,这会很有用。
- 将数据转换为代码:这使您可以将 ETL 代码存储在存储库中,从而更轻松地管理和版本化您的代码。
- 高级转换:当 ELT 成为您处理数据的主流方式时,您需要确保不必运行不同的工具来进行复杂的转换。
- 数据质量:这使您能够在 ELT 流程的早期发现并解决数据质量问题。这可以帮助您提高数据质量。
- 与数据沿袭和治理集成:此功能允许您跟踪数据的起源和转换。这可以帮助您确保您的数据符合数据治理策略。 ELT 工具应与您的数据沿袭和治理框架无缝集成,以维护数据的可追溯性、一致性和安全性。它应该提供对数据来源、转换和目的地的可见性,从而实现有效的数据审核和数据治理政策的合规性。
后续步骤
选择高性能且与 Medallion 数据架构兼容的 ELT 工具对于您的企业至关重要。这将增强数据集成能力,使您能够充分利用 Medallion 架构的结构化、分层方法。这种一致性将通过有效处理大量数据、提高可扩展性、简化工作流程并实现成本效益,为您的企业带来竞争优势。