ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:587.17KB ,
资源ID:9320323      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9320323.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IKM开发.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

IKM开发.docx

1、IKM开发架构师:数据下载Oracle Data IntegratorOracle Database 11g示例代码标签dataintegration,soa,全部在 Oracle Data Integrator 中开发知识模块了解如何在数据集成设计中构建您自己的集成知识模块以快速投入生产。作者:Uli Bethke2009 年 6 月发布Oracle Data Integrator 中的知识模块(KM) 是在不同技术间实施可重用转换和 ELT (提取、加载和转换)策略的组件。例如,通过从 Oracle Database 10g中的更改数据捕 获提取数据,而后将转换的数据加载到 Oracle

2、Database 11g中已分区的事实表中,或者 从 Microsoft SQL Server 数据库创建基于时间戳的提取,而后将该数据加载到 Teradata 企业数据 仓库中。KM 的强大在于其可重用性和灵活性 例如,您可以针对某个事实表开发和实施加载策略 ,然后只需点击鼠标,即可将此加载策略应用到所有的事实表。如果您调整 ELT 策略以适应不断变 化的业务要求并修改相关 KM,则所有使用该 KM 的接口都将继承该更改。您可以混合搭配不同的编 程语言、类型和样式(原生 RDBMS SQL、脚本编写语言,如 Jython 或 JavaScript,甚至是 Java) 。这使得这些 KM 变得

3、极为灵活。这种创新方法称为 Oracle Data Integrator 声明式设计,可比传 统的 ELT 方法快 10 倍。Oracle Data Integrator 附带了各种预定义的 KM。您可以直接在 ELT 接口(等同于 Oracle Warehouse Builder 映射)中使用这些 KM,或对其进行调整以适应您的特定要求。Oracle Data Integrator 实施五种不同类型的 KM。每一种都涵盖从源到目标转换流程中的一个阶段。最重要的三 类模块是集成知识模块(IKM)、加载知识模块(LKM) 以及检查知识模块 CKM。在本文中,我们将新建一个 IKM。我们对于此 I

4、KM 的要求是将已分区的 Sales 事实表加载到Sales History (SH) 示例模式中。为了改进事实表的加载性能,我们在加载过程中禁用了外 键约束和位图索引。加载后,这些禁用将会解除。作为这个 IKM 的一部分,我们还将包括一个可选 步骤,以允许我们在接口执行期间进行扩展跟踪。前提条件和资源本文基于 Oracle Database 11g(11.1.0.7.0) 和 Oracle Data Integrator 10.1.3.4.0。本文假设您已经设置了 Oracle Data Integrator 主信息库和工作信息库。请参阅“Oracle Data Integrator:ETL

5、 项目入门” (PDF) 了解详细信息。下面是其他一些有帮助的资源: “Oracle Data Integrator 针对数据仓库 的最佳实践”(PDF) “Oracle 示例系列 Oracle Data Integrator” “Oracle Data Integrator 替代方法参考 ”(PDF) 最后,您可能需要下载 Oracle Data Integrator 产品管理提供的双周刊网播。 可从此处下载完整的 IKM。要导入 IKM,请 将其保存至您的文件系统,并通过 Oracle Data Integrator Designer 模块将其导入。创建源模式首先,我们将新建一个模式和一个

6、表。这将是我们的数据源。我们还将向该表插入两条记录。现 实中,您的数据可能要远比这多,但为了演示目的,两条记录已足够。通过 SQL+ 以用户 sys 的身 份登录并执行以下语句:SQL CREATE USER sales_source IDENTIFIED BY sales_source; User created. SQL GRANT CONNECT TO sales_source; Grant succeeded. SQL GRANT RESOURCE TO sales_source; Grant succeeded. SQL CREATE TABLE sales_source ( 2 P

7、ROD_ID NUMBER NOT NULL , 3 CUST_ID NUMBER NOT NULL , 4 TIME_ID DATE NOT NULL , 5 CHANNEL_ID NUMBER NOT NULL , 6 PROMO_ID NUMBER NOT NULL , 7 QUANTITY_SOLD NUMBER NOT NULL , 8 AMOUNT_SOLD NUMBER NOT NULL 9 ) ; Table created. SQL INSERT INTO sales_source VALUES (13,987,TO_DATE(01/01/1999,DD/MM/YYYY),3

8、,999,1,500); 1 row created. SQL INSERT INTO sales_source VALUES (13,987,TO_DATE(01/04/1999,DD/MM/YYYY),3,999,1,500); 1 row created. SQL COMMIT; Commit complete. 接下来,我们授予目标模式用户 SH 执行 dbms_monitor 程序包的权限。dbms_monitor 程序包将允 许我们启动扩展跟踪。(请参阅这篇 Oracle Magazine 文章获取有关 dbms_monitor 的更多信息。 )SQL grant execute

9、on dbms_monitor to sh;Grant succeeded.最后,我们为 Oracle Data Integrator 工作模式创建用户。对于某些数据验证和转换操作,Oracle Data Integrator 需要创建(临时)工作对象。最好将这些对象放置在单独的模式中,以避免在数据 仓库对象与临时工作对象之间出现混淆。SQL CREATE USER odi IDENTIFIED BY odi; User created. SQL GRANT CONNECT,RESOURCE TO odi; Grant succeeded. 创建 Development 上下文上下文用于将物理

10、资源归组至同一环境中。典型的上下文包括 Development、User Acceptance Test (UAT)、Production 等等。我们使用 Topology Manager 创建上下文。在本文中,我们将仅创建一个 Development 上下文。 在 Topology Manager 中,单击Context选项卡,然后单击Insert Context图标。这将显示上下文的Definition选项卡。按照下图所示 填充域。现在,我们将为我们的源模式 (SALES_SOURCE) 创建物理和逻辑架构。首先,我们为源模式创建物理架构。在 Topology Manager 中,选择Ph

11、ysical Architecture选项卡并展开Technologies。右键单击Oracle并选择Insert Data Server。对于数据服务器的名称,我们将遵循“Oracle Data Integrator 针对数据仓库的最佳实践 ”指南中的命名规则:_(大写)。因此,我们将数据服 务器命名为 ORCL_SALES_SOURCE_DEV。我们按照下图所示填充 Definition 选项卡上的其他域。/切换至 JDBC 选项卡并按照下图所示进行填充。您需要用服务器网络名或 IP 地址替换 ,用监听器端口号(通常为 1521)替换 ,用实例服务名 (Oracle SID) 替换 。单击

12、Test按钮确保输入了正确的数据,然后单击OK。在接下来的屏幕中,从SALES_SOURCE下拉菜单中选择SALES_SOURCE模式。选择ODI作为 Schema (Work Schema) 。牢记 Oracle Data Integrator 将在此模式中创建临时工作对象。保留其他域的默认值(如下图所 示)。单击OK。忽略以下警告消息:在之前的步骤中,我们创建了物理模式。现在,我们将为 ORCL_SALES_SOURCE_DEV 数据服务器创建 逻辑模式。在 Topology Manager 中,单击Logical Schema选项卡。展开Technologies,右键单击Oracle并选

13、择Insert Logical Schema。我们需要再次遵循最佳实践指南中的命名规则: _(大写)因此,我们将逻辑模式命名为 ORCL_SALES_SOURCE。对于 Development 上下文,从Physical Schema下拉菜单中选择ORCL_SALES_SOURCE_DEV.SALES_SOURCE。单击OK。为 SH 模式创建物理和逻辑架构重复上一部分中的步骤为 SH 模式设置物理和逻辑模式。调整名称、用户名、口令等以反映 SH 模式的属性。将 SALES_SOURCE 和 SH 模型反向工程到 Oracle Data Integrator Designer 模块中我们使用

14、Oracle Data Integrator 模块反向工程源模式和目标模式的元数据。登录 Designer, 单击Models选项卡,单击Insert Model Folder图标(如 下图所示)。将新模型命名为 EDW 并单击OK。接下来,右键单击新 EDW 文件夹并选择Insert Model。在 Definition 选项卡中,键入 SALES_SOURCE。从Technology下拉菜单中 选择Oracle,从Logical Schema下拉菜单中选择 ORCL_SALES_SOURCE。切换至Reverse选项卡,并从Context下拉菜单中选择Development。其他域保留默认

15、值。接下来,单击Reverse按钮反向工程 SALES_SOURCE 模型。反向工程过程可能需 要一两分钟才能完成。下一步是反向工程 SH 模式。按照我们创建 SALES_SOURCE 模型的步骤,在 EDW 模型文件夹中创 建 SH 模型。创建 IKM 加载事实表在此部分中,我们将创建一个新的 IKM 以通过实施最佳实践方法将事实表加载到数据仓库中。我 们将设置可选跟踪并禁用外键和索引预先加载。加载完事实表后,我们将重新启用外键和索引,还将 禁用跟踪。开始之前,我们突出显示Projects选项卡并通过单击Insert Project图标创建一个新项目。我们将此项目命名为 EDW。接下来,创建

16、一个新的 IKM。展开 EDW 项目和 KM 文件夹,右键单击 Integration 文件夹并选择Insert Integration (IKM)。我们将新的 IKM 命名为“IKM Oracle Append (Disable FKs & Indexes)”。这 遵循了命名 KM 的最佳实践: ()。还是从Target Technology下拉菜单中选择Oracle。通过Details选项卡,我们定义 KM 的单个步骤。正如稍后所述,在一个接口中 运行时每个步骤的执行都设置为可选。下图显示了完整的 IKM。现在,我们将执行上述大部分步骤。上述所有步骤都使用混合的 SQL 和 Oracle

17、Data Integrator 替换 API 编写。启动跟踪我们使用 dbms_monitor 程序包启用对接口的跟踪。注意,我们需要从 PL/SQL 块内调用 session_trace_enable 过程。正如您从下图看到的那样,我们希望将跟踪等待事件设置为可选。为此,我们定义了一个名为 TRACE_WAITS 的选项。我们可以通过 getOption 替换 API 方法引用该选项。此外,我们为该选项定 义了默认值 false。因此,在接口中执行 IKM 时,默认情况下禁用跟踪。稍后我们可以在通过接口 执行 IKM 时改写该值。在Options选项卡中,我们可以看见并未始终启用跟踪(未选中

18、Always Execute复选框)。是否启用跟踪取决于 Trace 选项的值。默认情况下,Trace 选项设置为No。我们稍后可以在接口中更改此设置。删除临时表删除临时表将删除之前 ETL 运行中的记录。我们使用 odiRef.getTable 替换 API 方法获取临时 表的名称。临时表引用为 INT_NAME。注意,我们已经选中了Ignore Errors复 选框。在我们第一次运行 ETL 时,临时表还未创建。如果我们尝试删除不存在的表,Oracle 将返回 错误消息。为了防止 ETL 在遇到错误时停止执行,我们为此步骤选中Ignore Errors复选框。这就无需编写冗长的错误处理过程

19、。(注意,如果不删除临时表,我们还 可以将其截断。)创建临时表在删除了临时表以及所有旧记录后,我们可以重新创建该表。我们将该表的属性 PCTFREE 设置为 PCTFREE 选项的值。默认情况下,该值为 0。因为我们仅将记录 插入该表且从不对其进行更新,所以我们可以使用该表数据块上的所有空间。插入临时表我们结合使用 SQL 和 Oracle Data Integrator 替换 API 将 Sales 临时表从 SALES_SOURCE 模 式加载至我们的 Oracle Data Integrator 工作模式。禁用 FK 约束在将数据加载至 Sales 表之前,我们需要禁用外键。对于大量数据

20、,这将加快加载过程。这对于 性能关键的环境(如近乎实时数据仓库)非常重要。Oracle Data Integrator 在 KM 中包括了一种机制,使我们可以使用隐式游标对 SQL SELECT 语 句返回的每行执行操作。为此,您只需在 KM 步骤的Source选项卡中指定 SELECT 语句,在Target选项卡中指定操作代码。这是一个非常不错的特性,因 为这可省去用 PL/SQL 手动编码游标,从而节省了很多开发时间。在Command on Source选项卡下,我们按如下所示进行指定:我们在 Oracle Data Dictionary 中查询 user_constraints 表,返回

21、目标表上(SH 目标模式中的 Sales 表)的所有外键约束列表。在Command on Target选项卡中,我们可以通过为其加上前缀 # 符号引用目 标表和约束名并禁用外键约束。请注意,我针对隐式游标运行了扩展跟踪。对于 Sales 目标表上的每个约束,Oracle Data Integrator 都会向数据库服务器发送一条 ALTER TABLE. 语句。因为 Sales 表上有五个外键,所 以我们以五个 ALTER TABLE. 语句结束。禁用 BIX在该步骤中,我们将禁用Sales事实表的位图索引。这将加快事实表的加载 速度。我们仅禁用那些会将数据加载到其中的表分区上的位图索引。在我

22、们的示例中,这些将是 1999 年 Q1 和 Q2 的分区。如之前的步骤所示,我们再次使用一个隐式 Oracle Data Integrator 游标实施该步骤。对于Command on Source选项卡,我们结合使用 SQL 和 Oracle Data Integrator 替 换 API 方法检索插入到临时表中的不同 time_id。根据这些 time_id,我们可以确定目标表中与其 相关的分区。odiRef.getTable (L,INT_NAME,W) 替换 API 方法将为我们检索临时表。在Command on Target窗口中,我们将指定语法以禁用目标表上的索引分区。在接下来的

23、几个步骤中,我们会将记录插入目标表中、重新启用外键约束、使位图索引可重用并禁用 跟踪。有关这些步骤的详细信息,我已经导出了该 KM。(本文篇首提供了一个下载 IKM 的链接,其 中提供了有关如何将其导入 Oracle Data Integrator 的说明。)请注意,在实际的数据仓库应用场合中,我们需要向 IKM 多添加几个步骤,如收集目标表的统计 信息、处理和回收约束违规、执行代理键查找等。创建接口接口是一个 Oracle Data Integrator 对象,支持加载其中数据转换自一个或多个源数据存储的 目标数据存储(Oracle Data Integrator 代表某个表)。Oracle

24、 Warehouse Builder 中的 相关对象是映射。然而,由于 KM 可重用,创建 Oracle Data Integrator 接口的速度要比开发 Oracle Warehouse Builder 映射快很多。创建接口之前,我们需要再导入两个 KM:一个用于从源系统 (LKM) 提取数据,另一个用于检查 约束违规。我们的接口中二者均需要。要导入 KM,需登录 Designer,单击Projects选项卡并展开Knowledge Modules。右键单击Loading (LKM)并选择Import Knowledge Modules。浏览至 Import Export 文件夹 (ora

25、clediimpexp) 并选择LKM SQL to Oracle。单击OK。接下来,导入 CKM。同样,按照上述步骤进行,只是这次选择CKM Oracle。单击OK。现在,我们已做好创建接口的准备。展开 EDW 项目,也是第一个文件夹。右键单击Interfaces并选择Insert Interface。根据最佳实践指南,接口的命名规则是 Int. 。我们将该接口命名为 Int.SALES FACT LOAD。还需在 下拉菜单中将Optimization Context设置为Development。切换至 Diagram 选项卡。在Models选项卡中,将 sales_source 数据存储从

26、 Sales_Source 模型拖放至Sources区域。将 Sales 表从 SH 模型拖放至Target Datastore区域。系统将提示您执行自动映射。单 击Yes确认。接下来,单击Errors按钮确保您的映射中检测不到错误。然后,单击Flow选项卡。在打开的屏幕中,单击SALES_SOURCE数据存储并从LKM Selection下拉菜单中选择LKM SQL to Oracle。接下来,单击Target+Staging Area。从IKM Selection下 拉菜单中选择我们的IKM Oracle Append (Disable FKs & Indexes)。在屏 幕底部的Opti

27、on区域中,突出显示Trace Option并将其设 置为Yes。这将改写跟踪的默认值,因此,在执行接口期间将启用跟踪。然后,单击Controls选项卡,从Select your KM下拉菜单 中选择CKM Oracle。现在,我们可以运行接口并测试 KM 了。单击Execute按钮,在显示的弹出菜单 中选择Development作为 Context。最后,单击OK。为了验证接口的执行状态,需要登录 Oracle Data Integrator Operator 模块。在 Operator 模块 中,我们可以全方位地详细查看执行统计信息和错误。例如,在以下的执行统计信息中,我们可以看 到执行时间最长的步骤是 Enable FK constraints。该步骤用了六秒钟。我们还可以看到我们将两条 记录插入了临时表,将两条记录插入了事实表。恭喜,您已经成功创建了一个新的 Oracle Data Integrator IKM。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1