外部表是以关系格式表示平面文件数据的表。创建和定义外部表时,外部表的元数据将保存到 Warehouse Builder 信息库中。可以在映射中使用这些外部表定义来设计如何将平面文件源中的数据移动和转换到目标。
本课程将讨论以下主题:
![]() |
概述 | |
![]() |
前提条件 | |
![]() |
平面文件抽样 | |
![]() |
||
![]() |
生成和部署 CUSTOMERS_EXT 外部表 | |
![]() |
总结 | |
完成本课程大约需要 45 分钟。
将鼠标移到该图标上可以显示所有屏幕截图。还可以将鼠标移到特定的图标上来查看相关的屏幕截图。
在本课程中,您将学习如何使用 Oracle Warehouse Builder 定义外部表。首先,您将对 customer.txt 平面文件定义进行抽样。
为使本课程顺利进行,您需要先完成以下准备工作:
| 1. | 完成了概述课程。 |
| 2. | 完成了登录到 OWB课程 |
| 3. | 完成了导入源元数据课程。 |
| 4. | 完成了定义目标模块课程。 |
| 5. | |
| 6. | 完成了设计 ETL 数据流映射课程。 |
| 7. | 完成了部署目标课程。 |
在本主题中,您首先将对 customers_txt 平面文件进行抽样。
| 1. |
在 OWB10G_DEMO 项目中,右键单击 Files 节点并选择 Create Flat File Module。
|
| 2. | 单击 New Module Wizard:Welcome 页上的 Next。在 New Module Wizard:Name 页上,键入模块名称 FF_MODULE,然后单击 Next。
|
| 3. | 在 New Module Wizard:Connection Information 页上,可以键入一个有效目录路径,也可以使用 Browse 选择目录。 单击 Browse。
|
| 4. | 在 Flat File Directory Chooser 对话框中,选择 C:\OWB-OBE\sourcefiles,或选择您按照第 1 课中的说明将设置文件保存到的路径,然后单击 OK。 单击 New Module Wizard:Connection Information 页中的 Next。
|
| 5. | 显示 New Module Wizard:Location 页。您将创建一个新位置。 To create a new location, click New.In the New Location Dialog type FF_MODULE_LOC as the name for the location.接受默认类型 File System 并单击 OK。
|
| 6. | 将自动选中新创建的位置,单击 Next。
|
| 7. | 显示 New Module Wizard:Finish 页,检查模块汇总信息。选中 Proceed to the Import Metadata Wizard 复选框,然后单击 Finish。
|
| 8. | 单击 Import Metadata Wizard:Welcome 页上的 Next。再次显示 Import Metadata Wizard:Filter Information 页。接受默认选项 All Data Files,然后单击 Next。
|
| 9. | 再次显示 Import Metadata Wizard:Object Selection 页。展开 C:\OWB-OBE\sourcefiles,或者将显示您在第 4 步中选择的路径。从 Available Objects 列表中选择 CUSTOMERS.TXT,并使用 >(单大于号)将其移动到右侧的 Selected Objects 列表,然后单击 Next。
|
| 10. | 再次显示 Import Metadata Wizard:Summary and Import 页。选择 customers_txt 记录(如果尚未选择),然后单击 Sample。 在该页上,您将看到文件定义 (customers_txt) 前面有个红色球形指示器。红色球型指示器表示没有可用于这些文件的元数据。导入之前,Warehouse Builder 需要知道这些文件的结构。通过该抽样过程,系统收集到了结构信息。 您将学习如何对 customers.txt 文件进行抽样。
|
| 11. | 显示 Flat File Sample Wizard:Name 页。在该页上指定文件的名称以及要抽样的行数。Warehouse Builder 提供了大量可用于读取数据的字符集。 将默认抽样文件 customer_txt 的名称重命名为 CUSTOMERS。这是 Warehouse Builder 在导入后将引用文件的名称。接受默认抽样行数 200,然后单击 Next。
|
| 12. | 显示 Flat File Sample Wizard:Record Organization 页。使用 Record Organization 页指定抽样文件中的记录组织方式。 接受默认选项 Records delimited by carriage return (<CR>),然后单击 Next。
|
| 13. | 在 Flat file Sample Wizard:File Layout 页中,接受 Skip rows 的默认值 0。该文件是单一记录类型文件的示例,对 Record Type 选择 Single,然后单击 Next。 在此页中您可以指定跳过的行数。Warehouse Builder 还支持多文件记录类型。
|
| 14. | 显示 Flat File Sample Wizard:File Format 页。在此页上指定文件结构的格式。系统支持固定长度的文件和字符分隔文件。 接受 File Format 的默认选项 Delimited,逗号 (,) 是括在双引号 (" ") 中的分隔符。
|
| 15. | 显示 Flat File Sample Wizard:Field Properties 页。 如果平面文件的第一个记录是标题,则可以使用第一个记录中的值作为字段名称。选中 Use the first record as the field names 复选框。 注意,某些数据类型现在已经发生了变化。没有这些列名,有些值实际上是数值型的。单击 Next。
|
| 16. | 在对文件 customer.txt 进行抽样后检查详细的汇总信息。单击 Flat File Sample Wizard:Summary 页上的 Finish。
|
| 17. | 再次显示 Import Metadata Wizard:Summary and Import 页。该向导现在已经完成了 CUSTOMERS 文件的抽样过程(识别结构)- 由绿色球形指示器表示。 单击 Import Metadata Wizard:Summary and Import 上的 Finish 完成导入。
|
| 18. | Importing Progress 对话框指示导入进度。您将看到已经将平面文件中的元数据导入到 FF_MODULE 平面文件模块中。
|
执行下列步骤后,您将在 STG 目标模块中创建了 CUSTOMERS_EXT 外部表。
| 1. |
折叠 Files 节点,依次展开 Databases 节点、Oracle 节点和 STG 节点。您将在 STG 模块中创建外部表。 右键单击 External Tables 节点并选择 Create External Table。
|
| 2. | 单击 New External Table Wizard:Welcome 页上的 Next。在 New External Table Wizard:Name 页上,键入外部表名称 CUSTOMERS_EXT,然后单击 Next。
|
| 3. | 在 New External Table Wizard:File Selection 页的 FF_MODULE 中,选择 CUSTOMERS 平面文件定义。单击 Next。
|
| 4. | 在该页上,您将指定要在运行时使用的平面文件数据文件的部署位置。在 New External Table Wizard:Locations 页中,选择 FF_MODULE_LOC。单击 Next。
|
| 5. | New External Table Wizard:Finish 页显示外部表向导的结果。单击 Finish。您将在 OWB 客户端中看到 CUSTOMERS_EXT 外部表。
|
在本主题中,您将验证、生成和部署创建的外部表 CUSTOMERS_EXT。
| 1. | 验证外部表定义: 依次展开 STG 目标模块和 External Tables。右键单击 CUSTOMERS_EXT 外部表并选择 Validate。
|
| 2. | 生成 CUSTOMERS_EXT 外部表,Validation Progress 窗口将显示验证进度,Validation Results 窗口将显示验证结果。单击 Close 关闭 Validation Results 窗口。 注意:确保验证成功,并且未显示任何错误。
|
| 3. | 运行时,外部表定义在数据库中必须有一个目录定义才能访问平面文件。此 Directory 对象是在位置环境中定义的连接器的物化。验证外部表定义后,OWB 将可以方便地填充连接器。
|
| 4. | 您可以配置外部表的属性。 右键单击 CUSTOMERS_EXT 外部表并选择 Configure。随即弹出 Configuration Properties。
|
| 5. | 在 Configuration Properties 中,通过 Access Specification 属性可以指定错误文件名、丢弃的文件和日志文件名称。这对于调试很有用。 在 Configuration Properties 的 Data Files 属性中,展开 DATAFILE1,您将看到数据文件名称,并可以更改此名称。对于本示例,您将使用默认值。关闭 Configuration Properties 窗口。 默认情况下,OWB 将向引用您抽样的平面文件名 (customers.txt) 的外部表中添加一个数据文件。
|
| 6. |
在 OWB 客户端中,选择 Project > Deployment Manager。
|
| 7. | 从 Connection 下拉列表中,选择 OBE_RUNTIME_CONNECTION 运行时信息库连接,然后单击 OK 或使用在第 7 课中创建的运行时信息库连接。
|
| 8. | Connection Information 窗口打开。提供连接信息。您只需输入口令,键入 connect_user 或使用在第 7 课中提供的同一口令。
|
| 9. | OWB Deployment Manager 打开。展开 Target_LOC,展开 Connectors,然后选择 TARGET_LOC_FF_MODULE_LOC。
|
| 10. | 依次展开目标模块 STG 和 External Tables 节点。按住 CTRL 并选择外部表定义 CUSTOMERS_EXT。单击 Default Action。 单击 Default Action 按钮将 Deploy Action 从 None 更改为 Create。
|
| 11. | 单击工具栏上的 Generate/Deploy 按钮。
|
| 12. | 显示位置 FF_MODULE_LOC 的 Location Registration。在本示例中,Username 和 Password 是可选的。在 Host Name 域中输入 localhost 或 <计算机名称>。在 Root Path 域中,键入 C:\OWB-OBE\sourcefiles\,或键入将设置文件保存到的路径(在结尾包含反斜杠),然后单击 OK。
|
| 13. | 弹出 Confirm Commit 对话框。在部署前单击 Commit 提交更改。
|
| 14. | 生成部署规范后,Pre Deployment generation results 窗口打开。
|
| 15. | 在 Pre Deployment Generation Results 窗口上,选择 CUSTOMERS_EXT 外部表定义。选择底部的 Script 选项卡,选择底部的 CUSTOMERS_EXT 记录,然后单击 View Code。该脚本将显示一个完全定义的外部表。
|
| 16. | 在 Pre Deployment generation results 窗口中,单击 Deploy。 显示 Deploy results 窗口,指示部署成功。单击 OK 关闭 Deployment results 窗口。
|
| 17. | 成功部署后,OWB Deployment Manager Deploy Status 列将显示 Success。关闭 OWB Deployment Manager。
|
| 18. | 检查外部表定义能否正常工作:登录到 SQL Plus。 单击开始 > 程序 > Oracle [Oracle_Home] > Application Development > SQL Plus。在 Log on 窗口中提供连接信息。在 User Name 和 Password 域中,键入 TARGET_SCHEMA 或 <您在第 7 课中创建的目标模式名称和口令>。在 Host String 域中,键入 obeowb 或 <您的数据库服务名称>。
|
| 19. | 从 SQL 提示符下使用 DESC CUSTOMERS_EXT 描述表的结构。
|
| 20. | 在 SQL 提示符下运行 select 语句 SELECT statement SELECT * from CUSTOMERS_EXT where rownum < 5;(使用分号终止 SQL 语句) 要关闭 SQL Plus,在 SQL 提示符下键入 exit。
|
外部表为 Oracle Warehouse builder 用户提供了巨大的好处。通过使用外部表,Warehouse Builder 开发人员不再需要创建平面文件临时表。这样,外部表就减少了加载平面文件数据的处理时间,而且需要的额外存储空间也比平面文件临时表少。外部表可以与关系表和其他外部表连接。从而在平面文件和关系表之间实现了异类连接。此外,由于消除了额外的步骤,因此 PL/SQL 转换与 SQL 加载程序转换相比更加灵活,从而在大多数情况下将获得巨大的性能提升。