1. 概述
1.1 背景
数据库中有一张表,每天都会新增当天数据。这张表数据量很大,如果每天更新整张表的话,需要更新很长时间。
1.2 解决思路
使用「增量更新」,只将每天新增的数据更新到 FineBI 中。这样就不需要更新整张数据表,节省了更新时间和更新资源。
由于增量增加过程中经常需要将数据库中的数据和系统更新时间做比较,所以有时间戳的表更适合做增量更新。
2. 操作步骤
把 MySQL 数据库中的「客户注册信息表」添加到 FineBI ,详细操作请参见:添加数据库表
如下图可看到该表中有时间戳字段「注册日期」。
2.1 设置增量增加
1)在 FineBI 中找到「客户注册信息表」,选择「更新信息>单表更新」。如下图所示:
2)进入到单表更新设置页面,选择「增量增加」,输入取数的 SQL 语句,如下图所示:
输入的 SQL 语句需要与使用的数据库语言同步,本示例使用的是 MySQL 。
SELECT * FROM 客户注册信息表 where 注册日期 > str_to_date('上次更新时间','%Y-%m-%d %H:%i:%s')
该 SQL 语句取出「注册日期」大于「上次更新时间」的数据后,系统会再将数据增加到 FineBI 中,实现增量更新。其中 str_to_date函数用于将「上次更新时间」从字符串转化为日期类型。若使用的是其他数据库,需要使用其他数据库适配的函数。
系统参数 | 说明 |
---|---|
上次更新时间 |
|
当前更新时间 |
|
注:「增量更新」是以行为单位的,增量增加是对 FineBI 中保存的数据表直接添加行。
3)点击「预览」,可以查看到 SQL 语句中取出来的数据,如下图所示:
若是预览失败,可以将 SQL 语句中的「系统参数」替换为固定日期值,在自己的数据库中测试一下语句是否正确。
4)点击「增量更新>确定」,可以立即对数据进行增量更新,如下图所示:
2.2 效果查看
更新完成后查看「客户注册信息表」的更新信息,增量更新后该表增加了两条数据,如下图所示:
在数据预览界面,也可以看到增量更新增加的数据,如下图所示:
2.3 设置定时增量更新
若用户希望可以设置定时增量更新,该如何操作呢?
重新进入更新设置界面,点击「定时更新」,更新方式设置「增量更新」,设置更新方式为每天更新一次。如下图所示:
定时更新详细设置方式可参见:定时更新