• 【大数据】常见的数据抽取方法


    数据抽取 是指从源数据源系统抽取需要的数据。实际应用中,数据源较多采用的是关系数据库。总体而言,数据抽取的常见方法有两大类,一是基于查询式的,一是基于日志的。

    1.基于查询式的数据抽取

    基于查询式的数据抽取,顾名思义,以从来源库来源表查询数据为主。总体又有几种:触发器方式,增量字段方式,时间戳方式等等。

    1.1 触发器方式(又称快照式)

    在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据 被标记或删除

    • 优点:数据抽取的性能高,ETL 加载规则简单,速度快,不需要修改业务系统表结构,可以实现数据的递增加载。
    • 缺点:要求业务表建立触发器,对业务系统有一定的影响,容易对源数据库构成威胁。

    1.2 增量字段方式

    它是一种基于快照比较的变化数据捕获方式,在源表上含有一个增量字段,系统中更新修改表数据的时候,同时修改增量字段的值。当进行数据抽取时,通过比较上次抽取时记录的增量字段值来决定抽取哪些数据。严格意义上讲,增量字段要求必须递增且唯一

    • 优点:数据抽取的性能高,ETL 加载规则简单,速度快,不需要修改业务系统表结构,可以实现数据的递增加载。
    • 缺点:增量字段必须递增且唯一。对不支持增量字段的自动更新的数据库,需要业务系统来维护。另外,无法捕获对增量字段以前数据的 deleteupdate 操作,在数据准确性上受到了一定的限制。无法获取 delete 及分别出 insertupdate

    1.3 时间戳方式

    放宽松条件的增量字段方式,不要求字段唯一,满足递增即可。在源表上含有一个 时间戳字段,系统中更新修改表数据的时候,同时修改增量字段的值。当进行数据抽取时,通过比较上次抽取时间与时间戳字段的值来决定抽取哪些数据。有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值。有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手工更新时间戳字段。

    • 优点:数据抽取的性能高,ETL 加载规则简单,速度快,不需要修改业务系统表结构,可以实现数据的递增加载。
    • 缺点:对不支持时间戳字段的自动更新的数据库,需要业务系统来维护,业务系统复杂的情况下有可能无法保证时间戳的递增性。另外,无法捕获对增量字段以前数据的 deleteupdate 操作,在数据准确性上受到了一定的限制。在一次抽取过程中如果数据量大,时间戳字段相同值较多,分页查询抽取时可能会丢失数据(order by 顺序不定导致)。

    1.4 全表删除插入方式

    每次 ETL 操作均删除目标表数据,由 ETL 全新加载数据。

    • 优点:ETL 加载规则简单。
    • 缺点:不适合大表,不可以实现数据的递增加载,如果有关联关系,需要重新进行创建。

    2.基于日志的数据抽取

    数据库通常借助日志来实现事务,常见的有 undo logredo logundo log / redo log 都能保证事务特性,这里主要是原子性和持久性,即事务相关的操作,要么全做,要么不做,并且修改的数据能得到持久化。

    我们通过采集日志把已经 commit 的事务数据抽取出来,对于没有 commit 的事务不做操作,进而达到数据抽取的目的。

    • 优点:不需要修改业务系统表结构,数据完整准确(insert / update / delete),支持事务。
    • 缺点:环境配置复杂,需要占用数据库系统的一定资源,ETL 规则复杂(采集、解析)。

    比如说常见的 MySQL 的 binlog 日志同步,Oracle 使用自带的 LogMiner 工具解析归档日志等等。

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Win11提示Windows无法访问指定设备路径或文件的三种解决方法
    【软考学习4】计算机构成——CPU 结构、Flynn 分类法、CISC和RISC
    Imitation Learning学习记录(理论&例程)
    【MATLAB教程案例6】基于Costas环的载波同步matlab仿真
    硬件控制方法
    CCF CSP题解:坐标变换(其一)(202309-1)
    【Mysql】调优-浅析Mysql的访问方式
    Hive学习笔记2
    scrapy的使用
    React SSG - 也写个 Demo 吧
  • 原文地址:https://blog.csdn.net/be_racle/article/details/134236373