BI报表抽数(KETTLE)效率问题:
现象:
1、BI数据库最大单文件32TB,
2、源数据库表存在单表3亿多行记录,大于150GB;
3、源数据有删除记录;
4、多表关联时,全部用左联接。
建议:
1、使用数据库文件组,例如 文件组内的数据库文件以 20GB/文件,减少IO文件进出;数据表与 索引分离在不同的数据库表空间。
2、某些数据库表较大,可以考虑独立 数据库文件。
3、源数据有删除记录,如何同步删除BI库上的垃圾记录呢?数亿笔记录删除重抽?ETL抽1亿笔记录可是需要 4小时以上的。
为减少ETL的IO消耗,在BI数据库端可以考虑主单据号重复判断法,当存在重复时,再判断主键ID是否不存在于源数据库表。
4、建议DBA对这种开发方式做必须的效率审查,极容易出现IO消耗过大问题。