本文介绍如何将表数据通过ODI导成CSV文件。

一、源表准备工作

1.1 定义物理体系结构

  • 定义New Data Server
    ODI->Topology->Physical Architecture,右击Oracle,选择”New Data Server“,在Definition对话框中定义一个名称,输入Oracle实例名称以及用户信息,保存。
    Exporting RDBMS Table To A Flat File(CSV)_第1张图片
    接着在JDBC对话框中,选择JDBC驱动以及输入jdbc连接URL,可以通过点击“Test Connection”测试,测试成功后保存。
    Exporting RDBMS Table To A Flat File(CSV)_第2张图片
  • 创建New Physical Schema
    右击“Data Server”,选择“New Physical Sever”,在Definition对话框中选择对应的schema,其他使用默认值即可,保存。
    Exporting RDBMS Table To A Flat File(CSV)_第3张图片

    1.2 定义逻辑体系结构

    ODI->Topology->Logical Architecture,右击Oracle,选择”New Logical Schema“,定义一个名称,选择上述创建的Physical Schema,保存。
    Exporting RDBMS Table To A Flat File(CSV)

    1.3 定义Oracle表模型

  • 定义模型文件夹
    ODI Studio->Designer,选择“New Model Folder”,随便定义个名称,点击保存。
    Exporting RDBMS Table To A Flat File(CSV)
  • 定义模型
    右击新建的模型文件夹,选择“New Model”,在Definition对话框中随便定义名称,Technology选择“Oracle”,逻辑方案选择上述创建的,点击“保存”。
    Exporting RDBMS Table To A Flat File(CSV)_第4张图片
    模型定义完成后,点击上面的“逆向工程”,同步表结构。

    二、目标文件准备工作

    2.1 定义物理体系结构

  • 定义New Data Server
    ODI Studio->Topology->Physical Architecture->File,打开FILE_GENERIC,在Definition对话框中输入相关参数如下图:
    Exporting RDBMS Table To A Flat File(CSV)_第5张图片
    输入完成后,点击左上方的“保存”,接着点击“Test Connection”测试下是否可以连接。
    JDBC对话框,点击JDBC Driver后面的“查找”图标,选择“ODI File JDBC Driver”。点击JDBC URL,选择“jdbc:snps:dbfile”,根据文件的编码格式加入相关参数值即可。如下图所示:
    Exporting RDBMS Table To A Flat File(CSV)_第6张图片
  • 定义物理方案
    接着创建物理方案。右击“FILE_GENERIC”,选择“New Physical Schema”,如下图:
    Exporting RDBMS Table To A Flat File(CSV)_第7张图片
    在Definition对话框中输入方案的目录(文本文件所在的目录)和工作目录(可以和方案目录相同),目录实际上指的是数据文件的存放路径,点击“保存”。

    2.2 定义逻辑体系结构

    ODI Studio->Topology->Logical Architecture->File,选择“New Logical Schema”,如下图:
    Exporting RDBMS Table To A Flat File(CSV)

    2.3 定义文件模型

  • 定义模型文件夹
    ODI Studio->Designer,选择“New Model Folder”,随便定义个名称,点击保存。
    Exporting RDBMS Table To A Flat File(CSV)
  • 定义模型
    右击新建的模型文件夹,选择“New Model”,在Definition对话框中随便定义名称,Technology选择“File”,逻辑方案选择上述创建的,点击“保存”。
    Exporting RDBMS Table To A Flat File(CSV)_第8张图片
  • 定义New Datastore
    右击模型名称,选择“New Datastore”,随便定义名称,Datastore Type选择Table,输入源数据文件名称,点击保存。
    Exporting RDBMS Table To A Flat File(CSV)_第9张图片
    接着在File对话框中,设置字段与记录的分隔符,如下图:
    Exporting RDBMS Table To A Flat File(CSV)_第10张图片
    --字段分隔符用的是逗号,十六进制为\002c;
    --文本分隔符使用的是双引号;
    最后在属性对话框中,通过逆向工程导入表结构。导入的数据类型和字段名称需要进行调整。这里直接手工添加字段。
    Exporting RDBMS Table To A Flat File(CSV)_第11张图片

    三、映射

    3.1 创建项目设计工程

    ODI->Designer->Projects->New Project,为工程定义个名称,保存。
    Exporting RDBMS Table To A Flat File(CSV)_第12张图片

    3.2 导入知识模块

    右击工程名称下面的Knowledge Modules,选择Import Knowledge Modules,这里的模块/u01/oracle/Middleware/Oracle_Home/odi/sdk/xml-reference路径下,这里选择所有的模块。
    Exporting RDBMS Table To A Flat File(CSV)_第13张图片

    3.3 创建映射

    Designer > Projects > O_TO_CSV>First Folder右击Mappings, 选择New Mapping,定义一个名称,接着将源表和目标文件拖到映射里面,并通过字段名称进行自动关联。
    Exporting RDBMS Table To A Flat File(CSV)_第14张图片
    点击在逻辑结构里点击目标文件,将Target的Integration Type设置为Incremental Update(默认为Append),保存。
    Exporting RDBMS Table To A Flat File(CSV)_第15张图片
    在物理结构里,点击Default,将Loading Knowledge Module设置为LKM SQL to File.GLOBAL保存。
    Exporting RDBMS Table To A Flat File(CSV)_第16张图片

    四、执行映射

    右击映射名称,选择RUN,如图:
    Exporting RDBMS Table To A Flat File(CSV)_第17张图片
    运行过程可以在Operation->Session里看到,如图:
    Exporting RDBMS Table To A Flat File(CSV)_第18张图片

注意事项:

1、如果存在日期类型的字段,在文件的属性里必须指定日期格式,比如“yyyy-mm-dd hh24:mi:ss”。