Loading Data From File To Table By ODI 12c
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Loading Data From File To Table By ODI 12c相关的知识,希望对你有一定的参考价值。
本文主要介绍如何将文件里的数据通过ODI导入到表中。
一、源文件准备工作
源文件是一个文本文件,存放在/home/oracle/fsource目录中。
[[email protected] ~]$ la /home/oracle/fsource/
-rw-rw-rw- 1 oracle oinstall 4.2M Jan 29 10:00 exam_score.txt
1.1 定义源物理体系结构
- 定义New Data Server
右击ODI Studio->Topology->Physical Architecture->File,打开FILE_GENERIC,在Definition对话框中输入相关参数如下图:
输入完成后,点击左上方的“保存”,接着点击“Test Connection”测试下是否可以连接。
JDBC对话框,点击JDBC Driver后面的“查找”图标,选择“ODI File JDBC Driver”。点击JDBC URL,选择“jdbc:snps:dbfile”,根据文件的编码格式加入相关参数值即可。如下图所示:
其中的ENCODING=UTF-8指文本文件的编码格式。 - 定义物理方案
接着创建物理方案。右击“FILE_GENERIC”,选择“New Physical Schema”,如下图:
在Definition对话框中输入方案的目录(文本文件所在的目录)和工作目录(可以和方案目录相同),目录实际上指的是数据文件的存放路径,点击“保存”。1.2 定义源逻辑体系结构
右击ODI Studio->Topology->Logical Architecture->File,选择“New Logical Schema”,如下图:
随便定义个名称,在Definition对话框中选择上述创建物理方案,保存。
1.3 定义源设计模型 - 定义模型文件夹
ODI Studio->Designer,选择“New Model Folder”,随便定义个名称,点击保存。 - 定义模型
右击新建的模型文件夹,选择“New Model”,在Definition对话框中随便定义名称,Technology选择“File”,逻辑方案选择上述创建的,点击“保存”。 - 定义New Datastore
右击模型名称,选择“New Datastore”,随便定义名称,Datastore Type选择Table,输入源数据文件名称,点击保存。
接着在File对话框中,设置字段与记录的分隔符,如下图:
最后在属性对话框中,通过逆向工程导入表结构。导入的数据类型和字段名称需要进行调整,也可以直接手工添加字段。
表结构导入完成后,可以右击Datastore名称,选择“View Data”预览表数据。二、目标表准备工作
首先在目标库上创建对应的表,其次依次定义物理体系结构以及逻辑体系结构。
2.1 定义物理体系结构
- 创建New Data Server
ODI->Topology->Physical Architecture,右击Oracle,选择”New Data Server“,在Definition对话框中定义一个名称,输入Oracle实例名称以及用户信息,保存。
接着在JDBC对话框中,选择JDBC驱动以及输入jdbc连接URL,可以通过点击“Test Connection”测试,测试成功后保存。 - 创建New Physical Schema
右击“Data Server”,选择“New Physical Sever”,在Definition对话框中选择对应的schema,其他使用默认值即可,保存。
2.2 定义逻辑体系结构
ODI->Topology->Logical Architecture,右击Oracle,选择”New Logical Schema“,定义一个名称,选择上述创建的Physical Schema,保存。
2.3 定义目标设计模型
ODI->Designer->Models->New Model,定义名称,Technology选择Oracle,Logical Schema选择对应的名称,点击保存。
接着点击Reverse Engineer,将表结构同步过来。这里除了目标表以为,rhnuser用户下的所有表结构都会同步一份。三、映射
3.1 创建设计工程
ODI->Designer->Projects->New Project,为工程定义个名称,保存。
3.2 导入知识模块
右击工程名称下面的Knowledge Modules,选择Import Knowledge Modules,这里的模块/u01/app/oracle/Middleware/odi/sdk/xml-reference路径下,这里选择所有的模块。
3.3 创建映射
Designer > Projects > IMP_F_TBE>First Folder右击Mappings, 选择New Mapping,定义一个名称,接着将源表和目标表拖到映射里面,并通过字段名称进行自动关联。
点击在逻辑结构里点击目标表,将Target的Integration Type设置为Incremental Update(默认为Append),保存。
在物理结构里,点击Default,将Loading Knowledge Module设置为LKM SQL to SQL (Built-In).GLOBAL保存。四、执行映射
右击映射名称,选择RUN,如图:
运行过程可以在Operation->Session里看到,如图:注意事项:
1、目标表中必须存在主键;
2、如果数据库实例和ODI不在一台机器上,源数据文件必须在各个服务器上的相同位置。因为在加载数据之前,会在数据库实例中定义一个目录指定文件的位置。如果文件不在同一位置,会出现下图中的报错:
参考文献:
1、ODI 12C加载平面文件到oracle数据库
2、ODI 12c - File to Table
以上是关于Loading Data From File To Table By ODI 12c的主要内容,如果未能解决你的问题,请参考以下文章
Loading Data From Oracle To Hive By ODI 12c
Loading Data Into Hive From File By ODI 12c
mmdet3d读入waymo dataset:from file to input tensor
mmdet3d读入waymo dataset:from file to input tensor