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

目录:

1. 概述编辑

1.1 应用场景

若数据库中有一张表,每天都会新增数据。这时候用户可以使用「增量更新」,只将每天新增的数据更新到 FineBI 中。这样就不需要更新整张数据表,节省了更新时间和更新资源。

1.2 功能简介

满足以下条件的数据表,比较适合使用增量更新

  • 表内有「时间戳」字段,可用来和「更新时间」做对比实现增量更新

  • 历史数据不会变动

增量更新的表常用于频繁更新且数据量比较大的表。若是单表的数据量比较小,或者一个月才更新一回,那使用全量更新也没问题。

1.3 注意事项

  • 不支持增量更新的表:服务器数据集做了行列转换或自循环列的基础表Excel数据集自助数据集。(Excel 数据集不能增量更新,只能追加上传,详情请参见 追加上传 。)

  • 必须进行一次 全量更新 后才可以做增量更新,且增量语句不可以为空。

  • 全量更新为将数据库中所有数据覆盖至 BI 数据表中,增量更新更新数据则取决于 SQL 语句。

2. 操作简介编辑

选中要增量更新的表,在「更新信息」下找到「单表更新」,如下图所示:

34.png

进入到单表更新设置界面如下图所示:

 35.png

可以看到有两种增量更新方式:增量增加、增量删除

2.1 增量增加

在下方写入 SQL 语句取数,「增量增加」会将从数据库中取出来的数据加到 FineBI 引擎中,如下图所示:

常用于需要定时新增数据的情况。详细操作可参见:增量增加示例

22.png

2.2 增量删除

在下方写入 SQL 语句,系统会从 FineBI 引擎中取出该部分数据进行删除,如下图所示:

用户可以通过「增量删除」删除 FineBI 引擎中不需要的数据。不过增量删除很少单独使用,通常情况下是用于修改数据,可参见本文 2.3 节。

2.3 增量修改

搭配使用「增量增加」和「增量删除」,比如说先删除 FineBI 中一部分数据后,再将数据库中的数据加入到 FineBI 引擎中。

详细操作可参见:增量修改示例

2.4 设置定时增量更新

FineBI 支持定时增量更新,详细操作可参见 增量增加示例 2.3 节。

3. 注意事项编辑

3.1 增量更新重复执行导致数据重复

若用户增量更新时不小心重复更新,导致 FineBI 中数据重复怎么办?

这时候只需要执行一次全量更新,数据库的数据会重新覆盖 FineBI 引擎中的数据,从而保证 FineBI 引擎中的数据和数据库保持一致。

36.png

3.2 增量删除后磁盘空间不变化

用户在进行增量删除后,发现磁盘空间没有相应减少。

这是因为 FineBI 在进行增量删除后不会立即释放磁盘空间,而是先将数据标记为删除。

当标记删除的数据量达到一定数量时, 就会一起删除释放磁盘空间。

3.3 数据库与 BI 服务器的系统时间不一致

当FineBI服务器的系统时间与数据库的时间不一致时,容易出现重复更新的情况

建议在设置增量更新语句时,设置为「where 时间 > 上次更新时间 and 时间 < 当前更新时间 」。