每个人都讨厌其管道工具中的数据转换。开发人员如此讨厌ETL工具中的转换,以至于它们提出了一个全新的工具分类 - elt - 完全删除了转换,将其工作到Date Warehouse上的DBT等专业工具。
很容易理解原因。数据管道工具始终使变换难以使用。将其发送到仓库并在那里转换它。它更容易。你只需要知道SQL,那些脚本运行得更快。
好吧......我在这个普遍认为的信仰上呼唤BS。虽然它没有错误,但问题是没有数据流水线工具已经很好地实现了数据变换。
Rudderstack转换易于构建,调试和管理;他们实时运行。他们是像你认为应该一样的数据转换。
您曾经使用过的每个数据流水线工具中数据转换的问题
当您转换数据时,总始终存在一些技术复杂程度。它几乎总是需要编程知识来构建管道工具中的数据转换。然而,这些工具似乎似乎对使用它们的数据工程师似乎有一定程度的蔑视,这就是事情变得复杂的地方。
此时,大多数这些工具都支持重用数据转换,这很好,但重用是最小的。
我可以重用这种转变吗?是的。伟大的,我可以在这种其他转变中重用它来执行更复杂的转换吗???
数据流水线工具不支持常见的软件工程概念,如模块化。这使得数据工程师的工作更加复杂。您最终必须从一个转换复制和粘贴到另一个转换的代码,以将现有功能复制为新但不同的转换的一部分。然后你必须手动保持它。
难以将建筑转换整合到您的工程过程中。转换的代码生存在数据流水线工具中,而且在此时可能会在此时版本的版本,只有几个工具都有Git集成。更罕见的是具有API的数据流水线工具,可让您构建和管理您的转换以及所有首选的流程和工具。
调试数据转换也是一个噩梦。在代码上有调试器很棒,大多数此时都是这样做的,但这是赤裸的最小。
数据流水线工具已经提出的解决方案是......没有。通过它运行数据,看看另一边出现了什么。有些人有一个数据调试器,但您仍然必须通过它运行数据。
在时间历史上没有人想过这项测试的生产测试是一个好主意(或者,如果他们这样做,他们后悔了)。所以你会怎么做?构建测试环境......为您的ETL工具?
管道工具中的数据转换始终批量运行。这是它们是它们是-ETL工具的一部分的工具的工件 - 这是批量运行作业并在作业运行时应用转换。
传统ETL工具的刻板印象是您必须等到明天早上或下周获得更新的数据。这些等待期间是每个批处理运行的频率,而且它们不像过去那样差的任何地方。大多数主要ETL工具可配置,并将其修整至最短的时间为5分钟左右。
这很好,但标准不是5分钟 - 这是最好和最昂贵的选择 - 5分钟并不接近实时。在实时交付时,您要集成和转换在运输中的许多数据更有价值。
在将数据发送到目的地之前,您希望转换数据有很好的原因
鉴于缺陷,Elt的口头禅似乎是一个与之对齐的普通人。您的数据流水线用于提取和加载数据。使用特定的数据转换工具在仓库中转换数据。它更好。
Elt在数据管道中不再承担了不正确的东西。 elt假设目的地是数据仓库。因此,如果您在加载前不应用转换,则没有Biggie。以后申请。它没有真正的区别。
现代数据堆栈比其更复杂。您想将数据发送到仓库,但您还有20个您想要发送的其他工具。他们每个人都有自己的转型需求,并且在事实之后施加变换通常不会逼真或可能。
虽然您应该在仓库中进行大多数建模和繁重的转型,但与DBT这样的工具,在运输过程中仍然至关重要,以解决现代公司面临的问题。
一个经典用例,在传输转换中受益在发送到仓库之前过滤和实施数据质量。执行此转换的转换意味着仓库中的数据总是准备好分析。如果在休息状态下,您的分析准备数据的保真度只能与变换运行一样经常。
另一个,更多的现代用例,从过境转换中受益是屏蔽或去除PII和敏感数据。如果这种数据从未加载任何地方,则更好,包括您的仓库。虽然您可以在将数据加载到仓库后屏蔽/删除PII时,您可能无法在加载到其他20个目的地工具之后。您需要传输转换以支持这一非常常见的用例。
当您介绍ETL和Elt管道的批量世界,进入事件流水线的实时世界时,在达到目的地工具中加载之前转换数据的能力更为关键。
发送实时事件非常有价值,因为您可以通过将此数据发送到使用它来自动执行的工具开始实现基于行为的策略 - 思考通过Customer.IO发送电子邮件或通过钎焊来个性化用户的体验触发应用程序中的操作。这些行为的策略在完成时可以具有非常高的投资回报率。
您无法将原始事件流发送到您使用的每个目标工具。您的数据质量会受到影响。此外,您可能希望丰富您的活动 - 例如从Clearbit或位置数据添加信息。
更重要的是,您无法将事件流中的PII和敏感数据发送到所有目标工具。这是一个数据隐私噩梦。在达到目标工具之前,您应该在屏蔽或删除尽可能多的PII和敏感数据。这是您的客户和您的业务的最安全的方法。对于高度监管行业的企业,事件流的可行性将铰接在此。
Rudderstack转换让您通过RudderStack转换您发送的任何数据,您可以在事件流,仓库操作和云提取管道上使用它们。它们很容易构建,调试和管理;他们实时运行,在数据收集后和送达到目的地之前。他们是像你认为应该一样的数据转换。
Rudderstack变换易于编写和维护。您将它们写在JavaScript中,这是一种常见而易于使用的语言。每次转换都是可重复使用的。所以如果你写一次,你可以随处使用它。变换也是模块化的。您可以将它们保存到组织的转换库并将其作为其他转换的一部分重用,就像软件编程中的库一样(我们甚至包括Rudderstack库中的一些开箱即用的转换库)。
您甚至可以使用更喜欢的所有进程和工具来构建转换,转换API。有了它,您可以以编程方式为平台添加和删除转换,创建一个组织范围的沙箱,在将其团队发布到Live环境,定义库和版本之前,您的团队可以存储转换。
我们不仅给您一个代码调试器,所以您可以确认您的转换将运行,但我们也有一个转换测试。它允许您通过转换发送样本有效载荷,并在曾经将其应用于数据管道之前,请参阅Rudderstack内部的结果。我们提供样本事件流有效载荷可以用于测试转换,但您可以更改有效载荷以复制您将要转换的数据。
Rudderstack改造实时运行。他们不批量。它们在数据收集后和交付到目的地之前应用于过境。因此,除了我们的灯管管道之外,他们还使用我们的活动流和Reverse-Etl管道。
了解有关我们在帖子中添加到转换的所有新功能的更多信息,向RudderStack转换引入新功能:API,库和调试器。
开始使用更智能的客户数据流水线,在数据仓库上构建您的客户数据湖泊。使用所有客户数据。回答更困难的问题。向整个客户数据堆栈发送见解。立即注册Rudderstack云。
加入我们的聊天与我们的团队聊天,查看GitHub上的开源回购,订阅我们的博客,并在社交:推特,LinkedIn,Dev.to,Medie,YouTube上关注我们。不要错过任何更新。今天订阅我们的博客!