首页 新闻 会员 周边

关于SSIS 的获得数据的问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2012-05-25 12:41

目前我有个需求:从ERP 的几个表获得每日更新的数据,然后把数据导出到csv 文件内。

ERP的数据库是ORACLE 。

我目前实行的情况: 建立数据源,能够从ERP 数据库内 几个表取得数据到我的本地MS SQL 数据库表内,然后可以把本地表数据导出到CSV 文件内。

存在的疑问:

1. 怎么实行第一次获取全部数据。

2.以后每天SSIS包执行的时候,只是更新已经有的数据或者插入没有的数据,并且把变化(更新或者插入)的数据导出到CSV文件内。

我应该怎么做那?

问题补充:

怎么增加一个记录表,来记录每次导入导出的数据记录数和操作日期

figofeng的主页 figofeng | 初学一级 | 园豆:5
提问于:2012-05-24 10:30
< >
分享
所有回答(2)
0

1、第一次导入应该没有问题。

2、有几个思路:

(1)SSIS 中有模糊查找(Fuzzy lookup),可以满足你的需求

(2)可以使用CDC或更改跟踪(http://www.cnblogs.com/downmoon/archive/2012/04/10/2439462.html

(3)可以直接在SSIS中使用Merge语法(http://www.cnblogs.com/downmoon/archive/2010/10/17/1853833.html

邀月 | 园豆:25475 (高人七级) | 2012-05-24 13:43

目前我想这样操作,在数据库内做一个表格,记录SSIS 包执行时间,然后在 取得数据源的时候,使用执行SQL 任务取得这个时间,赋值给一个变量,在OLE 数据源定义的时候 使用SQL COMMAND 方式,在SQL 语句里面增加WHERE  XXX.XXX > 变量 ,就是获得时间晚于SSIS 包执行时间的数据。

但是目前的问题是,我的SQL 任务执行后,赋值给一个包变量,但是在OLE 数据源 的SQL 语句里面怎么使用引用这个变量? 是使用SQL COMMAND 方式 还是 SQL COMMAND FROM VARIABLE

支持(0) 反对(0) figofeng | 园豆:5 (初学一级) | 2012-05-24 16:07

我想问一下  megre  into  A

using  B   on .....

这个B表是如何从数据流的目标表中使用的?  就是如何在megre 引用从源数据表过来的数据?

 

谢谢!

支持(0) 反对(0) 839 | 园豆:172 (初学一级) | 2014-09-03 11:17
0

1. 怎么实行第一次获取全部数据:

--可以通过SSIS或者连接服务器直接从数据源倒入数据,生成与数据源同构的表结构。

2.以后每天SSIS包执行的时候,只是更新已经有的数据或者插入没有的数据,并且把变化(更新或者插入)的数据导出到CSV文件内。

--如果数据源表有数据更新的时间戳字段input_time,可以根据时间戳和关键字段进行增量倒入更新;

如果数据源有跟踪数据变化的translog 记录表,也可以根据translog记录来更新目的表。

--每次从数据源导出的数据可以放在本地临时表,每次导完,可用将临时表数据倒入CSV文件导出。

3。怎么增加一个记录表,来记录每次导入导出的数据记录数和操作日期

--创建log记录表,除了自增ID字段外,还包括要记录的数据量字段和时间字段(如果能加个状态记录更安全),在SSIS执行过程中添加一个记录操作,将临时表数量和当前操作时间记录log记录表中。   此方法同样可用于ssis log,便于故障分析。

如果用 Transact-SQL,还可以用@@ROWCOUNT的值返回数据记录数。

Vivydata | 园豆:202 (菜鸟二级) | 2012-05-24 14:11

目前我想这样操作,在数据库内做一个表格,记录SSIS 包执行时间,然后在 取得数据源的时候,使用执行SQL 任务取得这个时间,赋值给一个变量,在OLE 数据源定义的时候 使用SQL COMMAND 方式,在SQL 语句里面增加WHERE  XXX.XXX > 变量 ,就是获得时间晚于SSIS 包执行时间的数据。

但是目前的问题是,我的SQL 任务执行后,赋值给一个包变量,但是在OLE 数据源 的SQL 语句里面怎么使用引用这个变量? 是使用SQL COMMAND 方式 还是 SQL COMMAND FROM VARIABLE ?

支持(0) 反对(0) figofeng | 园豆:5 (初学一级) | 2012-05-24 15:37

@figofeng:  ole db 源 的 sql command text 内怎么使用变量作为参数啊

源数据库是ORACLE 的

支持(0) 反对(0) figofeng | 园豆:5 (初学一级) | 2012-05-24 16:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册