历史版本27 :增量增加示例 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 背景

数据库中有一张表,每天都会新增当天数据。这张表数据量很大,如果每天更新整张表的话,需要更新很长时间。

1.2 解决思路

使用「增量更新」,只将每天新增的数据更新到 FineBI 中。这样就不需要更新整张数据表,节省了更新时间和更新资源。

2. 操作步骤编辑

本文以 MySQL 数据库为例。对表「客户注册信息表」增量更新,且表中有时间戳字段「注册日期」,如下图所示:

41.png

2.1 设置增量增加

1)在 FineBI 中找到「客户注册信息表」,选择「更新信息>单表更新」。如下图所示:

39.png

2)进入到单表更新设置页面,选择「增量增加」,输入取数的 SQL 语句,如下图所示:

输入的 SQL 语句需要与使用的数据库同步,本示例使用的是 MySQL 。

42.png

MySQL:SELECT * FROM 客户注册信息表 where 注册日期 > str_to_date('上次更新时间','%Y-%m-%d %H:%i:%s')

该 SQL 语句取出「注册日期」大于「上次更新时间」的数据后,系统将其增加到 FineBI 中,实现增量更新。其中 str_to_date 为 MySQL 函数,用于将「上次更新时间」从字符串转化为日期类型。若使用的是其他数据库,需要使用数据库适配的函数。

系统参数说明

上次更新时间


  • 表示上一次更新开始的时间

  • 该参数为文本类型的年月日时分秒(例如:2017-12-22 12:00:00),需要通过函数将其转化为时间类型,才能与其他时间类型的字段做对比

  • 「上次更新时间」必须用参数点击添加,不能复制添加 

  • 可用 ${_last_update_time_} 代替,本示例的 SQL 语句可写为SELECT * FROM 客户注册信息表 where 注册日期 > str_to_date('${_last_update_time_}','%Y-%m-%d %H:%i:%s')

当前更新时间
  • 表示本次更新的开始时间

  • 该参数为文本类型的年月日时分秒(例如:2019-12-22 12:00:00),需要通过函数将其转化为时间类型,才能与其他时间类型的字段做对比

  • 「上次更新时间」必须用参数点击添加,不能复制添加 

  • 可用 ${_current_update_time_} 代替

注:「增量更新」是以行为单位的,增量增加是对 FineBI 中保存的数据表直接添加行。

3)点击「预览」,可以查看到 SQL 语句中取出来的数据,如下图所示:

43.png

若是预览失败,可以将 SQL 语句中的「系统参数」替换为固定日期值,在自己的数据库中测试一下语句是否正确,然后再复制到 FineBI 中使用。

4)点击「增量更新>确定」,可以立即对数据进行增量更新,如下图所示:

44.png

2.2 效果查看

更新完成后查看「客户注册信息表」的更新信息,增量更新后该表增加了两条数据,如下图所示:

45.png

在数据预览界面,也可以看到增量更新增加的数据,如下图所示:

46.png

2.3 设置定时增量更新

若希望可以定时增量更新,比如一天更新一次该如何操作呢?

重新进入更新设置界面,点击「定时更新」,更新方式设置「增量更新」,设置更新方式为每天更新一次。如下图所示:

47.png

定时更新详细设置方式可参见:定时更新