You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

咨询ODI 12c导出CSV文件步骤:含按<当前日期筛选DB表数据需求

ODI 12c 导出数据至CSV文件操作指南

我来帮你梳理ODI 12c导出CSV的两种场景操作——先讲通用的无过滤导出步骤,再一步步拆解带当前日期条件的具体流程,都是实际项目里常用的操作:

一、通用导出步骤(无过滤条件)

这些是不管导出什么数据都要走的基础流程:

    1. 配置源数据库的连接信息
      先在ODI拓扑管理器里,给你的源数据库(Oracle/MySQL/SQL Server等)创建数据服务器,填好连接串、用户名密码;接着创建对应的物理架构,指定要访问的数据库模式;最后创建逻辑架构,把它关联到物理架构,并分配到对应的上下文。
    1. 配置CSV目标的文件服务器
      CSV属于文件系统,所以要创建文件类型的数据服务器,指定CSV文件要存放的目录(本地路径或者共享网络目录,记得要保证ODI代理有读写权限!);同样创建对应的物理架构和逻辑架构,关联好上下文。
    1. 创建映射(Mapping)
      打开ODI设计器,新建一个Mapping:把源数据库模型里的目标表拖到映射的逻辑图中,再把CSV逻辑架构下的文件(可以直接新建,指定文件名)拖进来作为目标。
    1. 配置CSV文件格式
      选中目标CSV文件,在属性面板里设置:
    • 字段分隔符:一般用逗号,,也可以根据需求改
    • 文本限定符:比如双引号",避免字段里有分隔符导致格式混乱
    • 编码:推荐用UTF-8保证兼容性,特殊场景可以用GBK
    • 勾选"生成表头",方便后续查看数据
    1. 执行并验证
      保存Mapping后,你可以直接在设计器里点击执行按钮测试,或者创建**场景(Scenario)**来执行。执行完成后,去你指定的目录找到CSV文件,打开确认数据是否正确。

二、导出满足当前日期条件数据的具体操作流程

如果要只导出当天的数据,核心是加过滤条件,具体步骤如下:

    1. 确认源表的日期字段
      先通过ODI的逆向工程,把要导出的表导入到源数据库模型里,确认表中有日期类型的字段(比如create_dateupdate_time)。
    1. 新建/复用Mapping
      要么新建一个Mapping,要么在之前的通用Mapping基础上修改。把源表和目标CSV文件都添加到映射中。
    1. 添加当前日期过滤条件
      选中源表,点击"过滤器(Filter)"按钮,添加过滤条件。不同数据库的日期函数略有不同,给你几个常用的:
    • Oracle数据库:TRUNC(orders.create_date) = TRUNC(SYSDATE)
    • MySQL数据库:DATE(orders.create_date) = DATE(NOW())
      如果你想让条件更通用(适配多种数据库),可以用ODI内置变量:TRUNC(orders.create_date) = TRUNC(#{odi_sys_date})

    提示:这里的orders是你的源表名,记得替换成实际表名;create_date替换成你要用来筛选的日期字段。

    1. 配置动态文件名(可选但实用)
      为了避免每天导出的CSV覆盖之前的文件,可以给文件名加上日期后缀。在目标CSV的文件名里设置:daily_data_export_#{odi_sys_date, 'yyyyMMdd'}.csv,这样导出的文件名会自动变成daily_data_export_20240520.csv这种格式。
    1. 预览数据并执行
      先点击Mapping里的"数据预览"按钮,看看过滤后的数据是不是当天的,确认条件生效。没问题的话,创建场景并执行,或者直接运行Mapping。
    1. 自动调度(可选)
      如果需要每天自动导出,去ODI调度管理器里创建一个计划(Schedule),关联刚才的场景,设置每天的执行时间(比如凌晨2点),这样就能自动完成导出任务了。

内容的提问来源于stack exchange,提问作者user2134292

火山引擎 最新活动