第一范文网 - 专业文章范例文档资料分享平台

ssis专家教程事实表的ETL - 图文

来源:用户分享 时间:2025/5/29 13:17:06 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

(点击查看大图)图5-24 配置为全外连接类型的Merge Join编辑器 5.4.3 管理事实表变化(3) 键和度量来自于源输入,而SalesAmountQuota来自事实表,其别名为SalesAmountQuota_Original,从而可将它 与源区分开(就像Lookup方法一样)。下一组件就是Conditional Split,它标识行的DML类型:未变化的(no-change)、新的(new)、删除的(deleted)和变化的(changed)。图5-25 显示了Conditional Split编辑器。

与前面Lookup方法的Conditional Split的唯一不同是新条件添加为条件2。如果条件ISNULL(EmployeeKey)评估为TRUE,行就存在于事实表中,而在源中删除。这个 Employee Key来自于雇员Lookup转换,用于连接源行和事实表。因此,NULL表明必须在事实表中删除该行。

总的来说,该方法允许标识所有类型的行变化--新的、变化的、未变化的和删除的。因为源适配器是预排序的,该解决方案可伸缩适应较大的事实数据量。 通常,索引将位于用于Merge Join的连接模式的列上。为了评估查询计划,如果有可能,应调整索引避免用添加到事实查询的ORDER BY进行表扫描。

(点击查看大图)图5-25 Conditional Split编辑器 说明: 不要忘记历史维度变化。如果出现历史维度变化,将不能总是跨代理键作比较,因为代理键可能也经历了变化。如果不然,则事实表可能会出现复制的数据。

4. 处理事实更新、插入和删除

事实ETL中的最后一步是加载新记录和处理更新(如果有必要)。数据插入相对简单,将由配置为将行加载到事实表的目标适配器来处理。第12章讨论了伸缩数据加载和如何选择和配置目标适配器。

更新和删除会有一些困难。在SSIS中,有两种用数据流中的数据更新和删除表中的行的基本方法: 使用OLE DB Command转换,流过管道的行可映射到RDBMS语句。换句话说,对于流过的每个行,可用列值调用像UPDATE或DELETE这样的语句或存储过程。

管道数据可以分段到相同RDBMS中,后者可用于执行基于集合的UPDATE或DELETE。 图5-23显示了销售配额事实数据流,其中添加了组件来处理插入、更新和删除。

对于新的销售配额源记录,使用SQL Native Client选择OLE DB Destination。目标适配器被命名为New Sales Quotas。处理删除的Conditional Split的输出命名为Delete Sales Quotas。由于这个示例中的这些删除只涉及一小部分行,所以选择OLE DB Command。换句话说,不是大多数行流过Delete Sales Quotas输出;因此,使用OLE DB Command按行删除会工作得很好,而不会有较大的性能损失。OLE DB Command的SQLCommand属性包含DELETE语句,如下所示: DELETE FROM dbo.FactSalesQuota WHERE EmployeeKey = ? AND TimeKey = ? 记住,OLE DB Command使用参数化的OLE DB语句。问号是语句中映射到管道中的列和行的参数。图5-26显示了OLE DB Command编辑器的Column Mappings选项卡。

搜索更多关于: ssis专家教程事实表的ETL - 图文 的文档
ssis专家教程事实表的ETL - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0nmvr7808n9emep57bne_12.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top