先说第一件事。我对 SSIS 完全陌生,并试图弄清楚它在 ETL 方面的潜力并最终转向 SSAS。我有以下情况:
- 我有一个可以通过 ADO 连接的系统间数据库
.NET
- 我想从这个数据库中获取数据并通过增量加载插入 MS SQL
我提出的解决方案/目标是:
- 在 MS SQL 中有一个表,用于存储读取的最后一个指针或日期/时间快照。(在这个阶段无关紧要)。让我们保持简单,假设我们将使用 Intersystems 数据库中存在的记录 ID
- 从此表中获取指针并通过 ODBC 将其用作参数以读取源数据库,然后插入到目标 MS SQL db
- 用读取的最后一条记录更新指针,以便下次我们从那里继续。(我不想涉及更新/删除的复杂性。让我们保持简单)
目前进展:
- 我已成功与 MS SQL 建立连接以从那里读取指针并将其放入变量中
- 我已经设法使用
[Execute SQL task]
using 参数从 Intersystems Db 读取数据,并将其放入变量中FullResultSet
- 我已经设法使用
[ForEach Loop Container]
using[Foreach ADO Enumerator]
来浏览每个记录和每个字段(yeeeey!)
现在。我可以使用一个[Script task]
使用代码(理论上)插入 MS SQL 数据库的方法VB.NET
,然后使用从源数据库读取的最后一条记录更新计数器。我花了无数时间寻找使用 ODBC 参数的解决方案,以上是我能看到的唯一可行的方法。
我的问题是这样的:
这是唯一的方法和最佳做法吗?难道没有一些简单的方法可以将这个结果集插入到一些数据流组件中,这些组件会为我插入和更新记录指针吗?
请假设我没有写入 Intersystems Db 的权限,因此我无法对表结构进行任何更改。但我只能读取数据,以便将其放入 MS SQL。
交给你们(或女孩?)