Analysis Services 2005中数据完整性处理(1)

Analysis Services 2005中数据完整性处理(1) - 应用软件 - 电脑教程网

Analysis Services 2005中数据完整性处理(1)

日期:2007-09-23   荐:

数据完整性在关系数据库应用的比较广泛,特别是在OLTP系统中,但在ETL和加载数据到数据仓库(DW)时,缺乏提供数据完整性的通常处理,然在SSAS中,数据库管理员可以非常方便的处理这些问题。在SSAS中,可以通过空值处理和错误配置来设置数据完整性处理,其中空值处理和错误配置都和未知成员有关。下面就未知成员、空处理、错误配置的一些基本概念分别介绍。

1、未知成员

SSAS中,维度对象有一个称为UnknownMember的属性,它可取的值为:values—None, Hidden, Visible当为Hidden/Visible值时,SSAS自动的为维度的每一个属性建立一个称为 Unknown Member 的成员当值为Hidden时,指示这个成员将在结果中隐藏缺省的取值为 None如果你想改变未知成员的名字,可以修改维度的UnknownMemberName属性

2、空处理

空处理指定当遭遇空数据时如何处理,它有下面5中可能的值ZeroOrBlank —这个选择告诉服务器转换NULL为0或者空值‘’Preserve—这个选项告诉服务器保留NULL.服务器会把它当作其他值一样处理Error—这个选项告诉服务器说明NULL值为非法的数据项.服务器将产生一个数据完整性错误UnknownMember—这选项告诉服务器以把NULL值作为一个未知的成员处理.但也将产生一个数据完整性错误.它只被应用于作为键列的属性Default—这是一个条件选项,在维度和CUBE中,它的值为ZeroOrBlank,在挖掘结构和模型中,它的值为UnknownMember

3、错误配置

在我们讨论错误配置之前,我们先必须清楚数据完整性可能产生的各种错误类型,前面我们已经了解了一些,下面是一个完整的列表NullKeyNotAllowed—在遭遇空键和记录丢弃时产生错误(当NullProcessing = Error时). NullKeyConvertedToUnknown— 当一个空键被转为未知成员时产生(当 NullProcessing = UnknownMember时). KeyDuplicate— 当维度的一个属性键存在重复时产生,一旦属性键必须唯一,服务器将丢弃重复记录KeyNotFound— 这是一个在关系数据库中的引用完整性错误

错误配置是一个统一处理数据完整性错误的一个地方,服务器默认有一个缺省配置(在msmdsrv.ini配置文件中指定),它可以指定在数据库、维度、CUBE、度量、分区中的错误处理有下面属性可供配置KeyErrorLogFile— 记录完整性错误到文件KeyErrorLimit (Default=zero)— 这是一个错误的最大限制数,为-1时表没有限制KeyErrorLimitAction (Default=StopProcessing)— 这是一个当错误限制数到达时采取的动作,可以设置为暂停处理和暂停错误记录KeyErrorAction (Default=ConvertToUnknown)— 这是一个当遇到KeyNotFound错误时采取的动作,可以设置为转为未知成员和抛弃记录NullKeyNotAllowed (Default=ReportAndContinue) NullKeyConvertedToUnknown (Default=IgnoreError) KeyDuplicate (Default=IgnoreError) KeyNotFound (Default=ReportAndContinue)—当遭遇这个错误时的处理动作,可为忽略、报告运行、报告暂停(注意:空处理动作总是在错误配置动作之前开始执行)

下面我将以具体实例来介绍如何解决在OLAP加载时碰到的数据完整性问题。以加载死亡率主题分析为基础,逐步解决发布时碰到的各种问题:

问题1:刚开始发布时碰到的域用户验证失败,不能发布,如图

解决方法:双击Baserate数据源,然后选择【impersonation information】栏 出现如下界面,当前我是以SQL验证方式登录,我把它改为系统验证方式(使用系统帐号)登录后上述问题解决,如图:


数据完整性在关系数据库应用的比较广泛,特别是在OLTP系统中,但在ETL和加载数据到数据仓库(DW)时,缺乏提供数据完整性的通常处理,然在SSAS中,数据库管理员可以非常方便的处理这些问题。在SSAS中,可以通过空值处理和错误配置来设置数据完整性处理,其中空值处理和错误配置都和未知成员有关。下面就未知成员、空处理、错误配置的一些基本概念分别介绍。

1、未知成员

SSAS中,维度对象有一个称为UnknownMember的属性,它可取的值为:values—None, Hidden, Visible当为Hidden/Visible值时,SSAS自动的为维度的每一个属性建立一个称为 Unknown Member 的成员当值为Hidden时,指示这个成员将在结果中隐藏缺省的取值为 None如果你想改变未知成员的名字,可以修改维度的UnknownMemberName属性

2、空处理

空处理指定当遭遇空数据时如何处理,它有下面5中可能的值ZeroOrBlank —这个选择告诉服务器转换NULL为0或者空值‘’Preserve—这个选项告诉服务器保留NULL.服务器会把它当作其他值一样处理Error—这个选项告诉服务器说明NULL值为非法的数据项.服务器将产生一个数据完整性错误UnknownMember—这选项告诉服务器以把NULL值作为一个未知的成员处理.但也将产生一个数据完整性错误.它只被应用于作为键列的属性Default—这是一个条件选项,在维度和CUBE中,它的值为ZeroOrBlank,在挖掘结构和模型中,它的值为UnknownMember

3、错误配置

在我们讨论错误配置之前,我们先必须清楚数据完整性可能产生的各种错误类型,前面我们已经了解了一些,下面是一个完整的列表NullKeyNotAllowed—在遭遇空键和记录丢弃时产生错误(当NullProcessing = Error时). NullKeyConvertedToUnknown— 当一个空键被转为未知成员时产生(当 NullProcessing = UnknownMember时). KeyDuplicate— 当维度的一个属性键存在重复时产生,一旦属性键必须唯一,服务器将丢弃重复记录KeyNotFound— 这是一个在关系数据库中的引用完整性错误

错误配置是一个统一处理数据完整性错误的一个地方,服务器默认有一个缺省配置(在msmdsrv.ini配置文件中指定),它可以指定在数据库、维度、CUBE、度量、分区中的错误处理有下面属性可供配置KeyErrorLogFile— 记录完整性错误到文件KeyErrorLimit (Default=zero)— 这是一个错误的最大限制数,为-1时表没有限制KeyErrorLimitAction (Default=StopProcessing)— 这是一个当错误限制数到达时采取的动作,可以设置为暂停处理和暂停错误记录KeyErrorAction (Default=ConvertToUnknown)— 这是一个当遇到KeyNotFound错误时采取的动作,可以设置为转为未知成员和抛弃记录NullKeyNotAllowed (Default=ReportAndContinue) NullKeyConvertedToUnknown (Default=IgnoreError) KeyDuplicate (Default=IgnoreError) KeyNotFound (Default=ReportAndContinue)—当遭遇这个错误时的处理动作,可为忽略、报告运行、报告暂停(注意:空处理动作总是在错误配置动作之前开始执行)

下面我将以具体实例来介绍如何解决在OLAP加载时碰到的数据完整性问题。以加载死亡率主题分析为基础,逐步解决发布时碰到的各种问题:

问题1:刚开始发布时碰到的域用户验证失败,不能发布,如图

解决方法:双击Baserate数据源,然后选择【impersonation information】栏 出现如下界面,当前我是以SQL验证方式登录,我把它改为系统验证方式(使用系统帐号)登录后上述问题解决,如图:

标签: