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

目录:

1. 概述编辑

1.1 版本

FineBI 版本
5.1

1.2 问题描述

用户有时需要对部分数据进行更新,比如某张表只增不减,每天只需要更新增加的部分即可。

1.3 解决思路

使用增量更新。增量更新的逻辑是在被抽取的数据里增加或删除被写的 SQL 选中的部分。通常使用增量更新有两种情况:

1)某张表只增不减,每天只需要更新增加的部分即可。

2)某张表会增会减,但是修改范围一般在一段时间之内,如只会对一张表中近 3 天的内容进行删改。

2. 示例一编辑

对于第一种情况 ,逻辑是只更新添加时间大于上次更新时间的数据即可。

点击下载本例数据:DEMO_CONTRACT.xlsx

2.1 操作步骤

使用 MySQL 数据库下的demo_contract表,需要根据合同签约时间对其进行增量更新。

1)进入业务包下,选择demo_contract表,选择更新信息,点击单表更新,进入设置框,增量更新方式选择增量增加,并且在增量更新输入框中使用 SQL 实现增量更新,如下图所示:

28.png

SQL 语句如下所示:

SELECT * FROM demo_contract where 合同签约时间 > str_to_date('上次更新时间','%Y-%m-%d %H:%i:%s')

注:其中「str_to_date」将系统中的参数「上次更新时间」转换成时间,用于和「合同签约时间」做比较。 「上次更新时间」必须用参数点击添加,不能复制添加 ;或者使用参数「${_last_update_time_}」代替参数「上次更新时间」,如下所示:SELECT * FROM demo_contract where 合同签约时间 > str_to_date('${_last_update_time_}','%Y-%m-%d %H:%i:%s')

2)点击预览可以查看到添加时间大于上次更新时间的数据,如下图所示:

1586341672520502.png

3)点击立即更新下拉框,选择增量更新,等待更新完成后,点击确定,更新成功,如下图所示:

1586341802630909.png

2.2 效果查看

1)在更新信息中可以看到更新结果,如下图所示:

1586342246773602.png

2)在数据预览界面即可看到增量更新的数据,如下图所示:

1586395503657014.png

3. 示例二编辑

对于第二种情况,可以同时设置 3 天的增量增加和 3 天的增量删除,FineBI 会自动先执行增量删除,再执行增量更新。

相比更新整张表而言,只改变近 3 天的数据可以大幅提升更新速度。

3.1 操作步骤

使用 MySQL 数据库下的demo_contract表,需要根据合同签约时间对其进行增量更新。

点击下载本例数据:DEMO_CONTRACT.xlsx

3.1.1 删除近 3 天的数据

1)进入业务包下,选择demo_contract表,选择更新信息,点击单表更新,进入设置框,增量更新方式选择增量删除,并且在增量更新输入框中使用 SQL 实现增量更新,如下图所示:

39.png

SQL 语句如下所示:

SELECT * FROM demo_contract where DATE_SUB(CURDATE(), INTERVAL 4 DAY) <= date(合同签约时间)

注:SQL 中写的是 4 天,这是因为昨天的 3 天内是今天的 4 天前。

2)点击预览可以查看到添加时间大于上次更新时间的数据,如下图所示:

1586343517692105.png

3)点击立即更新下拉框,选择增量更新,等待更新完成后,点击确定,则删除了近 3 天的数据,如下图所示:

1586343719141806.png

3.1.2 更新近 3 天的数据

1)增量更新方式选择增量增加,并且在增量更新输入框中使用 SQL 实现增量更新,点击预览,如下图所示:

1586344670957667.png

SQL 语句如下所示:

SELECT * FROM demo_contract where DATE_SUB(CURDATE(), INTERVAL 4 DAY) <= date(合同签约时间)

注:可以看到两个 SQL 是完全一致的,这是因为增加和删除都是近 3 天的内容。

2)点击立即更新下拉框,选择增量更新,等待更新完成后,点击确定,则新增了近 3 天的数据,如下图所示:

1586344815282184.png

注:也可以同时设置 3 天的增量增加和 3 天的增量删除,FineBI 会自动先执行增量删除,再执行增量更新。

3.2 效果查看

1)可以在数据预览界面查看到更新后的数据,如下图所示:

1586395923684385.png