一、 ETL :
基本定义:ETL 是将业务系统的数据经过抽取(Extract)、清洗转换(Transform)之后加载(Load)到数据仓库的过程,目的是将企业中分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
主要组成部分:
1、数据抽取:从不同的数据源(如数据库、文件系统、外部系统等)读取数据。这一步需要定义数据接口,明确每个源文件及系统的每个字段,确定数据抽取的方法(如主动抽取或由源系统推送)、频率(是每日、每月还是其他周期)等。
2、数据清洗与转换:对抽取的数据进行处理,包括处理不完整数据、错误数据、重复数据;进行空值处理、数据标准统一、数据拆分、数据替换等操作,以确保数据的质量和一致性,使其符合目标数据仓库的要求。
3、数据加载:将经过清洗转换后的数据写入到目标数据仓库或其他目标系统中。如果是全量方式,通常采用直接加载的方式;如果是增量,则需要根据业务规则将数据合并到目标系统中。
优势:
1、数据整合:能够整合来自不同数据源的数据,打破数据孤岛,为企业提供统一的数据视图。
2、数据质量有保障:通过数据清洗和转换,提高数据的质量和可用性,为后续的数据分析和决策提供可靠的基础。
局限性:ETL 过程通常比较耗时,特别是在处理大量数据时,可能需要较长的时间才能完成数据的抽取、转换和加载。
二、 批量架构:
工作原理:批量架构是按照一定的时间周期(如每天、每周、每月等)批量处理数据。在每个周期内,系统会一次性读取大量的数据,进行 ETL 操作,然后将处理后的数据加载到目标系统中。例如,每天晚上从业务系统中抽取当天的业务数据,进行清洗转换后加载到数据仓库中。
优势:
1、数据处理效率高:对于大规模的数据处理,批量处理可以充分利用系统的资源,一次性处理大量的数据,避免了频繁的小批量处理带来的资源开销。
2、易于管理和维护:批量处理的流程相对固定,每次处理的数据量和处理逻辑基本相同,因此易于管理和维护。可以通过定期的调度和监控,确保数据处理的顺利进行。
3、对源系统影响小:批量处理通常是在源系统业务空闲时间进行,不会对源系统的正常业务运行产生较大的影响。
局限性:
1、数据时效性差:由于是按照固定的时间周期进行处理,所以数据的时效性较差,无法实时反映源系统的数据变化。在一些对数据实时性要求较高的场景下,批量架构可能无法满足需求。
2、资源占用集中:在批量处理过程中,系统需要在短时间内处理大量的数据,会占用大量的计算资源和存储资源,可能导致系统性能下降。
三、增量架构:
工作原理:增量架构只处理自上次处理以来发生变化的数据。通常通过一些机制来捕获数据的变化,如增量字段、触发器、日志比对等。例如,在源数据库表中添加一个时间戳字段或自增长字段,当数据发生变化时,该字段的值也会相应地改变。ETL 系统通过比较上次处理时记录的字段值和当前的值,来确定哪些数据是新增或修改的数据,然后只抽取这些变化的数据进行处理。
优势:
1、提高数据处理效率:只处理变化的数据,减少了数据处理的量,大大提高了数据处理的效率,特别是在源系统数据量较大且变化频繁的情况下,优势更为明显。
2、实时性较好:相比于批量架构,增量架构能够更及时地反映源系统的数据变化,提高了数据的实时性,能够满足一些对数据实时性要求较高的业务需求。
局限性:
1、初始同步复杂:在首次使用增量架构时,需要先进行一次全量同步,以建立初始的数据状态。然后才能基于这个初始状态进行增量数据的处理。
2、数据一致性维护困难:由于只处理变化的数据,可能会出现数据不一致的情况。例如,如果在增量处理过程中出现错误或中断,可能会导致部分数据没有被正确处理,从而影响数据的一致性。
四、实时流式架构:
工作原理:实时流式架构是对实时产生的数据流进行连续不断的处理。数据以流的形式不断地进入系统,系统立即对数据进行抽取、转换和加载操作,几乎没有延迟。常见的实时流式处理框架有 Spark Streaming、Flink 等。例如,在金融交易系统中,实时流式架构可以实时处理交易数据,及时发现异常交易。
优势:
1、高实时性:能够实时处理数据,及时反映源系统的数据变化,为企业提供实时的数据分析和决策支持。
2、灵活性高:可以根据业务需求实时调整数据处理逻辑,对新进入的数据进行实时处理和分析。
3、能够处理大规模数据:通过分布式计算和并行处理技术,实时流式架构能够处理大规模的实时数据流,具有较高的吞吐量和可扩展性。
局限性:
1、系统复杂性高:实时流式架构需要处理实时数据流的并发、容错、数据一致性等问题,系统的复杂性较高,对技术和开发人员的要求也较高。
2、资源消耗大:为了实现实时处理,系统需要持续地运行和处理数据,会占用大量的计算资源和存储资源。
了解更多数据仓库与数据集成关干货内容请关注>>>FineDataLink官网
免费试用、获取更多信息,点击了解更多>>>体验FDL功能
标签:抽取,架构,处理,系统,流式,全量,数据,ETL,实时 From: https://blog.csdn.net/oOBubbleX/article/details/143502471