数据管道:工具、架构和其他解释
数据管道基本上是数据流动的通道。
正如你所想象的那样,数据在两个地方之间流动,即源和目的地。而从源到目的地的路径就是数据管道。
在流动过程中,数据将被验证、转换和聚合,以便在目的地使用。数据管道在促进数据驱动决策方面非常有用。
本文将深入了解数据管道的确切含义。
什么是数据管道?
如前所述,数据管道是从源系统流向目的系统的通道。源是数据生成或首次记录的地方。
例如,这可以是一个在线商店管理系统或一个社交媒体广告活动管理工具。目的地可以是仪表板,显示在线商店中的广告支出与销售额的对比。
可以构建数据管道来从不同的系统中收集数据,根据需要进行转换,并将其放置在仓库中,以便仪表板收集和显示。
通常,目的地所期望的数据格式与生成的格式不同。例如,在线商店可以以原始格式提供所有商店订单。但是,系统需要计算一个月的总销售额。
因此,管道将必须将一个月的所有订单相加,以计算一个月的总销售额。因此,管道作为一个重要的中间步骤,将根据需要重新组织和重组数据。
数据管道的好处
- 使用数据管道的最大优势之一是,它们使您能够从不同的系统中收集和聚合数据,并将结果显示在一个集中的地方。这使得信息更易于获取,决策更加容易。
- 如果构建得当,您还将能够在业务中跟踪的不同指标的实时信息和分析。
- 自动化数据收集和汇总比手动转移或输入数据到系统更便宜、更快、更不容易出错。
- 数据管道也非常可扩展。随着数据量的增加,它们比手动方法更能处理增加的工作量。
接下来,我们将讨论数据管道架构。
数据管道架构
广义上,有两种类型的数据管道架构,一种是ETL,另一种是ELT。
#1. ETL(抽取-转换-加载)
ETL是实现数据管道的一种方法。ETL代表抽取-转换-加载。这些是从源系统抽取数据时遵循的步骤。然后将其转换为目标用例的理想形式。最后将其加载到系统中。
例如,试图为在线商店在一个月内最受欢迎的产品进行排名。首先,从在线商店提取订单数据。接下来,通过将其拆分为商店中的各个项目来进行转换。然后计算项目的数量以找到最受欢迎的产品。然后将结果列表加载到目标系统中。
#2. ELT(抽取-加载-转换)
如你可能猜到的那样,ELT是指抽取-加载-转换。在这种方法中,数据从源系统中抽取出来。然后将其加载到目标服务器上。然后,在数据加载完成后,应用任何需要的转换。这意味着原始数据被保留,并在需要时进行转换。
这样做的优点是数据可以随着时间的推移以新的方式结合起来,从而得到不同的视角。回到之前的例子,可以使用相同的订单数据来查看哪些客户在商店购买了最多的商品。如果我们已经将数据转换为排名产品,则无法实现这一点。
ETL vs. ELT
方面 | ETL | ELT |
存储 | 数据以其处理过的格式存储在服务器上 | 数据以原始格式存储,并根据需要进行转换 |
用例 | 适用于较大的数据集和简单的转换 | 适用于小型数据集和复杂的转换 |
数据格式 | 数据以结构化格式存储;因此,只能存储在数据仓库中 | 数据可以是结构化、非结构化和半结构化的,因此可以存储在数据仓库和/或数据湖中 |
成熟度 | 这是实施数据管道的传统方式,但更成熟且为人所理解 | 这是实施数据管道的现代方式,但更复杂且为人所理解较少 |
合规性 | 它使遵守诸如GDPR之类的法规更容易,因为数据在存储之前进行了转换,可能不是个人身份信息 | 它使遵守GDPR更加困难,因为数据保留在其原始格式中。因此,仍可能与个人相关联 |
数据可用性 | 需要预先指定需要哪些数据以及如何进行转换 | 尽可能加载所有可用的数据,然后稍后进行转换 |
转换时间 | 转换在装载之前在临时系统中进行 | 转换在数据系统本身中进行 |
加载时间 | 加载时间较长,因为数据在加载过程中进行转换 | 加载时间较短,因为没有进行转换 |
转换期间所需时间 | 转换是在一开始就发生的,最初需要更多时间,但一旦转换完成,数据分析会更快 | 转换在需要时发生,并且每次重新计算。因此,分析需要时间。 |
总结
ETL和ELT都有各自的优势和劣势,没有哪一种方法必然比另一种方法更好。ETL允许您在加载之前对数据进行结构化处理并加快分析速度,而ELT则为您提供了非结构化数据的灵活性。最终,选择哪种方法更好取决于您的业务需求。
数据管道的类型
另一种分类数据管道的方式是基于管道是否实现批处理或实时处理。
#1. 批处理
在批处理中,数据定期收集并一次性处理。当需要周期性获取数据时,这种方法非常理想。一个使用批处理的数据流程示例是工资系统,其中从打卡系统中提取时间表。
然后根据工作时间计算工时并计费。然后可以将要支付的工资加载到不同的系统中。该系统每周或每月只运行一次。因此,数据将定期收集并一次性处理。
#2. 实时处理
与批处理相反,实时处理是将数据在生成时立即处理的系统。实时处理数据流程的一个示例是网站注册访客并立即将数据发送到分析系统。
通过查看分析仪表板,人们可以实时了解网站访问量。可以使用Apache Kafka等技术来实现实时流。这是一个关于how to get started with Apache Kafka的指南。
其他可用的工具包括RabbitMQ。
用例
构建分析仪表板
数据流程非常有用,可以从不同的来源汇总数据,以显示企业的绩效概况。它们可以与网站、社交媒体和广告上的分析工具集成,以监视企业的营销工作。
构建用于机器学习的数据库
在构建将用于machine learning和其他预测的数据集时,也可以使用数据流程。这是因为数据流程可以处理大量即时生成的数据并以同样的速度记录它。
会计
可以从不同的应用程序中收集数据,并将其发送到会计系统。例如,销售数据可以从Shopify中收集并记录在Quickbooks中。
挑战
- 构建数据流程通常需要一些技术专业知识。虽然某些工具使其更加容易,但仍然需要一定的知识。
- 数据流程服务可能会变得昂贵。尽管经济效益可能使成本值得,但价格仍然是一个重要因素。
- 并非所有系统都得到支持。数据流程系统作为源或目标与一些最流行的系统支持和集成。但是,并非所有系统都得到支持;因此,企业的技术堆栈的某些部分可能无法集成。
- 当数据通过第三方移动时,安全性是另一个需要考虑的因素。当系统中有更多的移动部件时,发生data breach的风险增加。
现在,让我们探索最佳的数据流程工具。
数据流程工具
#1. Keboola
Keboola是一个用于构建数据流程的工具。它使您能够构建集成,从不同的来源收集数据,设置工作流以对其进行转换,并将其上传到目录。该平台非常灵活,可以使用Python、R、Julia或SQL进行更高级的分析。
#2. AWS数据管道
AWS Data Pipeline是亚马逊网络服务的一项服务,可让您在Amazon Web计算和存储资源(如EC2实例和S3存储)之间传输和移动数据。此服务仅在AWS内部提供。
#3. Meltano
Meltano是一个用于构建ELT数据流程的开源命令行工具。它支持从Zapier、Google Analytics、Shopify等不同数据源提取数据。它被一些最大和最受欢迎的技术公司的产品团队广泛使用。
#4. Stitch Data
与Meltano类似,Stitch Data是大公司使用的工具。但与Meltano不同,Stitch是一种ETL工具,即先提取数据,然后进行转换并将数据加载到数据仓库中。
#5. Hevo Data
Hevo Data是一个平台,使构建从源到目的地移动数据的流水线变得容易。它与许多数据源集成并支持目的地,如MYSQL,Postgres,BigQuery和许多其他数据库。
最后的话
数据管道是一种非常强大的工具。它们通过帮助您以更有意义的方式提取和组合数据,使您的业务决策更加数据驱动,从而为您提供对这个复杂而模糊的世界的深入洞察。