创建自定义 DTS 任务以处理 BAM 数据的最简单方法是从 BAM 自动生成的包开始,并替换所有实际数据处理。
创建自定义 DTS 任务
创建需要 OLAP 多维数据集的 BAM 定义。 例如,使用 Excel 的向导功能,并将一个数据透视表®保留为非 RTA 视图。
打开 BAM 创建的用于对多维数据集进行处理的 DTS 包。 BAM 为每个视图创建一个此类包,称为 BAM_AN_<View 名称>。
在 DTS 设计器中打开包并删除除前两个步骤和最后一步以外的所有步骤。 你可能还希望保持与初级导入数据库的连接。
编辑第一个 ActiveX® 任务的属性。 删除包含 DTSGlobalVariables.Parent.Steps 的所有行,因为它们引用已删除的步骤。 脚本开始于:
serverName = "<your server here>" databaseName = "<your analysis database here>" cubeName = "<your cube name here>"
注释
任务“开始数据分析”(包中的第二个任务)非常重要,因为它为包提供:
- 用于增量处理已完成活动的移动窗口(动态 SQL 视图名称为 bam_(BamView)_View(Activity)_CompletedInstancesWindow)
- 正在进行的活动的快照 - 名为 bam_(BamView)_View(Activity)_ActiveInstancesSnapshot的表。
- 用于增量处理已完成活动的移动窗口(动态 SQL 视图名称为 bam_(BamView)_View(Activity)_CompletedInstancesWindow)
在短事务中获取视图和表格,并且在此事务中不插入任何数据,以便数据能表示主导入数据库的真实即时快照。 实现一个或多个步骤,以基于视图和表作为输入数据执行实际数据转换。 如果分析任务的目的不是填充 OLAP 多维数据集,请记得在上次提交作业时保留时间戳,并将第一个 ActiveX 任务替换为将此时间戳分配给全局变量“CompletedCubeLastProcessTime”的代码。 第二个任务使用此变量来确保没有错过的数据,并且在发生 DTS 包崩溃和重启时,数据不会被重复处理。
最后,必须调用最后一个任务,即“结束数据分析”。 此任务会处理已处理完毕的活动,以便在这些活动位于在线窗口之外时将其存档和删除,以便从主导入中清除它们。