为什么我们需要数据管道?

17 Mar 2025 | 5 分钟阅读

让我们以 javaTpoint 为例,它侧重于技术内容。 以下是主要目标

  • 改进内容:展示客户未来想要看到的内容。 这样,就可以增强内容。
  • 高效管理应用程序:跟踪应用程序中的所有活动并将数据存储在现有数据库中,而不是将数据存储在新数据库中。
  • 更快:以更低的成本更快地改进业务。

实现上述目标可能是一项艰巨的任务,因为大量数据以不同的格式存储,因此数据的分析、存储和处理变得非常复杂。 各种工具用于存储不同格式的数据。 针对这种情况的可行解决方案是使用数据管道。数据管道集成了分布在不同数据源中的数据,并且它还在同一位置处理数据。

什么是数据管道?

AWS 数据管道是一项 Web 服务,可以从不同服务访问数据,在同一位置分析、处理数据,然后将数据存储到不同的 AWS 服务中,例如 DynamoDB、Amazon S3 等。

例如,使用数据管道,您可以每天将您的 Web 服务器日志归档到 Amazon S3 存储桶,然后在这些日志上运行 EMR 集群,每周生成报告。

Data Pipeline

AWS 数据管道的概念

Data Pipeline

AWS 数据管道的概念非常简单。 我们有一个位于顶部的 Data Pipeline。 我们有输入存储,可以是 Amazon S3、Dynamo DB 或 Redshift。 来自这些输入存储的数据被发送到数据管道。 数据管道分析、处理数据,然后将结果发送到输出存储。 这些输出存储可以是 Amazon Redshift、Amazon S3 或 Redshift。

AWS 数据管道的优势

Data Pipeline
  • 易于使用
    AWS 数据管道非常容易创建,因为 AWS 提供了拖放控制台,即您不必编写业务逻辑来创建数据管道。
  • 分布式
    它基于分布式和可靠的基础设施构建。 如果在创建数据管道时活动中发生任何故障,则 AWS 数据管道服务将重试该活动。
  • 灵活
    数据管道还支持各种功能,例如调度、依赖跟踪和错误处理。 数据管道可以执行各种操作,例如运行 Amazon EMR 作业、对数据库执行 SQL 查询或执行在 EC2 实例上运行的自定义应用程序。
  • 低成本
    AWS 数据管道的使用成本非常低廉,并且以较低的月费构建。
  • 可扩展
    通过使用数据管道,您可以按顺序或并行地将工作分派给一台或多台机器。
  • 透明
    AWS 数据管道完全控制计算资源,例如 EC2 实例或 EMR 报告。

AWS 数据管道的组成部分

以下是 AWS 数据管道的主要组成部分

  • 管道定义
    它指定业务逻辑应该如何与数据管道通信。 它包含不同的信息
    • 数据节点
      它指定数据源的名称、位置和格式,例如 Amazon S3、Dynamo DB 等。
    • 活动
      活动是执行数据库上的 SQL 查询、将数据从一个数据源转换为另一个数据源的操作。
    • 计划
      计划在活动上执行。
    • 先决条件
      在安排活动之前必须满足先决条件。 例如,您想从 Amazon S3 移动数据,那么先决条件是检查 Amazon S3 中是否有数据。 如果满足先决条件,则将执行活动。
    • 资源
      您有计算资源,例如 Amazon EC2 或 EMR 集群。
    • 具体操作
      它更新有关您的管道的状态,例如通过向您发送电子邮件或触发警报。
  • 流水线
    它由三个重要项目组成
    • 管道组件
      我们已经讨论了管道组件。 它基本上是您如何将数据管道与 AWS 服务通信。
    • 实例
      当所有管道组件在一个管道中编译时,它会创建一个可操作的实例,其中包含特定任务的信息。
    • 尝试
      我们知道数据管道允许您重试失败的操作。 这些只不过是尝试。
  • 任务运行器
    任务运行器是一个从数据管道轮询任务并执行任务的应用程序。

任务运行器的架构

Data Pipeline

在上图中,任务运行器从数据管道轮询任务。 任务运行器在任务完成后立即报告其进度。 报告后,检查任务是否成功。 如果任务成功,则任务结束,如果没有,则检查重试尝试。 如果重试尝试剩余,则整个过程将再次继续;否则,任务将突然结束。

创建数据管道

  • 登录 AWS 管理控制台。
  • 首先,我们将创建 Dynamo DB 表和两个 S3 存储桶。
  • 现在,我们将创建 Dynamo DB 表。 单击创建表。
Data Pipeline
  • 填写以下详细信息,例如表名、主键以创建一个新表。
Data Pipeline
  • 下面的屏幕显示表“学生”已创建。
Data Pipeline
  • 单击项目,然后单击创建项目。
  • 我们添加了三个项目,即 id、Name 和 Gender。
Data Pipeline
  • 下面的屏幕显示数据已插入 DynamoDB 表中。
Data Pipeline
  • 现在我们创建两个 S3 存储桶。 第一个将存储我们从 DynamoDB 导出的数据,第二个将存储日志。
Data Pipeline

我们创建了两个存储桶,即 logstoredata 和 studata。 logstoredata 存储桶存储日志,而 studata 存储桶存储我们从 DynamoDB 导出的数据。

  • 现在我们创建数据管道。 移至数据管道服务,然后单击开始使用按钮
Data Pipeline
  • 填写以下详细信息以创建管道,然后单击“在架构师中编辑”以更改管道中的任何组件。
Data Pipeline
Data Pipeline
Data Pipeline
  • 单击在架构师中编辑时会显示下面的屏幕。 我们可以看到警告出现,即TerminateAfter 缺失。 要删除此警告,您需要在“资源”中添加“TerminateAfter”的新字段。 添加字段后,单击激活按钮。
Data Pipeline
  • 最初,状态为 WAITING_FOR_DEPENDENCIES。 刷新后,状态为 WAITING_FOR_RUNNER。 状态显示为 Running 后,您可以检查您的 S3 存储桶,数据将存储在那里。
Data Pipeline
下一篇AWS Lightsail