历史版本9 :增量更新概述 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1、描述编辑

功能介绍:增量更新是指对表中新增加、新删除和新修改的数据进行更新,即将数据库中有变化的数据更新到引擎中存储,并保持以前的数据不变动。

                增量更新分为:增量增加、增量删除、增量修改,其中增量修改为通过增量增加与删除的组合来实现。增量更新只更新有变化的数据,因此其更新效率较全量更新有明显的提高。

                在BI中的增量更新均是在单表更新中实现的。其实现分为三步:

                第一步:用sql执行where语句 uptime>上次更新时间(也可以不用参数“上次更新时间”,可自定义一个),将数据库中更新的时间与上次更新的时间进行对比,当某条数据在数据库里的更新的时间大于上次更新的时间,便说明该数据是未更新的数据,将它们更新进来即可;

                第二步:读取到数据库中表的变化。表的变化分为:增加、删除、修改,通过sql语句首先识别到数据变化的行,再识别变化的类型是哪一种,从而确定属于哪一种增量更新。实现这一步,数据表要满足表中存在主键(唯 一标识)来标识表中的行,同时有字段记录变化的类型。例如对"用户表(A表)"进行增量更新,用户表的主键是UserID;通过对照表(B表)来记录用户表的变化,用ID和Uptype分别记录变化所在的行和类型(用add表示增加,del表示删除,upd表示修改)。此时执行sql语句,where A.ID=B.ID即可找到变化的行,Uptype="add"即找到增量增加的数据。

                第三步:将未更新的数据更新到引擎中,对于增量增加、增量删除及增量修改的操作在BI的单表更新中完成。在单表更新设置界面,选择“首次生成全量,此后增量更新”即进入到增量更新的设置界面。将相应的sql语句分别对应写到对应的增量类型的框中,后台自动执行sql语句,选择相应变化的所在的行执行增加、删除、修改三种操作。

适用场景:1)单表总数据量较大,比如百万以上的数据 ;

                2)表内有类似时间戳作用的字段,比如根据时间戳字段与更新时间的对比实现增量更新;

                3)表历史数据修改频率较低;

2、增量更新界面编辑

进入数据准备>业务包>数据表,点击更新信息,选择更新设置,如下图:

222

出现单表更新的界面,如下图,增量更新的方式包含了两种:增量增加和增量删除,单击可以点击切换增量更新的方式;包含了两个参数:上次更新时间与当前更新时间;下方的空框处用于填写执行增量更新的sql语句。

222

“上次更新时间”与“当前更新时间”均为对比参数,其使用方式是直接单击该参数名即可输入到设置框内,并使用函数将它们从字符串转化为时间类型。“上次更新时间”表示的是上一次更新开始的时间;“当前更新时间”是指本次更新的开始时间;通过两个时间点,将更新的数据圈定到从上次开始更新时到本次更新之间的新数据上,这样每次更新都会以上次的终点为起点进行更新,以保证数据的准确和完整。

注:“当前更新时间”这个参数并不需要强制使用,它是为了防止出现在更新的sql语句查询时,出现插入数据的情况,此时就不易判断该数据是否被更新;使用"当前更新时间"作为下限,可以将查询sql语句时的数据插入放到下次的更新中进行更新,不会出现遗漏或重复插入。如没有上述情况,使用“上次更新时间”即可。