我们如何从AWS胶水迁移到snouflake dbt

今天,我将告诉您我们从AWS胶水驱逐出境 降雪DBT 现代数据。我团队的任务是集中的,并且是多个业务领域的纪录片可靠性保证。我们建立一个分析基础,以支持制定产品和战略团队的决策。作为这项工作的一部分,我们驱逐了28种运营13个数据产品的黄金模型,包括信息板,刻板印象和分析研究。这些模型是启用基于数据的视觉的基石。

初始位置:不断恶化的工作环境

  1. 缺乏文件和治理困难的错误注册和跟踪。同样,没有适当的开发环境:每个变化都是生产的风险,这导致了开发人员的持续压力。
  2. 进行数据传输是在 AWS胶水SQL火花需要长时间准备准备的复杂任务。不可能在开发过程中测试数据质量。
  3. 所有用户在组织中的作用如何都具有相同级别的数据访问。缺乏访问控制使得允许管理不清楚。不可能保证正确的数据的安全性。

欢迎驱逐出境

我们选择了一个结合的故事 DBT 和雪。该解决方案通过DBT提供自定义的环境,数据质量测试和集成文档作为符号。它还允许增强数据治理。 DBT是转换数据,质量,文档和无雪的框架,是基于云的数据仓库。

影响数据工程师的日常工作

作为数据工程师,我们已对所有转换进行了驱逐出境,以使数据操作(例如数据清洁和转换它们)自动化,同时重建信息委员会以及与客户主要是共同的性能指标。

先前的解决方案

每个转换都存储在GIT仓库中,并将其重复作为AWS作为胶水函数。这些Python功能使用了火花环境,并在AWS工作流程中进行了组织。所有数据都存储在AWS胶水数据目录中的奖牌结构内。

要测试每个转换,您可以在生产中运行直接程序,而无需CI/CD。每个开发人员都必须安装jupyter和bernel pyspark粘合笔记本,该笔记本花费了大约40秒钟的准备。这个过程是我们重复并检查数据传输的完成和准确性的唯一方法。我们阻止了CI/CD在扩散生产之前发现错误的缺失。

我们如何从AWS胶水迁移到snouflake dbt
提供先前的数据

新解决方案

使用DBT,我设法将其文档作为符号记录了整个数据结构。它还设法实施了质量测试和单元测试,以检查我们的转换并发现错误。可以通过DBT功率补充来检查数据,模型实施测试以及显示数据比率。所有这些都是在专门的开发环境中 建筑奖章

最后,雪花通过 计费和成本管理 工具,允许消费和成本提高。相比 AWS胶水,这可能会导致由于自动部门而导致高成本,我们预计基础设施成本会下降。

DBT雪花数据结构
雪数据结构和DBT

准备:地图费用和迁移计划

我们开始通过创建雪花和到达环境来驱逐我们。我们建立了DBT仓库,并根据其角色分发了雪花用户的访问权限。

ISO数据库驱逐出境

打破一切并重建它? 🧐如何确保我们没有忘记任何数据表? 😱我们如何使贾斯汀的仪表板仍然可靠?我们如何解释托马斯在5之间范围?

我们 冻结跑步 必须根据奖章的建筑工程进行驱逐和描述的实体,以消除这些风险。我们解决方案的结构由青铜,银和黄金(经典ETL),数据面板和KPI产品组成,可以在 Qlikmetabase。很难包括我们需要移民的一切,但是没有这些,我们无法控制驱逐出境,也无法衡量它。

我们的策略:

  • 驱逐出境 青铜→银 转型
  • 一旦银层可靠,驱逐出境 银→黄金 转型
  • 一旦黄金层变得可靠,迁移 信息面板

为了使每个实体迁移,我们必须捕获当前行为,并使用主要的黄金重新执行策略来验证克隆模型方程的正确性。我们使用数据建模进行了转换:一种极好的文档来源,它帮助我们了解了分析工作的挑战,并使我们能够快速有效地做事。

我们使用 SQL火花 里面 s theback sql DBT中的模型。对于每个模型,我们使用了内部驱逐出境监视的文本。该文本程序允许我们比较被驱逐的数据与源数据。以下文本程序连接到AWS和雪花环境,并比较数据框架!

形式的文本筛选场景的差异

深入研究DBT挑战和解决方案

实际上,他是如何去数据工程师的?转换的驱逐出境非常容易。这是真正的挑战 理解理由 这些模型被驱逐出境后,差异就存在。

我们必须遇到旧模型。该代码理解不足,缺乏文件。一些模型被忽略了,而另一些模型是通过重新定义消费者需求而重建的。

例如,对于主要或不寻常的性能指标,我们已经建立了评估时间表。这些时间表需要全面维修,但是雪花的SQL功能(例如频繁的信息)使工作变得更加容易。

带有雪花的经常日历表的提示 SQL

SQL日历表

开发和产品环境

由于旧体系结构缺乏单独的环境,我们必须为开发和生产创造独特的环境,以确保新功能不会影响生产解决方案。为了实现这一目标,我们通过 隔离环境和受影响实体的控制,例如计划,数据库和仓库。我们为每个奖牌结构和每个环境创建了数据库:银,银,金,金。

使用DBT,我们设定了目标 profiles.yml 构图文件,该文件允许在开发环境中合并而不会影响生产。 CI/CD通过明确针对产品的行为来管理生产环境 – 合并

DBT轮廓

为了继续自动化对数据模型影响的有效性,我们提出了 create_volumetric_report 宏。该宏创建了有关主要数据标准的全面报告,包括表格中的每一列,包括类的数量,类别,区分值和空的百分比。这使我们能够自动验证可能影响跨环境质量的任何更改。

质量和文件测试

驱逐出境,测试和文档:似乎很多,但我们做到了!

我们从没有测试的分析师开始,我们需要发现并遵循异常情况。 DBT文档中 YAML组成文件 以前有助于检测无形错误。我大大提高了数据的质量,并可以增加文档!

为了确保在奖牌结构的银阶段的数据合规性,我们必须进行数据质量测试。这些检查检查健康 独特的价值观和独特性! 为了检查我们的参考和跨性别数据,我们进行了业务和单位测试。

数据质量和文档测试
每种消费者数据表格都与用于测试,使用PII(个人身份信息)及其文档的模板文件相关联。

DBT允许我们通过为每个图标基础开发进行这些测试来控制数据质量。要运行的独特之处是 dbt test。对其他测试进行评估,解决或确定,以确保保持数据质量。

dim_aactors组形式

单位测试
DBT
单元测试使通过加热输入和指导数据并模拟文本程序的行为来隔离SQL软件的行为。

单位测试以验证身份

自定义测试
专业测试使我们能够验证实施的工作规则。它被称为已测试模型的编队文件中的数据质量测试!如果执行下一个代码时未返回等级,则将验证测试。

DBT专用测试

所有分配的测试均以形式组成文件调用。测试 ingredient_is_valid_for_month 它在模型及其列中的构成文件中被调用。下一个 dim_aactors组形式 澄清。对于使用基本测试监测DBT测试的最深入潜水,我建议这篇文章:通过DBT提高数据质量测试以及所探索的主要集成。

我们转换的数据平台

借助雪花和DBT,结果超出了我们的预期。现在,我们可以在15秒内而不是5分钟内开发和测试模型,而不会影响产品!通过475个数据质量测试,我们增加了数据误差识别的五倍! 🍾

过渡以DBT的标准和可重复使用的方式组织,使开发人员能够获得准确的文档并清楚地了解每个数据形式。 🎉现在,我们知道其余的:设定优先级,录制和解决错误。

我们从驱逐出境中学到了什么

准备合作开发环境需要创建专门针对每个开发人员的特定角色和数据库。这些修正案对于确保平稳驱逐出境并避免冲突是必要的。

如果我们必须再次这样做? 为时已晚,我们将通过为开发人员创建一个总角色并设置其雪花数据库的每个开发人员来加强角色的管理。 😱

我们了解到,成功的转换不仅仅是传输数据。这是重新思考实践,改善团队合作和加强的机会 裁决。如果您正在考虑类似的迁移, 从详细的股票开始记录每个步骤,并与消费者重复以保持对他们需求的理解! 👫

您想了解更多还是利用我们在驱逐出境项目中的专业知识?今天打电话给我们!



Source link

Similar Posts