做者:向师富 转自:阿里巴巴数据中台官网
dp.alibaba.com 概述 数据抽取是指从源数据抽取所须要的数据, 是构建数据中台的第一步。 数据源通常是关系型数据库,近几年,随着移动互联网的蓬勃发展,出现了其余类型的数据源,典型的如网站浏览日期、APP浏览日志、IoT设备日志 从技术实现方式来说,从关系型数据库获取数据,能够细分为全量抽取、增量抽取2种方式,两种方法分别适用于不用的业务场景
用时间戳方式抽取增量数据很常见,业务系统在源表上新增一个时间戳字段,建立、修改表记录时,同时修改时间戳字段的值。 抽取任务运行时,进行全表扫描,经过比较抽取任务的业务时间、时间戳字段来决定抽取哪些数据。 此种数据同步方式,在准确率方面有两个弊端: 一、只能获取最新的状态,没法捕获过程变动信息,好比电商购物场景,若是客户下单后很快支付,隔天抽取增量数据时,只能获取最新的支付状态,下单时的状态有可能已经丢失。针对此种问题,须要根据业务需求来综合断定是否须要回溯状态。 二、会丢失已经被delete的记录。若是在业务系统中,将记录物理删除。也就没法进行增量抽取。通常状况下,要求业务系统不删除记录,只对记录进行打标。
业务系统维护时间戳 若是使用了Oracle、DB2等传统关系型数据库,须要业务系统维护时间戳字段,业务系统在更新业务数据时,在代码中更新时间戳字段。此种方法很常见,不过因为须要编码实现,工做量会变大,有可能会出现漏变动的情形
触发器维护时间戳 典型的关系型数据库,都支持触发器。当数据库记录有变动时,调用特定的函数,更新时间戳字段。典型的样例以下:
数据库维护时间戳 MySQL能够自动实现变动字段的维护,必定程度上减轻了开发工做量。 具体的实现样例以下: 建立记录
近几年,随着互联网的蓬勃发展,互联网公司通常使用MySQL做为主数据库,因为是开源数据库,不少公司都作了定制化开发。 其中一个很大的功能点是经过订阅MySQL binlog日志,实现了读写分离、主备实时同步,典型的示意图以下:
解析binlog日志,给数据同步带来了新的方法,将解析以后结果发送到Hive/MaxCompute等大数据平台,实现秒级延时的数据同步。
解析binlog日志增量同步方式技术很先进,有3个很是大的优势: 1.数据延时小。在阿里巴巴双11场景,在巨大的数据量之下,能够作到秒级延时; 2.不丢失数据,能够捕获数据delete的情形; 3.对业务表无额外要求,能够缺乏时间戳字段;
固然,这种同步方式也有些缺点: 1.技术门槛很高。通常公司的技术储备不够,不足以自行完成整个系统搭建。目前国内也仅限于头部的互联网公司、大型的国企、央企。不过随着云计算的快速发展,在阿里云上开放了工具、服务,能够直接实现实时同步,经典的组合是MySQL、DTS、Datahub、MaxCompute; 2.资源成本比较高,要求有一个系统实时接收业务库的binlog日志,一直处于运行状态,占用资源较多 3.业务表中须要有主键,以便进行数据排序
Oracle是功能很是强大的数据库,经过Oracle GoldenGate实时解析Redo Log日志,并将解析后的结果发布到指定的系统
全量抽取 全量抽取是将数据源中的表或视图的数据原封不动的从数据库中抽取出来,并写入到Hive、MaxCompute等大数据平台中,有点相似于业务库之间的数据迁移。 全量同步比较简单,经常使用于小数据量的离线同步场景。不过这种同步方法,也有两个弊端,与增量离线同步如出一辙: 1.只能获取最新的状态 2.会丢失已经被delete的记录
原则上,在数据上云这个环节,建议只进行数据镜像同步。不进行业务相关的数据转换工做。从ETL策略转变为ELT,出发点有3个: 1.机器成本。在库外进行转换,须要额外的机器,带来新的成本; 2.沟通成本。 业务系统的开发人员,也是数据中台的用户,这些技术人员对原始的业务库表很熟悉,若是进行了额外的转换,他们须要额外的学习其余工具、产品; 3.执行效率。库外的转换机器性能,通常会低于MaxCompute、Hadoop集群,增长了执行时间; 同步过程当中,建议全表全部字段上云,减小后期变动成本
-
小数据量表 来源数据每日全量更新,采用数据库直连方式全量抽取,写入每日/每个月全量分区表。
-
日志型表 原始日志增量抽取到每日增量表,按天增量存储。由于日志数据表现为只会有新增不会有修改的状况,所以不须要保存全量表。
-
大数据量表 数据库直连方式经过业务时间戳抽取增量数据到今日增量分区表,再将今日增量分区表merge前一日全量分区表,写入今日全量分区表。
-
小时/分钟增量表/不按期全量 来源数据更新频率较高,达到分钟/小时级别,从源数据库经过时间戳抽取增量数据到小时/分钟增量分区表,将N个小时/分钟增量分区表merge入每日增量分区表,再将今日增量分区表merge前一日全量分区表,写入今日全量分区表。
更多内容详见阿里巴巴数据中台官网
dp.alibaba.com 阿里巴巴数据中台团队,致力于输出阿里云数据智能的最佳实践,助力每一个企业建设本身的数据中台,进而共同实现新时代下的智能商业! 阿里巴巴数据中台解决方案,核心产品: Dataphin,以阿里巴巴大数据核心方法论OneData为内核驱动,提供一站式数据构建与管理能力; Quick BI,集阿里巴巴数据分析经验沉淀,提供一站式数据分析与展示能力; Quick Audience,集阿里巴巴消费者洞察及营销经验,提供一站式人群圈选、洞察及营销投放能力,链接阿里巴巴商业,实现用户增加。