用SSIS 2005向导处理渐变维度(上)

 
   | |

导读:在 SQL Server之前的版本中,你不得不通过自定义逻辑来管理实现渐变维度的处理,这些自定义逻辑常常嵌入在数据转换服务(Data Transformation Services,DTS)包里。

关键词:SQL Server SSIS 数据仓库 渐变维度

正在加载数据... 【TechTarget中国原创】在 SQL Server之前的版本中,你不得不通过自定义逻辑来管理实现渐变维度的处理,这些自定义逻辑常常嵌入在数据转换服务(Data Transformation Services,DTS)包里。在DTS包中,你需要人工在维度表和相关数据源之间比较每一个相关列的值。如果发现了任何差异,你就不得不决定你应该创建新的一行,还是覆盖存在的那一行,进而实现对渐变维的管理。SQL Server 2005集成服务(SSIS 2005)有一个转换功能,可以通过运行一个配置向导基本实现SCD。

【TechTarget中国原创】在SQL Server之前的版本中,你不得不通过自定义逻辑来管理实现渐变维度的处理,这些自定义逻辑常常嵌入在数据转换服务(Data Transformation Services,DTS)包里。在DTS包中,你需要人工在维度表和相关数据源之间比较每一个相关列的值。如果发现了任何差异,你就不得不决定你应该创建新的一行,还是覆盖存在的那一行,进而实现对渐变维的管理。SQL Server 2005集成服务(SSIS 2005)有一个转换功能,可以通过运行一个配置向导基本实现SCD。

  几乎对于每一个数据仓库来说,渐变维度都是它们的一部分。很少有人能见到成员值保持恒定的维度。例如:顾客维的属性如姓氏,职业,家庭地址以及其他属性很可能随时变化。一些变化相对较小。例如:如果一个部门的名称从“市场部”变为“市场销售部”,你可能不需要跟踪该变化的历史数据。然而,客户收入水平或者收入负债比的调整历史对于那些销售消费贷款的财务组织来说可能非常重要。在这种情况下,数据仓库架构师必须想办法跟踪记录这些变化。

  有很多种方法可以维护维成员值的变化,但这里列出最常用的方法:

  覆盖原来存在的维成员值。它不提供保存变更历史的机制。这种方法通常称为“Type 1 SCD”。

  用当前维成员创建新的一行记录。把原来存在的行标记为过期。这种方法一般称为“Type 2 SCD”。

  这里列出了SSIS中渐变维度向导的工作方法以及它能给数据仓库架构师带来的价值:

  在运行SCD转换向导之前,你应该配置好你的数据源组件和目标组件。在本例中:我使用SQL Server关系数据库作为数据源,使用一个数据仓库(可能正好也是一个SQL Server数据库)作为目标组件。你也可以把SCD转换组件作为数据源组件和目标组件,而不是只能用SQL Server。

  SSIS项目一般是通过商业智能集成开发环境(Business Intelligence Development Studio,简称BIDS)开发的。首先,创建一个SSIS项目(文件→新建→项目,选择集成服务项目模板),然后给控制流中添加一个数据流任务。激活数据流标签页,然后在BIDS中指定你的数据源组件和目标组件。接下来把SCD转换组件拖拽到数据流设计器中,拖拽绿色箭头线,使之从数据源发起连接指向SCD转换组件。然后双击SCD转换组件,激活SCD向导。

  初始屏幕只有简单的欢迎提示,告诉你SQL Server集成服务2005中渐变维度向导的功能。你可以设置以后不显示该欢迎界面。下一个界面会让你选择一个或多个业务键。业务键用来唯一识别填入维度表的每一条表记录。每一个维度表可以有一个或多个业务键。

  一般来说,你的维度表还会有一个代理键——该列不是在数据源里找的,而是在ETL(extraction,transformation,loading:抽取,转换,加载)过程中添加到维度表里的。通常代理键作为唯一标识列使用——这些列没有业务含义,但它们可以唯一标识每一个维度记录。

  确定了业务键后,现在就该选择你希望在SCD里维护的列(也称为属性)了,本向导给出了三个选项:

  固定属性——这种列的数据不应该改变。如果SSIS检测到标识为固定属性的列值发生了变化,它就会抛出一个异常,然后使包执行失败终止。在下一个界面,有一个跟这个选项类似的选项需要给你的包配置。检测固定属性列值的变化其实并不是渐变维度实现的一部分,但是如果你想在SSIS包执行时,搞清楚源数据中出现的问题,这个功能会非常有用。

  变化型属性——Type 1 SCD;变化属性的值被简单地覆盖。变化历史不记录。

  历史型属性——这是Type 2 SCD。这一类修改值被保存在新记录中,原来的值被标识为过期。

 
查看全文
 
 
 
 
 

SQL Server数据仓储与商业智能

 
对于每一种图表,都有一类属性来灵活配置图表在报表渲染。当你准备使用图表时,记住一点就是图表可以很好地帮你解决报表优化的问题。
 
饼状图比之前我们所知道的图都要简单。事实上,它就应该是很简单的。因为形状图的目的是显示数据分组之间的简单对比(通常是百分值)。
 
本文将阐述区间图在SQL Server Reporting Services中的适用范围,以及它们的创建方法是怎样的。
 
柱状图类似于条形图,只是纵轴与横纵相对调。我们可以在设计视图中右击条形图,然后点击“Change Chart Type”,将条形图转换成柱状图。
 
创建条形图后,鼠标悬停在每个列上可以看到每个汇总值,它们会显示在工具提示上。此外,我们还可以通过输入不同的年份作为参数,然后重新生成报表。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录