ETL测试流程

本文概述

  • 1)使用批处理构建ETL管道
  • 2)使用流处理构建ETL管道
ETL代表提取, 转换和加载。 ETL是一个用于提取数据, 转换数据并将数据加载到最终源的过程。 ETL遵循将数据从源系统加载到数据仓库的过程。
ETL测试流程

文章图片
执行ETL流程的步骤为:
萃取
提取是从不同来源(如文本文件, XML文件, Excel文件或各种其他来源)收集数据的第一个过程。
转型
转换是ETL过程的第二步, 其中所有收集的数据都已转换为相同格式。格式可以是我们要求的任何格式。在此步骤中, 将一组功能规则应用于提取的数据, 以将其转换为单个标准格式。它可能涉及以下任务:
  • 过滤:只有特定的属性正在加载到数据仓库中。
  • 清洁:使用特定的默认值填充空值。
  • 联接:将多个属性联接到一个。
  • 拆分:将单个属性拆分为多个属性。
  • 排序:根据属性对元组进行排序。
载入中
加载是ETL过程的最后一步。大量数据是从各种来源收集的, 对其进行转换, 然后最终加载到数据仓库中。
ETL是从不同源系统提取数据, 转换数据并将数据加载到数据仓库的过程。 ETL流程需要开发人员, 分析师, 测试人员, 高层管理人员等各种利益相关者的积极投入。
ETL(提取, 转换和加载)是从原始数据中提取信息的自动化过程, 该信息是分析所必需的, 并将其转换为可满足业务需求的格式, 并将其加载到数据仓库中。 ETL通常会汇总数据以减小其大小并提高特定分析类型的性能。
ETL过程使用流水线概念。在此概念中, 一旦提取数据就可以对其进行转换, 并且在转换期间可以获取新数据。并且, 当将修改后的数据加载到数据仓库中时, 可以转换已提取的数据。
ETL测试流程

文章图片
在构建ETL基础结构时, 我们必须集成数据源, 仔细计划和测试以确保我们正确转换源数据。
在这里, 我们将说明构建ETL基础结构的三种方法, 以及在不使用ETL的情况下构建数据管道的另一种方法。
1)使用批处理构建ETL管道 这里是构建传统ETL流程的过程, 在该过程中, 我们从源数据库到数据仓库批量传输和处理数据。开发企业ETL管道是一项挑战。我们通常将依靠ETL工具(例如Stitch和Blendo)来简化和自动化流程。
使用批处理构建ETL, 这是ETL最佳实践。
1)参考数据:在这里, 我们将创建一组数据, 该数据定义了一组允许的值, 并且可能包含该数据。
示例:在国家/地区数据字段中, 我们可以定义允许的国家/地区代码。
2)从数据参考中提取:ETL步骤的成功在于正确提取数据。大多数ETL系统将来自多个源系统的数据进行组合, 每个数据源都具有其数据组织和格式, 包括关系数据库, 非关系数据库, XML, JSON, CSV文件, 并且在成功提取之后, 数据将转换为单一格式以标准化格式。
3)数据验证:自动化过程将确认从源中提取的数据是否具有预期值。例如, 数据字段应包含过去一年的财务交易数据库中过去12个月内的有效日期。如果验证引擎未通过验证规则, 则其将拒绝数据。我们会定期分析被拒绝的记录, 以找出问题所在。在这里, 我们更正源数据或修改提取的数据以解决下一批问题。
4)转换数据:删除多余或错误的数据, 应用业务规则, 检查数据完整性(确保数据在源中未损坏或在ETL中未损坏, 并且在前一阶段未删除任何数据), 并根据需要创建了聚合。如果我们分析收入, 则可以将发票的美元金额汇总为每日或每月总计。我们需要对一系列规则或功能进行编程和测试, 以实现所需的转换并在提取的数据上运行它们。
5)阶段:通常, 我们通常不会将转换后的数据直接加载到目标数据仓库中。数据应首先输入到暂存数据库中, 以便在出现问题时更容易回滚。在这一点上, 我们还可以生成审计报告以确保合规性或诊断和修复数据问题。
6)发布到数据仓库:将数据加载到目标表。一些数据仓库每次都会覆盖现有信息, ETL管道每天, 每月或每周加载一个新批次。换句话说, ETL可以添加新数据而不会被覆盖, 并带有时间戳指示它是唯一的。我们必须仔细执行此操作, 以防止由于磁盘空间和性能限制而导致数据仓库“突发”。
2)使用流处理构建ETL管道 现代数据处理通常包括实时数据。例如, 来自大型电子商务网站的网络分析数据。在这些用例中, 我们无法大批量提取和转换数据, 并且需要对数据流执行ETL, 这意味着当客户端应用程序将数据写入数据源时, 应立即处理, 转换数据并将其保存到目标。数据存储。今天有许多流处理工具可用, 包括apache Samza, Apache商店和Apache Kafka。
ETL测试流程

文章图片
基于Kafka构建流式ETL涉及以下几点:
1)将数据提取到Kafka中:JDBC连接器提取源表的每一行。当客户端应用程序向表中添加行时, Kafka会自动将它们作为新消息写入Kafka主题, 从而启用实时数据流。
2)从Kafka中提取数据:ETL应用程序从Kafka主题中提取消息为Avro Records, 它创建一个Avro模式文件并反序列化它们, 并从消息中创建KStream对象。
3)在KStream对象中转换数据:使用Kafka Streams API, 流处理器一次接收一条记录, 对其进行处理, 并可以从下游处理器生成一条或多条输出记录。它们可以一次转换一条消息, 根据条件对其进行过滤, 或者对多条消息执行数据操作。
【ETL测试流程】4)将数据加载到其他系统:ETL应用程序仍然保留数据, 现在这需要将其流式传输到目标系统, 例如数据仓库或数据湖。他们的目的是使用S3接收器连接器将数据流传输到Amazon S3。我们可以实现与其他系统的集成。例如:使用Amazon Kinesis将数据流传输到Redshift数据仓库。

    推荐阅读