如何有效地实现质量计划的内容?问答题

读下面的文字,完成下面小题

斜長的身影越过门前的土路,正好影住那盘拉散了架子的。已经记不得惋惜多少遍了,可看见它还是痛惜不止,就好像被扯断了的是自己身上的筋骨,和人一样,再结实、再年轻,也有老的时候,也有不中用的时候

金红的太阳压在西山顶上了。苍老的夕阳己经没有什么力量,只能在斜长的影孓里越陷越深窝在土崖下边的村子也跟着苍老的夕阳,一起被埋在幽暗的阴影当中。

零零落落的炊烟软软地升起来,在村子后面的杨树林上邊连成一条白云,像是给渐起的暮色镶嵌了一块依稀的薄玉

唉,看着怪好看的,看着怪揪心的,等日头一落下去,夜凉一起,一眨眼就空了,连个影子吔没有。

满是青筋的手一直抓着身边的杨树苗,树枝上新吐的树叶只有铜钱大,在夕阳的余光里闪闪发亮,远远看过去,好像满树晶莹刷造的玉佩茬夕阳中摇摆

左腿上的伤还在疼。今天在地里籍地的时候黑骡子拉着散了架的把自己给拽倒了等到把从黑骡子身上却下来,他才感觉到腿仩的疼痛,疼得钻心他抹下额头上的冷汗坐在糖架上点着了一支烟,把第一口烟吸进去眼泪就冒出来了不是因为疼,是因为难受是因为亲眼看見自己老了,亲眼看见自己快要伺候不了这些黄土了。身边没有人,漫天漫地的黄土里只有不会说话的黑骡子,只有这盘拉坏了的,他就那么坐在夶太阳底下,一个人哭不就是孙子孙女不在身边么?不就是清明节儿子们没回来么?没有人回来,你和老伴几不是也把纹上了,也把纸烧了么?没有囚回来,你不是也年年把庄稼种了么?

以前,院门前的路边上站着一排八棵杨树还是大儿子出生的那年自己亲手种下的。一眨眼,二十多年过去,树早已经长成材了,全都做了房屋的大梁一连几幢院子,青砖灰瓦一字排开,每年春天,院子里粉红的桃花、白的杏花热热闹闹连成一片,就像一幅好畫那时候,自己站在沟对面的琢畔上,远远看着这个繁花似锦的院子,心里像是喝了老酒一样又暖和又舒服

可这些年,原来热热闹闹的一个村子,洳今冷落得就像块荒地一家一家地都走了,去北京的,去太原的,去临汾的,去县城的,实在不行也要去河底镇、去黑龙关。住不进城里宁愿在城边仩凑合也不回来住。一座一座的空院子僻静得叫人发怵。

后来,这锯倒的八棵杨树每年都从老根里出来数不清的枝条,可自己已经没有心思再何弄它们了年年长,年年砍。本以为它们都死绝了,可去年春天忽然又悠出这棵嫩枝子来,孤孤单单的,一个人站在那些伤疤旁边明知道這些漫生的条子长不成材,可还是把它留下了。只要看见它,心里就一阵一阵地洒惶,一阵一阵地可怜它

最后一抹余辉越过黄色的土墙,照亮了屋脊,他忽然看见几蓬枯草站在儿子们的屋顶上,像火苗一样在屋脊的瓦背上烧得通红。心里猛一阵钻心的绞疼,疼得牵心拽肺的,疼得连气都快偠断了他赶紧闭上眼睛,在黑暗中用别人说过的话安慰自己,你真是老糊涂啦你,儿孙自有儿孙福。娃娃们愿意留在城里过好日子,儿子孙子都想当城里人可你说这棵小树苗它怎么就从死了的梦里又长出来了呢…我真想现在就死,就这么攥着这裸小树苗死就让他们把这棵树和我一塊放到棺材里,就让他们把我这盘散了架的和我一块埋到土里,赶明儿老伴死了让她和我埋在一块儿……我不用他们给我上坟。我不用在城里過好日子的几孙们离开他们的好日子,到乡下来照看这几幢空院子就让这棵小树苗从我纹里长出来,长成一棵大树,长得满树满枝的绿叶子。風一刮树叶子在我头上哗哗地响,让树叶子哗啦哗啦地天天跟我说话它知道我想的是什么,它知道我心疼它,它知道是我把它到我的梦里来的……死吧,死吧,死吧……和我的一块儿死,现在就死,就死在这黑天黑地里,就死在这几幢院子跟前,就拉着这棵小树苗死……

太阳下山了。夜幕一丅子扑上来

(注)耱:有些地方称作捞或称作盖,是一种农具。

【小题1】下列对这篇小说思想内容与艺术特色的分析和鉴赏,最恰当的一项是

A.小說开篇写到老人面对那盘拉散了架子的痛惜不止,主要是因为籍是用来平整翻耕后的土地的重要农具,失去了它就失去了劳动的工具
B.小说寫到老人看到一连几幢院子青砖灰瓦一字排开,每年春天院子里桃花、杏花热热闹闹连成一片,就像一幅好画,意在凸显农村环境美好。
C.小说對于我们特殊的吸引力在于,我们看到了老人的孤独、忧伤、软弱、矛盾、怀旧,却帮不了他,因为这既是自然的规律,也是社会发展的趋势
D.尛说主要从外貌描写、语言描写、动作描写、神态描写、心理描写等方面成功地对老人展开了全方位的刻画,使老人的形象栩栩如生。

【小題2】小说多次写到夕阳,用意何在?请简要分析

【小题3】这篇小说具有丰富而又深刻的社会内涵,请结合文本加以探究。

}
0
本人新建立一个OU,然后在添加物料(需要检验)在QA中建立了收集要素和收集计划,收集计划的“事物处理”设置为采购接收,然后创建了视图

我做了采购接收,在接收事务处悝中物料需要检验状态为“未检验-要求检验”。我选中接收行点击“检验”按钮,提示“由于未应用收集计划因此不能输入质量结果”。但我从菜单上的TOOL\输入质量结果可以显示出收集计划输入界面,输入具体检验信息但确定后保存后,该接收行仍然为“未检验-要求检验”状态但通过QA查询质量结果时,发现存在质量检验信息

请问为什么接收行仍然为“未检验-要求检验”状态,而且不能点击“检驗”按钮请指点一下。

0
2. 检查 收集计划的设定
0
请问楼上,profile检查哪个设定?
0
主要原因是粗心,将事务处理设置为"接收事务处理"应该是"检验事务处理"

}

灵活有效的数据仓库解决方案苐 3 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:灵活有效的数据仓库解决方案第 3 部分

敬请期待该系列的后续内容。

数据集成是数据仓库中的关键概念ETL(数据的提取、转换和加载)过程的设计和实现是数据仓库解决方案中极其重要的一部分。ETL 过程用于从多個源提取业务数据清理数据,然后集成这些数据并将它们装入数据仓库数据库中,为数据分析做好准备

尽管实际的 ETL 设计和实现在很夶程度上取决于为数据仓库项目选择的 ETL 工具,但是高级的系统化 ETL 设计将有助于构建高效灵活的 ETL 过程

在深入研究数据仓库 ETL 过程的设计之前,请记住 ETL 的经验法则:“ETL 过程不应修改数据而应该优化数据。”如果您发现需要对业务数据进行修改但不确定这些修改是否会更改数據本身的含义,那么请在开始 ETL 过程之前咨询您的客户

调制的 ETL 过程设计

由于其过程化特性以及进行数百或数千个操作的可能性,所以以精確方式设计 ETL 过程从而使它们变得高效、可伸缩并且可维护就极为重要。ETL 数据转换操作大致可以分为 6 个组或模块:数据的提取、验证、清悝、集成、聚集和装入要安排好这些组,按照使这一过程获得最大简化、具有最佳性能和易于修改的逻辑次序来执行操作下图中展示叻执行的次序。

图 1. ETL 数据转换过程的功能模块设计

在项目的业务需求和数据分析阶段我们创建了数据映射信息。有许多中记录数据映射的方式;ETL 数据映射表是指导 ETL 过程设计的最佳方式您还可以将该表用作与业务客户就数据映射和 ETL 过程问题进行交流的方式。ETL 数据映射表有不哃的级别如实体级别和属性级别。每个级别中都具有不同级别的详细数据映射信息下表是一个实体级别的 ETL 数据映射表的简化例子。该表中的每个“X”表示到操作细节或较低级数据映射文档的链接

设计和实现仓库 ETL 过程。

下面是创建和启动新的仓库控制数据库的步骤:

  1. 确保启动了 DB2 仓库(Warehouse)服务器和相关的服务在仓库控制数据库的管理窗口中,填入控制数据库名、模式名(IWH)、用户 ID 和密码并创建该仓库控制数据库。如果在以前版本的 DB2 DWE 上已经有一个仓库那么还可以使用此过程将仓库控制数据库迁移到当前版本中。
  2. 通过新创建的或迁移的控制数据库登录到 DB2 Data Warehouse Center如 所示。确保使用与步骤 1 相同的用户 ID 和密码如果仓库控制数据库是一个远程数据库,则必须对该节点和控制数据库進行编目

注意:DB2 Data Warehouse Center 的登录窗口将允许您在多个仓库控制数据库中进行切换。当有许多项目或开发人员在同一 DB2 数据仓库(Data Warehouse)服务器上工作时此功能极其有用。

这些代理使用 Open Database Connectivity(ODBC)驱动程序或 DB2 CLI 与不同的数据库进行通信只需要几个代理就可以处理源仓库和目标仓库之间的数据迁迻。您所使用的代理数目取决于现有的连接配置以及计划迁移到仓库中的数据量。如果需要同一代理的多个进程同时运行则可以生成附加的代理实例。

代理站点是安装了代理软件的工作站的逻辑名称代理站点的名称与 TCP/IP 主机名不同。一个工作站可以只有一个 TCP/IP 主机名不過,您可以在一个工作站上定义多个代理站点逻辑名称将标识每个代理站点。

在设置数据仓库时必须定义仓库将用来访问源数据库和目标数据库的代理站点。Data Warehouse Center 使用本地代理作为所有 Data Warehouse Center 活动的默认代理但是,您可能需要使用来自包含仓库服务器的工作站的另一站点上的仓庫代理您必须在 Data Warehouse Center 中定义该代理站点,从而标识安装了该代理的工作站Data Warehouse Center 使用这一定义来标识启动代理的工作站。

上图说明了仓库代理、數据源、目标和仓库服务器之间的关系

仓库源指定将为仓库提供数据的表和文件。Data Warehouse Center 使用仓库源中的说明来访问数据DB2 Data Warehouse Center 支持所有主要平台仩的大量关系数据源和非关系数据源,如下图所示

在建立到数据源的连接并确定需要使用哪些源表之后,就可以在 Data Warehouse Center 中定义 DB2 仓库数据源了如果使用相对仓库代理的远程源数据库,就必须在包含仓库代理的工作站上注册这些数据库

定义仓库数据源的过程会根据数据源类型嘚不同而有所不同。下面是一个在 DB2 Data Warehouse Center 中定义关系仓库数据源的例子

  1. 添加有关仓库源的信息。
  2. 指定访问仓库源的代理站点
  3. 指定有关源数据庫的信息,如下图 5 所示
  4. 将源表和视图导入仓库源中。
  5. 授权仓库组以访问仓库源。
图 5. 定义仓库关系数据源

仓库目标是指包含已转换数据嘚数据库表或文件您可以使用仓库目标给其他仓库目标提供数据。例如一个中心仓库可以向部门级服务器上的数据集市提供数据。有兩种创建仓库目标的方法一种是从现有的表或文件进行导入,另一种则是通过使用仓库系统生成目标

图 6. 定义仓库目标表

正如从 中可以看到的,在定义 DB2 仓库目标表时可以指定是否由 DB2 Data Warehouse Center 创建该表,以及该表是否是 OLAP 模式中的一部分这意味着它可能最终被用作多诸如星型模型の类的维数据模型中的一个维度或事实表。

定义仓库主题领域、过程和步骤

仓库步骤是对仓库中单独某一操作的定义仓库步骤定义如何迻动和转换数据。可以在 DB2 Data Warehouse Center 中使用的仓库步骤类型有很多:

  • SQL(插入、更新和替换)
  • 文件(FTP文件数据的导入和导出)
  • DB2 程序(数据导出、装入、表重组和统计数据更新)
  • 仓库转换器(数据清理、键表和时间表的生成,以及翻转和透视数据)

在运行一个步骤时可能发生仓库源和倉库目标之间的数据迁移或转换。其中一个步骤就是 Data Warehouse Center 中的一个逻辑实体该实体定义了以下内容:

  • 对输出表或文件的定义和链接。
  • 用来填充输出表或文件机制(SQL 语句或程序)和定义
  • 填充输出表或文件的处理选项或时间表。

仓库过程包含为特定仓库执行数据转换和移动的一系列步骤一个过程可以产生一个表或一组总结表(summary table)。过程还可以执行一些特定类型的数据转换

图 7. 定义仓库过程

主题区域指定并划分與逻辑业务领域相关的过程。例如如果构建一个营销和销售数据的仓库,那么要定义一个销售(Sales)主题领域和一个营销(Marketing)主题领域

Data Warehouse Center 通过使用三种模式(开发、测试或生产)中的一种来划分步骤,从而允许您管理步骤的开发该模式将确定您是否可以修改步骤,以及 Data Warehouse Center 是否将根据其时间表运行步骤升级步骤表示将该步骤移至更高的模式(开发 -> 测试 -> 生产)。

  • 开发模式:在创建一个步骤之后您就已经处在開发模式中。您可以在该模式中修改任何步骤属性在此模式下,仓库为这一步骤所生成的目标表并不在目标仓库中如果需要运行这一步骤来执行测试,则必须将该步骤升级到测试模式
  • 就会创建目标表。因此当您将一个步骤升级到测试模式之后,就只能进行那些不会損坏目标表的修改例如,当一个目标表的相关步骤处于测试模式时就可以向该目标表添加列,但无法从目标表中删除列在测试模式丅,可以单独运行每个步骤Data Warehouse Center 不会根据其自动时间表来运行步骤。
  • 生产模式:为了激活时间表和任务流链接必须将步骤升级到生产模式。生产模式表明步骤已经处于最终格式在生产模式下,只能修改不影响该步骤所生成的数据的设置您可以修改时间表、处理选项(除叻填充类型)或关于该步骤的描述性数据。但您不能修改该步骤的参数

DB2 仓库外部触发器程序

外部触发器程序是调用 Data Warehouse Center 的仓库程序。外部触發器服务器脚本可以用于升级或降级 DB2 仓库步骤以及启动或运行过程和步骤。在 ETL 开发和测试中外部触发器程序对于批量升级和降级仓库過程和步骤特别有用。您还可以使用该脚本来管理 ETL 过程和步骤的执行次序

外部触发器程序包含两个组件:外部触发器服务器(XTServer)和外部觸发器客户机(XTClient)。XTServer 与仓库服务器安装在一起XTClient 与仓库代理安装在一起,用于所有的代理类型在从外部触发器程序触发一个步骤之前,必须在该步骤的 Properties 记事本的 Processing Options 页面上指定 Run on

下面是 Windows 平台上用于升级 ETL 步骤的外部触发器脚本实例:

  1. 从命令窗口启动外部触发器服务器:
  2. 创建并运行愙户端的脚本命令文件该文件可能包含多行代码。例如(在执行该文件时在一行中包含了所有的参数):
    • <port> 是仓库服务器上的外部触发器服务端口号。默认端口号是 11004
  • <wait_for_result> 是可选的。该参数表明外部触发器程序是否要返回步骤或过程的处理结果请选择下列值之一:
    • 1:等待步驟或过程完成。如果该步骤或过程成功完成了则返回 0,或者如果该步骤或过程失败则返回一个错误。
    • 0 或空白:不等待步骤或过程完成

数据提取是捕获源数据的过程。有两种捕获数据的主要方法:

完全刷新顾名思义,只是对移入中间(staging)数据库的数据进行完全复制該复制可能替换数据仓库中的内容,及时在新的时间点上添加完整的新副本或者与目标数据进行比较,以便在目标中生成一条修改记录增量更新的关注重点是只捕获源数据中修改的数据。

如何捕获数据修改与数据源本身是密切相关的;它实际上是逐个(case-by-case)实现的问题DB2 Data Warehouse Center 支持许多数据捕获方法,其中包括直接用 SQL 选择来捕获所有数据或数据子集用 FTP 来捕获源数据源中的数据,数据文件的直接导入或装入以忣数据复制。

从仓库数据源提取大量数据是所有数据仓库项目中的一个重要问题在 DB2 Warehouse Center 中,您可以采用许多方法:Select and Insert SQL 步骤或仓库负载实用程序

  • 增量提交是一个允许您控制 Data Warehouse Center 所管理数据的提交范围的选项。增量提交可用于 Select and Insert SQL 步骤中在代理要移动的数据量十分大,以致于在整个步骤嘚工作完成之前 DB2 日志文件就可能已经填满时或者在需要保存部分数据时,可以使用增量提交如果所移动的数据量超出了已经分配的 DB2 最夶日志文件,SQL 步骤将以失败结束数据库的性能可能会受到损害,因为在使用增量提交时可能出现相当多的提交。在执行提交之前要使用增量提交选项来指定将要处理的行数(大致为最接近的因数 16)。代理将选择并插入数据然后进行增量提交,直到成功完成数据移动為止

  • DB2 Load 转换器可以将大量数据从定界的(delimited)文件装入 DB2 表,替换或追加数据库现有的数据默认情况下,DB2 Load 仅在日志中记录进度消息而不是嫃正地输入数据,因此在这里不需要考虑日志文件的长度。在数据装入结束之后表空间会处于暂挂(pending)状态;您需要备份该表空间,鉯使目标表可用然而,DB2 Load 转换器为您提供了一个保存输入数据的副本的选项如果使用该选项,则该表在数据装入之后就立即可用

    您还鈳以指定要处理的最大行数, 中展示了其他许多性能相关选项

DB2 Data Warehouse Center 的数据复制服务功能非常强大,并广泛用于为数据仓库中的完全刷新和增量更新捕获数据

对于增量更新,数据修改是从日志文件和时间取样(time-sampled)源中捕获的提取日志数据的典型方法就是数据复制。DB2 数据复制垺务是与 DB2 Data Warehouse 紧密集成在一起的因此数据复制可以从 DB2 Data Warehouse Center 中进行配置和调度。

您可以使用 DB2 Data Warehouse Center 来定义复制步骤它将复制所有 DB2 Data Warehouse 支持的数据源之间的修妀。您所需要的复制环境取决于需要进行更新的时间以及处理事务的方式数据仓库(Data Warehouse)支持 5 种类型的复制:

  • 用户副本(User Copy):复制源表的唍整压缩副本。压缩意味着目标表中包含一个主键并且可用它来进行更新。
  • 时间点(Point-in-time):在某一个时刻上的复制源表的完整的压缩副本目标表有一个主键和一个时间戳列。
  • 基本聚集(Base aggregation):历史表为每个订阅周期追加新行,在复制源表(基表)上使用 SQL 列函数的计算结果
  • 更改聚集(Change aggregate):历史表,为每个订阅周期追加新行对包含了最近更改数据的复制源更改数据表使用 SQL 列函数的计算结果。
  • 中间表(Staging table):苼成包含所提交事务中数据的目标表的表也称作一致的更改数据表。
  1. 创建仓库步骤所需要的密码文件
  2. 在源数据库的同一系统上启动 Capture 程序。
  3. 运行该步骤在运行该步骤时,仓库代理启动 Apply 程序来处理复制订阅

为复制准备 DB2 源数据库

为了使 DB2 源数据库用于复制,必须将数据库配置参数 LOG_RETAIN 设置为 RECOVERY以保留数据库日志文件。

  1. 备份源数据库以解除数据库的 BACKUP PENDING 状态。
  2. 检查源数据库的配置参数 LOGPRIMARY、LOGFILSIZ 和 LOGSECOND确保这些值足够大,能够處理数据修改

可以在 DB2 Data Warehouse Center 中设置复制之前,必须在仓库控制数据库和目标数据库中创建复制控制表复制控制服务器上的用于捕获复制数据嘚控制表。目标数据库中的控制表用于应用复制数据

  1. 窗口中选择仓库控制数据库。

  2. 输入合适的大小值下表中的值是一个实例:
    对于一個源表,您通常拥有多少目标表
    隔多久将数据应用到目标表?
    您期望一天捕获多少事务

  1. 选择合适的源表,并保留这些表的默认设置選择 Run now 注册用于复制的源表。

在 DB2 Data Warehouse Center 中检查 Warehouse Sources 下面所列的数据库或表。如果没有列出复制源数据库或表则将其作为仓库数据源进行导入或添加。

在 DB2 Data Warehouse Center 中检查 Warehouse Targets 下面所列的数据库或表。如果没有列出复制源数据库或表则将其作为仓库目标导入。尽管这些表可能已经列出但仍需要偅新导入它们,让 DB2 DWC 知道已经为进行复制注册了这些表

定义复制步骤与定义其他仓库步骤十分相似。您可以在复制仓库步骤中定义 5 种类型嘚复制步骤:用户副本、时间点、基本聚集、更改聚集和中间表(这些与 所解释的步骤相同。)

默认情况下设置复制步骤是为了生成目标表。如果需要将复制步骤链接到现有的目标表中那么可以双击该目标表来打开 Properties 窗口。在第一个选项卡上启用选项 Data Warehouse Center created this table。然后使用数据鏈接工具来将复制步骤连接到目标步骤上在进行连接之后,返回到目标表的属性然后取消选项 Data Warehouse Center created this table

在使用现有的用户创建的目标表时請特别小心,它与 DWC 生成的目标表相反正如前面提到的,在将复制步骤降级到开发模式时DWC 将删除 Apply 以及与这些步骤相关的订阅集。在升级步骤时将重新创建它们,而且因为 Applies 在此时是新的所以 Capture 程序将认为它需要向目标表提供完全刷新。如果已经在每个目标表上启用了 程序、订阅集和表)这些表将为空,准备各自接收数据的完全刷新但是,如果从不删除这些表那么数据都会保留着,并且如果执行完全刷新那么通过外键连接目标表时很可能会发生错误。在作为已填充的另一表的外键的目标表上完全刷新的 Apply 部分将失败,因为不可以从父表删除它

图 10 说明仓库 User Copy 复制步骤的属性,其中包括数据源和目标表之间的数据映射、复制订阅集名称、事件名、应用限定符(有关的细節请参阅下一小节)和用户 ID/密码。

图 10. 定义仓库用户副本复制步骤

使用 asnpwd 实用程序创建密码文件

复制密码文件是加密的Data Warehouse Center 复制步骤假定用于複制步骤的密码文件是:

  • 位于由环境变量 VWS_LOGGING 指定的目录中。

然后添加用户 ID 和密码:

除了对所有的应用限定符重复该命令之外您可以只创建┅次 pwd 文件,然后为每个应用限定符制作该文件副本将其重新命名为 applyqual.pwd —— 假定复制步骤都使用相同的数据库、用户 ID 和密码。

您可以从 DB2 Replication Center 启动複制 capture 控制服务器启动 Capture 程序将启动对复制启用的源表进行的数据库日志记录修改,其中包括删除、插入和更新请确保您所指定的日志记錄目录有足够大的空间,可以处理修改数据量

您还可以通过将 capture 程序保存到文件中并从命令行运行它,或者通过将 capture 程序保存为任务来启动咜

将复制步骤升级到测试或生产模式

在 DB2 Data Warehouse Center 中,将复制步骤升级到测试或生产级别在升级步骤时,DB2 将创建订阅集和 Apply 程序并在降级步骤时刪除它们。

可以修改测试模式中复制步骤的属性只要不将复制降级到开发模式,修改就会有效下次将复制步骤降级到开发模式时,这些修改将会丢失

在项目的业务数据分析阶段,您产生了一组数据质量假设这些假设将指定客户和解决方案提供者双方在数据质量问题仩的职责。解决方案提供者通常关心数据清理和增强问题客户至少要关注仅仅可以在数据源本身中解决的问题,以及与解释数据含义相關的数据质量问题例如:

  • 业务操作应用程序相关的数据问题 —— 只能从应用程序本身解决的数据质量问题。

您应该在项目合同文档中包含数据质量假设因为如果没有用正确的方法及时解决业务数据的质量问题,它可能严重影响项目时间表数据质量假设可能是与客户进荇时间表协商的一个好基础。

即使假设客户将承担其责任解决他们业务数据源中的数据质量问题,将来仍然可能在业务数据源中产生质量较差的数据在那些数据对后面的 ETL 过程产生负面影响之前,实现数据验证 ETL 筛选器模块来拒绝它们就显得十分重要数据验证包含许多检查,其中包括:

  • 属性的有效值(域检查)
  • 属性在剩余行的环境中是有效的。
  • 属性在该表或其他表中相关行的环境中是有效的
  • 关系在该表和其他表中的行间是有效的(外键检查)。

这并非是一个详尽的列表它仅仅强调了数据验证的一些基本概念。

错误处理是一个确定如哬处理不尽人意的(less-than-perfect)数据的过程可以暂时拒绝这些数据,将数据存储起来以便在固定领域中对它们进行修正或者将其缺点传递给数據仓库。所拒绝的数据将存储在客户可以访问的位置;请确保每次发生数据的拒绝时都会通知您的客户。应该允许稍后将已修理的遭拒絕的业务数据移至数据仓库中

DB2 Data Warehouse Center 中的 Clean Data 转换器可以用于基本的数据验证目的。您还可以构建自己的数据验证 SQL 步骤或特殊的数据验证步骤来进荇复杂的数据验证

数据清理是清理有效数据,使之更精确更有意义的过程数据清理包括下列等任务:

  • 数据类型和格式的转换。
  • 用于不哃目标表的数据分离(Data splitting)

数据合并的一个常见例子就是姓名和地址信息。客户的姓名和地址信息通常存储在多个位置上经过一段时间,这些信息可能就不同步了为客户合并数据通常比较困难,因为用于匹配不同客户映像的数据不再匹配数据增强将重新同步这些数据。

您可以使用 DB2 Warehouse Center 中的 Clean Data 转换器来执行源数据上的基本清理、替换和映射操作Clean Data 转换器操作源表中步骤所访问的特定数据列。然后转换器在您嘚步骤所写入的目标表中插入新的行。根据您所选择的处理选项将无法清理的数据写入目标错误表中。在将数据作为过程中一部分进行裝入或导入之后您还可以使用 Clean Data 转换器来清理和标准化数据值。

Clean Data 转换器提供了下列可供指定的清理类型:

  • Find and replace:在规则表的 Find 列中定位所选择的源列值然后在目标表中用规则表中相应的替换值替换该值。规则表是这种清理类型所必需的规则表指定 Clean Data 转换在查找和替换过程中将使鼡的值。
  • Numeric? clip:缩短超出了指定范围的数字输入值范围内的输入值将不加修改的写入输出。范围之外的输入值将由下界替换值或上界替换徝进行替换规则表是这种清理类型所必需的。
  • Discretize into ranges:基于规则表中的范围执行输入值的离散化(discretization)规则表是这种清理类型所必需的。如果尣许该清理类型为空(null)则必须在规则表的 Bound 列中放入 null 值。
  • Carry over with null handling:指定输入表中要复制到输出表中的列您可以从输入表中选择多个列移至输絀表中。规则表不是这种清理类型所必需的这种清理类型允许您用指定的值替换空(null)值。您还可以拒绝 null并将所拒绝的行写入错误表Φ。
  • Convert case:将源列中的字符从大写转换成小写或从小写转换成大写,并将其插入目标列中默认情况下,将源列中的字符转换成大写规则表不是这种清理类型所必需的。
  • Encode invalid values:用指定的值替换没有包含在您所使用的规则表的有效值列中的所有值您要在 Clean Data 转换器的 Properties 记事本中指定替換值,并且必须指定与源列数据类型相同的替换值例如,如果源列是数字类型的则必须指定一个数字型的替换值。有效值在写入目标表时不会发生改变规则表是这种清理类型所必需的。

大多数清理类型都有一个 Matching Options 窗口用于指定希望用来处理匹配的方式。

数据集成是将哆个数据源联合成一个统一数据接口来进行数据分析的过程数据集成是仓库数据转换过程中最重要的步骤,也是数据仓库设计中的关键概念

数据集成可能极其复杂。在该模块中可以应用数据集成业务规则以及数据转换逻辑和算法。集成过程的源数据可以来自两个或更哆数据源;它通常包含不同的连接操作源数据还可能来自单个数据源;该类型的数据集成通常包含域值的合并和转换。集成结果通常生荿新的数据实体或属性易于终端用户进行访问和理解。

数据聚集是收集并以总结形式表达信息的过程数据聚集通常是数据仓库需求的┅部分,它通常是以业务报表的形式出现的

在多维模型中,数据聚集路径是维度表设计中的重要部分在数据存储库或数据仓库中,数據聚集的级别是逐个(case-by-case)确定的因为数据仓库几乎仍然都是关系数据模型类型的,所以最好是建议您的客户从数据集市构建业务报表泹是,某些客户喜欢直接从数据仓库构建报表本例中,将考虑在仓库数据模型中进行数据聚集请确保数据聚集表与其余的仓库数据模式相对分隔,因此报表的业务需求修改将不影响基本的数据仓库数据结构。

将数据移至中心数据仓库中的目标表通常是 ETL 过程的最后步骤装入数据的最佳方法取决于所执行操作的类型以及需要装入多少数据。您可以通过两种基本方法在数据库表中插入和修改数据:

大多数應用程序使用 SQL IUD 操作因为它们进行了日志记录并且是可恢复的。但是成批加载操作易于使用,并且在装入大量数据时速度极快使用哪種数据装入方法取决于业务环境;应在 ETL 设计文档中指定装入方法。

ETL 数据拒绝的处理

如何处理拒绝的业务数据是 ETL 设计中的重要问题当业务數据违背下列条件时将遭到拒绝:

  • ETL 过程中所实现的业务数据集成规则。

您应在数据仓库开发人员/管理员和终端用户都同意的地方存储遭拒絕的业务数据被拒绝的业务数据中的问题的解决是数据仓库维护中的一部分;它通常是属于客户的职责。因为处理这类问题需要域知识囷数据库技能所以数据库管理员和终端用户都应该参与该工作。修复的业务数据最终将重新进入 ETL 周期从而流入数据仓库。

ETL 过程和步骤嘚执行次序

执行次序是另一个重要的 ETL 设计问题尽管从数据仓库服务器执行了越来越多的并行处理,但是并非所有的 ETL 过程都可以并发执行有许多影响执行次序的因素:

  • 实体依赖性:参照完整性的实施决定了表和对象的依赖性。例如父实体表需要在子数据或关系表之前进荇装入。
  • 属性依赖性:属性依赖性通常意味着属性值是基于一个或多个属性的一个或多个值进行计算的
  • ETL 逻辑模块:ETL 模块设计次序通常决萣了 ETL 过程中 ETL 步骤的执行次序。在数据集成步骤之前需要验证并清理数据是很易于理解的。
  • 数据集成依赖性:数据集成业务规则通常包含對象和数据依赖性

在仓库过程中,执行次序是在设计阶段使用 所示的仓库链接工具进行定义的您可以定义仓库过程中步骤之间的捷径,以控制过程的执行次序

运行仓库 ETL 步骤

您可以随需应变地运行步骤,或者按照下列方法来安排将运行的步骤:

  • 重复地例如每个星期五
  • 依次,在一个步骤结束时下一个步骤才开始运行
  • 在完成时,不管是成功还是失败都将开始另一个步骤

如果您安排一个过程,该过程中嘚第一个步骤就会在安排的时运行

您可以组合这些方法来运行一个过程中的步骤。您可以安排第一个步骤在指定的日期和时间运行当該步骤处于生产模式时,这些时间表和级联(cascade)就是活动的在安排好第一个步骤之后,您可以指定另一步骤在第一个步骤运行之后开始并指定第三个步骤在第二个步骤运行之后开始,等等

您可以安排过程和步骤,并指定一个过程在另一个过程运行之后开始您必须小惢地将步骤组合成有意义的过程,以便可以正确地调度和指定过程的任务流通过 Scheduler 记事本的 Process Task Flow 页面,您可以基于一个过程的完成来启动另一個过程

元数据管理对于 ETL 的有效开发和操作至关重要。ETL 元数据包括 ETL 过程设计、ETL 过程执行历史、被拒绝的数据过程记录、调度信息、数据增長和存储管理记录以及用户数据访问记录中所涉及的所有东西。

您可以导出 Data Warehouse Center 中所存储的元数据并且还可以从另一元数据源导入元数据。

您可以使用 Data Warehouse Center 导出功能来导出主题、过程、源、目标和用户定义的程序定义在导出对象时,所有的隶属对象在默认情况下都将导出到标記语言文件或 XML 文件中您可以导出下列类型的元数据:

  • 标记语言(XML 格式)

默认情况下,导出包括所选择的对象和所有选择对象引用的对象例如,如果您选择导出一个过程那么就包括了步骤所使用的源和目标、隶属的步骤和隶属的过程。

在将元数据导出到标记语言时您鈳以通过取消 Export dependent source properties 选项,在导出中排除源定义如果这样做,则必须在导入该标记文件之前在目标系统中定义源以避免错误。

您可以限制导絀对象的数目减小标记文件的大小。默认情况下导出操作包含具有数据依赖性的步骤。例如考虑下列场景:过程 P1 包含用于填充 T1 的步驟 S1,而过程 P2 包含步骤 S2而 S2 包含作为源的 T1,因此可以建立下列依赖性:S1 –> T1 –> S2 –> T3如果您仅导出过程 P2,那么 P1 也将导出到标记文件中因为 S2 依赖於 S1 的数据。数据依赖性反向也成立因此,即使您仅导出 P2P1 也会包含在标记文件中。分开导出 P1 和 P2 不会有什么帮助因此最佳方法就是将其┅起导出。当将元数据导出到标记文件时您可以启用选项 Do not export dependent steps from unselected process 来排除相依赖的步骤。

除了数据依赖性您还必须考虑级联(cascading)。可以考虑过程 P5 中的一个步骤它包含到过程 P6 中某一个步骤的捷径。如果导出 P5那么 P6 也会被导出。本例中导出通过捷径级联向下转到下一步骤。默认凊况下导出操作包括级联操作和过程,无论在导出到标记文件时是否提供一个机会使之不包括级联步骤和过程。

图 12. 仓库元数据导出

在導入元数据时所有对象都分配给标记语言文件中指定的安全分组。如果没有指定安全分组那么所有对象都将分配给默认的安全分组

您可以导入下列类型的元数据:

  • 如果您将标记语言文件从一个系统移至另一系统则必须移动与之相关的所有文件(例如:源文件),它們必须位于在同一目录中

导出和导入元数据的提示:

  • 因为仓库的导入和导出格式取决于版本,所以无法使用来自前面版本的导出文件从┅个版本的 Data Warehouse Center 迁移到另一个版本的 Data Warehouse Center
  • 导出和导入过程都使用大量系统资源。当您导出对象定义时可能需要限制其他程序的使用。当您进行夶型导出操作时可能需要将仓库数据库的 DB2 应用程序堆数大小增加到 8192。
  • 与仓库数据源、目标和代理相关的服务器名和用户名都要导出到标簽文件中而且在导入到新系统之后,需要对这些信息进行更新不过,不用导出密码因此您需要提供密码信息,以访问仓库数据源、目标和代理

一旦实现了数据仓库项目业务域领域的第一个分组,您就应设置仓库实现原型以验证:

当开始与用户一起验证设计时,实哋体验(hands-on)测试是最好的方法让用户尝试通过对测试目标的操作来回答问题。记录测试目标无法提供所需数据的所有领域必须与终端鼡户一起执行建议解决方案的功能性验证。这通常导致终端用户暂时使用所构造的解决方案让他们有机会使用本地解决方案中(可能是數据集市中)已经可用的信息。此外本地解决方案然后可能集成到更大业务范围的数据仓库架构中,包括所生成的数据模型

除了测试の外,要与用户一起检查在设计阶段产生的模型添加和修改以确保它们是可以理解的。与模型的验证步骤一样要将起作用的东西传递箌实现阶段。将不起作用的返回给需求阶段以便澄清和重新进入建模。

数据仓库是系统、网络配置、应用程序、数据库、报表和人员的集合数据仓库的性能受所有这些因素的影响。这一节将关注如何从终端用户的角度寻找数据仓库的性能问题该意味着从查询工作负载囷响应时间的角度查看问题。

数据仓库上的工作负载很少保持不变新的用户带来了他们自己的需求类型,现有的用户修改他们的焦点並且常常改变其研究深度,业务周期呈现其自己的峰值和谷值类型在大多数情况下,数据仓库随着它存储数据跨越更长时期而进行扩展

索引的使用在只读的数据仓库中将更加自由,因为索引是为了高效的数据检索而定义的索引应根据数据仓库决策支持环境中的访问模式和查询需求来进行优化。

随着数据仓库上的需求发生改变一些索引成为无用的,而需要创建其他索引一些聚集不再被引用,而其他嘚则需要进行评估必须对并行处理上的限制进行评估和调整,以满足当前需求这些任务和其他调优任务都将定期执行,以确保查询性能满足业务需求

查询性能的评估和调优最接近于包含了一系列连续改进的进行过程。每次改进都是从对于分组查询的较差响应时间的抱怨或观察开始的

在执行查询调优任务之前,您需要知道有问题的查询的期望响应时间为了刻画工作负载,您必须整理查询将其组成镓族,然后确定它们在处理时间、I/O 请求、内存需求、网络数据信息量(如果可适用)等方面的资源需求期望的查询响应时间是基于对查詢工作负载特性的评估而估算的。

一旦知道了期望的响应时间并且测量了查询的当前响应时间,就可以按照下列方法定期调优数据仓库:

  1. 分析监控的响应时间以确定它们是否满足期望的响应时间。
  2. 当查询无法满足响应时间目标时考虑进行调优:
    • 设置系统和数据库的性能监控,收集数据和分析监控的响应时间信息以寻找瓶颈
    • 记录产生最大乃至最小影响的性能决定因素的列表,以进行相应的调整
    • 确定哪些查询仍然无法满足响应时间目标。数量应该很少使用 DB2 Query Performance Monitor 为这些查询开发详细的概要文件和动作计划。该动作计划很可能将包含性能权衡(trade-off)这些权衡可能导致其他的资源瓶颈。
  3. 继续调整系统和数据库直到所有查询都?满足其性能目标。

数据仓库包含秘密的和敏感的業务数据。在进入稍后的数据仓库设计阶段之前数据仓库的安全性常常被忽略。随着其中涉及了更多数据源或业务主题领域数据仓库咹全的复杂性也在增加。不同的数据源通常具有不同的安全性需求或用户因此为集成的仓库数据定义数据访问可能十分困难。幸好 DB2 数据庫系统和 DB2 Data Warehouse Center 提供了极其广泛的数据访问安全性服务这使得维护数据仓库的安全性变得更容易。

您需要在数据仓库安全性设计中考虑许多因素:

  • 数据访问:数据仓库是为了决策支持的传递而创建的;终端用户只是从中挖掘信息对于数据仓库中数据的访问是只读性的。
  • 终端用戶:知道谁将使用数据仓库将指导仓库的设计如果授权终端用户访问仓库中的所有数据,则只需要设置一个系统或数据库组来访问数据倉库即可然而,在实际的业务世界中不是每位终端用户都被允许访问所有的业务数据,不同的终端用户被授权访问仓库中不同的数据孓集
  • 数据分析方法:有几种从数据集市中生成报表的方法,其中包括标准化的业务报表、即席 OLAP 报表和数据挖掘对于标准化的报表,在尣许终端用户访问一组预先定义的报表时安全性易于实现。对于即席 OLAP 和数据挖掘报表安全性很可能通过将数据库级别的数据集市或数據集市子集分配给用户组来实现。
  • 性能:限制性的安全性计划是按不同的方式以牺牲性能为代价得到的找到安全性和性能需求之间的平衡十分重要。
  • 数据仓库设计:数据安全性本身就是数据仓库设计中的重要问题该解决方案中两层的数据仓库设计假设终端用户将仅仅访問数据集市中更加用户友好的数据,而非数据仓库中复杂的数据结构这极大地简化了数据仓库终端用户的安全性,因为数据集市通常是為特定的部门或与用户组定义的
  • 数据仓库工具:DB2 Data Warehouse Center 安全性结构是与数据库和操作系统的安全性相分离的。该结构包含仓库组和仓库用户通过属于某一仓库组,用户可以获得对 Data Warehouse Center 对象的权限和访问仓库组是仓库用户和权限的命名分组,它授权用户执行功能仓库用户和仓库組不需要与为仓库控制数据库所定义的数据库用户和数据库组相匹配。

下图展示了 DB2 仓库用户、仓库组以及仓库数据库的用户 ID 和密码之间的關系

数据仓库解决方案的可交付性

下面是重要的数据仓库可交付性列表:

该文章系列向您介绍了商业智能,并提供了交付灵活的低成本數据仓库解决方案的基本方法该方法使用 IBM DB2 Data Warehouse Edition Version 8.2.1,它以用户可承担的价格提供了端对端的商业智能软件特别是对于中型市场的客户。

商业智能特定领域中所提供的信息让您洞悉在为客户开发数据仓库解决方案时将碰到的任务、决策和问题从与客户的第一次见面到将商业智能解决方案部署到生产中,本文包含了许多有用的想法和提示其中包括 ETL 过程、数据仓库的设计与实现,以及数据仓库的安全性和性能

IBM 是卋界一流的商业智能解决方案提供商,而商业智能也是 IBM 的关键计划商业智能解决方案的范围很广,可以从部门级的数据集市即用于诸洳销售或金融分析的特定功能,到增加到亿万字节(terabyte)的大规模企业数据仓库本文剖析了咨询师或解决方案提供者为交付 IBM 商业智能策略Φ的部分解决方案要付出什么代价。

  • 关于商业智能和其他解决方案领域的更多详细信息请参阅 。
  • 关于更新的产品特定信息请查看官方嘚 。
  • 关于商业智能的更多技术参考资料请参阅 。
  • 关于 DB2 数据挖掘、编程、系统管理、内容管理等的技术和业务级特性请阅读 。
  • 关于广泛嘚技术主题的深入介绍请在线浏览 。
  • 在 了解关于信息管理的更多信息,获取技术文档、how-to 文章、培训、下载、产品信息以及其他资源
}

我要回帖

更多关于 质量计划 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信