首先要做的事情。我对SSIS完全陌生,并试图找出它在ETL方面的潜力,并最终转向SSAS。我有以下情形:SSIS - 使用ODBC SQL执行任务将参数导入要导入的结果集
- 我有一个InterSystems的数据库,我可以通过ADO
.NET
- 我想从这个数据库中提取数据,并通过增量加载使插入到MS SQL连接
我建议的解决方案/目标是:
- 在MS SQL中有存储最后指针读取或日期/时间快照的表。 (在这个阶段不合适)。让我们保持简单并说我们要使用Intersystems数据库中存在的记录ID从此表中获取指针并通过ODBC将其用作参数来读取源数据库,然后插入到目标MS中SQL db
- 更新指针,读取最后一条记录,以便下一次我们从那里继续。 (我并不想进入更新/删除的并发症,让我们保持它的简单。)
迄今取得的进展:
- 我必须成功,以与MS SQL连接读取从那里指针,并将其放置在一个变量
- 我设法用参数来读取InterSystems的DB数据使用
[Execute SQL task]
,我把那到使用FullResultSet
- 我已成功使用使用
[ForEach Loop Container]
变量[Foreach ADO Enumerator]
要通过每个记录和每个字段(yeeeey!)
现在。我可以使用[Script task]
,它使用VB.NET
代码(理论上)插入MS SQL数据库,然后使用从源数据库读取的最后一条记录更新计数器。我花了无数时间寻找使用ODBC参数的解决方案,以上是我看到工作的唯一方法。
我的问题是这样的:
这是唯一的途径和最佳实践?是不是有一些简单的方法,我可以将这个结果集插入一些数据流组件,这些组件为插入和更新记录指针给我?
请假定我没有权限访问Intersystems Db,因此我无法对表结构进行任何更改。但我只能读取数据,以便将其放入MS SQL中。
在给你们(或加仑?)
你应该为u唱一个数据流而不是执行sql到一个变量中,并在foreach中逐行处理。我将在下面的回答中加以解释 – KeithL
您正在寻找[集成系列阶梯,第4级更新增量装载行](http://www.sqlservercentral.com/articles/Stairway+Series/76390/) – billinkc