匹配和合并记录
匹配和合并记录
本教程的目标是将一组客户记录匹配并合并到一个客户主表之中。
注:本教程中的屏幕截图可能与您的略有不同,这取决于您完成本 OBE 系列中其他教程的顺序。您可以忽略屏幕上出现的无关项目。
大约 1 个小时
注: 本教程及其设置脚本仅支持 OWB 11g 第 1 版。该 Oracle 示例教程的早期版本可用于 OWB 10g 第 1 版和第 2 版。
本教程包括下列主题:
将鼠标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
Warehouse Builder 为核心产品中的 ETL 空间提供记录匹配和合并功能。通过匹配与合并,您可以使用业务规则检测两个或多个记录之间可能的匹配。然后,可将这些匹配的记录合并到一个主记录之中。为了确保对这些变化进行适当的审计和跟踪,可用一个交叉引用表来跟踪到主记录的所有合并。
在本教程中,您将映射多个客户记录集并将它们合并到一个客户主表中。这样做的目的是为了加载 MAILMERGE_CUSTOMERS_STG 表,以便确定下次营销活动期间的目标客户。
应删除重复项或可能的重复项。另外,共享同一个地址的多个客户应只接收信息一次。
返回主题列表
开始本教程之前,您应该:
返回主题列表
第一步是确定要合并的源数据。执行下列步骤,创建一个匹配合并映射:
| 1. |
假设您是以 OWB 用户身份登录的,在主 Warehouse Builder 控制台中,展开 HANDSON > Databases > Oracle > DQ_TGT。右键单击 Mappings,选择 New。
|
| 2. |
在 Name 域中输入 CUST_MM_MAP,然后单击 OK。
|
| 3. |
映射编辑器将打开。在左上角的 Explorer 面板中,展开 Databases > Oracle > DQ_SRC > Tables。将 CUST_SYS1 拖放到映射画布中。
|
| 4. |
将 CUST_SYS2 拖放到映射画布中。
|
| 5. |
单击每个表的最大化图标 以最大化运算符,然后单击工具栏内的 Auto-Layout 。
|
| 6. |
在左下角的 Palette 中,将 SET OPERATION 运算符拖动到两个源表的右侧。
|
| 7. |
从 CUST_SYS1.INOUTGRP1 引出一条到 SET_OPERATION.INGRP1 的直线。
|
| 8. |
折叠 SET_OPERATION.INGRP1 并最大化 SET_OPERATION 运算符。
|
| 9. |
从 CUST_SYS2.INOUTGRP1 引出一条到 SET_OPERATION.INGRP2 的直线。
|
| 10. |
将显示结果。折叠 SET_OPERATION.INGRP2。
|
返回主题列表
现在,您可以创建一个匹配合并运算符以确定数据评估的标准。执行以下步骤:
| 1. |
将 Match-Merge 运算符从 Palette 拖放到 SET_OPERATION 的右侧。
|
| 2. |
匹配合并向导启动。在 Welcome 页面上,单击 Next。
|
| 3. |
接受默认的名称并单击 Next。
|
| 4. |
匹配合并运算符有 3 个组:
| INGRP1 |
包含输入属性。 |
| MERGE |
包含合并的记录(通常这意味着记录比 INGRP1 的少)。 |
| XREF |
交叉引用组包含原始数据集和合并的数据集之间的链接。这是在执行合并时所使用的跟踪机制。 |
单击 Next。
|
| 5. |
展开 SET_OPERATION 并选择 OUTGRP1,然后选择 > 将 OUTGRP1 下的所有属性移动到 Mapped Attributes 下的 INGRP1 属性列表中。
|
| 6. |
单击 Next。
|
| 7. |
检查属性数据类型和长度。一般情况下,如果您通过向导完成,则不必改动任何值,因为 Warehouse Builder 会根据输出属性预先填充它们。单击 Next。
|
| 8. |
Merge Output 选择在 MERGE 组(清理的组)中显示的属性。选择下列 Source Attributes:ID、FIRST_NAME、LAST_NAME、STREET_ADDRESS、ZIP_CODE、CITY、STATE 和 COUNTRY。然后单击 >,将它们移到 Output Attributes 列表中。然后单击 Next。
|
| 9. |
按住 Shift 键选择从 ID 到 MM_ID 之间的属性,并单击 > 将选中的属性移到右侧。MM_ID 将成为合并的记录与原始记录之间的链接。这就是具备标识符 ID 的原始记录“合并后”的记录。
|
| 10. |
单击 Next。
|
| 11. |
匹配站用于识别可能的匹配。匹配合并站对数据集内可能的匹配的数量进行了限制,从而提高了匹配算法的性能。在本示例中,您将 CITY、STATE 和 COUNTRY 用作一个匹配站,这意味着只有与这些属性相匹配的记录才是合并候选项。从 Available Attributes 列表中选择 INGRP1.CITY、INGRP1.STATE 和 INGRP1.COUNTRY,单击 > 将它们移到右侧。
|
| 12. |
单击 Next。
|
| 13. |
单击 Add,在向导中添加新的匹配规则。
|
| 14. |
该匹配规则决定您如何确定一组记录为匹配。将名称改为 MA_NAME,然后选择 Person 作为 Rule Type。
|
| 15. |
在向导底部面板中的属性列表中,选择 FIRST_NAME 和 LAST_NAME 并单击 >。对于 Roles,为 FIRST_NAME 选择 First name Standardized,为 LAST_NAME 选择 Last Name。然后单击 Details 选项卡。
|
| 16. |
对于 Rule Options,在 First Name 下,选中 Match on substrings 和 Similarity score。利用 Edit Distance 算法将 Similarity 分数改为 90。
您已完成 MA_NAME 匹配规则的定义。现在您还需要再定义一个规则。在顶部窗口中,单击 Add。
|
| 17. |
将名称改为 MA_ADDRESS,选择 Address 作为 Rule Type。
|
| 18. |
在向导底部面板中的属性列表中,选择 STREET_ADDRESS、CITY 和 STATE,然后单击 >。为 Roles 分别选择 Primary Address、City 和 State 。然后单击 Details 选项卡。
|
| 19. |
确保已选中 Address Line Similarity,相似性设为 90,算法为 Edit Distance。然后单击 Next。
|
| 20. |
单击 Add,在向导中添加一个新的合并规则。
|
| 21. |
将名称改为 ME_ID,并选择 Min Max Record 作为 Rule Type。
选择 Rule Type 后,Attribute 字段将包含 RECORD,Attributes 列表出现在底部窗格中。
|
| 22. |
您希望指定记录的合并方式。可以按属性逐个定义合并规则,也可以一次性为一组属性(称作记录)定义合并规则。选择 ID 并单击 >。然后单击 Details 选项卡。
|
| 23. |
在 Selecting attribute 域中选择 ID,在 Attribute relation 域中选择 Minimum。这些值决定要合并的匹配记录。然后单击 Next。
|
| 24. |
如果展开匹配合并运算符,您可以看到输出。单击 Finish。
匹配合并运算符已创建。
|
返回主题列表
在定义了匹配合并标准之后,您还需要定义执行匹配合并时数据的去向。执行下列步骤,将合并后的输出映射到目标表:
| 1. |
在 Mapping Editor 的 Explorer 面板中,展开 Oracle > DQ_TGT > Tables。将 MAILMERGE_CUSTOMERS_STG 表拖放到 MATCHMERGE 运算符的右侧。
|
| 2. |
从 MERGE 组标题引出一条到 MAILMERGE_CUSTOMERS_STG 运算符的 INOUTGRP1 的直线,从而将 MERGE 组映射到 MAILMERGE_CUSTOMERS_STG 表运算符。
|
| 3. |
选择 Match by name of source and target attributes,然后单击 Go。
|
| 4. |
系统显示匹配的属性的列表。单击 OK。
|
| 5. |
将 CLEANUP_CUSTOMERS_STG 表拖放到 MATCHMERGE 运算符的右侧。
|
| 6. |
从 XREF 组标题引出一条到 CLEANUP_CUSTOMERS_STG 运算符的 INOUTGRP1 的直线,从而将 XREF 组映射到 CLEANUP_CUSTOMERS_STG 表运算符。
|
| 7. |
选择 Match by name of source and target attributes,然后单击 Go。
|
| 8. |
系统显示匹配的属性的列表。单击 OK。
|
| 9. |
验证您的映射。从菜单中选择 Mapping > Validate。
|
| 10. |
Generation Results 窗口中应显示一条验证成功的消息。关闭 Mapping Editor。
|
| 11. |
保存您的工作。选择 Design > Save All,然后单击 Yes。
|
返回主题列表
现在您已为生成匹配合并映射的代码并将其部署到数据库做好了准备。执行以下步骤:
| 1. |
在 Design Center 中,选择 Tools > Control Center Manager。
|
| 2. |
展开 DQ_TGT_LOCATION,然后展开并突出显示 DQ_TGT,然后单击 Default Actions 按钮设置部署的对象。
|
| 3. |
验证将要创建的对象。选择 File > Deploy > To Control Center。
|
| 4. |
在作业面板中监视部署作业。您将看到三个彼此分离的阶段(当图标改变时)。作业成功完成时,您将看到绿色的对号。
注:您可能会收到一条消息,指明该位置未注册。如果您收到了该消息,确保主机名设置为 localhost 而非计算机名,然后单击 Test Connection。然后单击 OK。
|
返回主题列表
现在您可以运行该映射以真正地将数据合并到您的表中。执行以下步骤:
| 1. |
展开 DQ_TGT 下面的 Mapping 节点,右键单击 CUST_MM_MAP 并选择 Start。
|
| 2. |
在作业面板中监视映射的执行情况。当您收到执行成功的消息之后,双击 Control Center Jobs 面板中的 CUST_MM_MAP 作业。
|
| 3. |
单击 Execution Results 选项卡。
|
| 4. |
注意,有 280 个记录插入到清理表中,而只有 185 个记录被识别为邮件合并客户。这说明,280 个候选地址中有 95 个是重复的或无效的 (34%)。检查完毕后,关闭该对话框。然后关闭 Control Center Manager。
|
返回主题列表
您可以查看合并后的输出。执行以下步骤:
| 1. |
在 Design Center 中的 DQ_TGT > Tables 下,右键单击 CLEANUP_CUSTOMERS_STG 表并选择 Data...。
|
| 2. |
您的数据看上去可能稍有不同,您会发现 MM_ID 重新指向合并后的记录,但仍保持着原始记录和新记录之间的链接,从而确保了您清理的合规性。
|
返回主题列表
在本教程中,您学习了如何:
 |
创建匹配合并映射
|
 |
使用匹配合并向导创建匹配合并运算符
|
 |
映射合并后的输出
|
 |
部署、执行和查看合并后的输出 |
返回主题列表
|