SSIS ETL BEST PRACTICE
PackageRunLog(ExecutionGuid,PackageName,SourceTableName,DestinationTableName,StartTimeUTC,EndTimeUTC,NumberOfRowsMoved,Status,MaxUpdateTime)
记录SSIS包每次的运行信息,何时开始,何时结束,运行状态,从哪个表输送多少条数据到某个表。
PQOUNITS : 一个测试框架,存储测试用例,根据要求执行,可以生成测试结果的报告,如果出现错误,及时发现错误。
例如写一些tsql来检验SSIS包运行的结果是否有问题。还有对OLAP进行测试的时候,使用MDX和等值的TSQL进行比对。
Email notification:
1.根据packagerunlog,检测其中状态失败的信息,发送邮件。
2.在SSIS包的onpostExecute事件处事中添加发送邮件的任务,格式化邮件,发送详细的错误信息。
事实表分区 :对行数比较大的事实表进行分区,然后再使用SSIS包进行动态修改分区函数,检查在合适的时候split分区,更新分区方案。
增量加载: 使用 Max Rowversion,Max Updatetime 存储到元数据表中,根据这些信息进行更新。
更新统计在执行ETL packages之前。
DATA MODEL: 设计维度表和事实表的时候,需要注意除了要添加PK外,一般必须要添加一个UK或AK。通过这个键区分重复数据,也可以进行
增量加载
对于Execute SQL task, 可以使用索引视图,CTE和临时表(加索引)来提高执行的性能。