历史版本5 :数据更新方案 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

梳理好数据在 BI 中的存放结构后,就可以将数据库中的数据接入 BI (添加数据库表添加SQL数据),存放在对应的位置。

如果你使用的是 抽取版本,还需要进行数据更新 后才能保证数据的时效性和可用性。

此时,由于 BI 系统中数据表繁多且数据量大,关联、引用等复杂,更新时间势必很长,如果没有好的数据更新方案,就会出现数据时效性不足,更新缓慢、系统性能差等问题。

因此作为管理员该如何设计 BI 系统的更新方案就非常重要。

1.2 预期效果

希望数据更新能保证数据正常使用,系统性能稳定、数据更新速度较快,资源消耗相对较少;避免因为错误设置带来的问题和风险。

  • 形成全局定时更新、特殊业务包定时更新、特殊单表定时更新的更新体系;

  • 父表更新后子表也会跟着更新,不需要再手动设置;

  • 更新顺序为:(1)基础表更新 (2)数据处理用户在普通业务包创建的处理性质自助数据集更新(3)关联缓存更新(4)其他自助数据集更新

1.3 实现思路

  • 对于BI 项目经理(管理员)通过设置数据更新,保证业务数据的时效性(例如始终确保BI数据是使用时间前一天的数据)。

  • 对于其他 BI 编辑用户,也需要评估更新数据表的范围在,以此更好的使用 BI。

2. 数据更新类型说明编辑

  • 更新种类:根据表的数据量大小,确定更新种类是全量或是增量更新。建议维度表采用全量更新、事实表采用增量更新。

  • 更新频次:临时更新是需要手动点击按钮进行更新;定时更新可设置更新时间和频率,适合设置基础表和宽表在夜间更新。

  • 更新细粒度:分为单表、业务包、全局更新,通过上一层对下一层进行控制,实现更新粒度的控制。例如:全局更新是对所有业务包更新、业务包更新是对业务包下有所单表更新。可对业务包、单表设置不跟随上一级更新,此时全局更新时一些特殊业务包/单表不跟随全局更新而更新。

使用推荐:

  • 在修改单个自助数据集后时适合用单表手动更新,而一些特殊的单表如数据库的前日数据在早上7点才更新完毕,适合设置定时单表更新,而不是跟随业务包或者全局更新。

  • 而业务包更新和全局更新由于更新耗时较长,适合在无人使用BI的时间,如下班后、夜间进行更新,从而最小程度上影响使用用户。

3. 全局更新方案编辑

3.1 梳理基础表更新需求

梳理基础表(数据库表SQL 表)的更新需求。

最重要的是获取表更新频率和时间:根据大部分数据表的更新频率和时间可确定全局更新的时间;

根据数据量去判断表更新种类:对于数据量不大的表可使用「全局更新」;数据量较大的事实表适合使用「增量更新」。

可以创建如下的数据表进行需求梳理:

分组业务包名称表名称表类型数据量源数据更新完毕时间更新频率&时间更新种类

分组1

业务包1

表1

 SQL/DB/Excel

1kw

 晚12点

每天1次,12点30后

全量







每天1次

增量







不更新








3.2 设置全局定时更新

取大多数表的更新频率&时间作为全局更新的更新频率&时间,在「全局更新」下设置「定时更新」任务。

设置定时全局更新任务:更新时间&频率,结束时间通常选无期限,如下图所示:

3.3 设置单表增量更新

此时全局定时更新的设置: 全局更新对所有业务包更新、业务包更新对业务包下有所单表更新。从而完成对所有数据表的定时更新,但是对于跟随业务包更新的数据表,会有一部分由于数据量比较大,需要设置为增量更新,也就是只更新新增的数据。

因此需要对每一个增量更新的单表,设置为业务包更新时,首次全量,此后增量更新,如下图所示:

3.4 设置特殊业务包的业务包定时更新

特殊业务包指的是更新频率&时间与其他表/业务包差异过大,不跟随全局更新一起更新的业务包,例如凌晨6点更新的业务包、每周更新一次的业务包、不更新的业务包。

注:若无特殊业务包可跳过此步骤。

查找特殊更新频率&时间的业务包,设置业务包更新为:全局更新时不更新,并对业务包设置定时更新任务。

例如业务包1只需要每周六的4点后更新数据,一年后数据停用就不需要更新,点击「业务包更新」设置为全局更新时不更新,并根据业务包的更新时间&频率、设置定时更新任务的名称、开始时间、执行频率、结束时间等属性,设置结果如下图所示:

3.5 设置特殊表的单表定时更新

特殊表指的是更新频率&时间与其他表/业务包差异过大,不跟随全局更新一起更新的数据表,例如凌晨6点更新的数据表、每周更新一次的表、不更新的数据表。

查找特殊更新频率&时间的单表,设置单表更新为:业务包更新时不更新,并对该单表设置定时更新任务(若数据量较大可设置增量更新)。

注:若无特殊业务包可跳过此步骤。

例如由于某数据表早晨7点才更新昨日数据,因此属于更新频率和时间与其他表差异较大的特殊表,需要单独设置单表定时更新,且由于表的数据量比较大,因此设置为增量更新。

修改特殊单表的跟随业务包更新设置为「首次全量,此后不更新」,根据此单表的更新频率&时间和更新种类,对单表添加定时更新任务,设置单表更新的任务名称、更新方式(全量/增量)、开始时间、执行频率、结束时间,如下图所示:

并输入增量更新语句,如下图所示:

4. 用户手动更新方案编辑

  • 根据需要手动更新的表的范围,来选择手动更新的细粒度,是进行单表更新还是业务包更新;

  • 评估表更新时间表的关联更新;

  • 评估表影响范围;

  • 根据评估选择更新时间及范围。

注:尽量避免白天(BI系统有使用用户时)进行手动全局更新或业务包更新。

5. 注意事项编辑

  • 尽量避免在白天更新原始数据和基础数据,若出现表白天无故更新且无人操作的情况,请检查自动更新设置中的时间设定是否存在问题。

  • 更新时将相近时间的任务合并,放在一起更新,减少自助数据集重复更新。

  • 避免出现大量的单表且更新时间比较长的定时更新,尽量使用「全局更新」,可设置一天一次。