まず最初に。私は SSIS をまったく初めて使用し、ETL に関してはその可能性を理解し、最終的には SSAS に移行しようとしています。次のシナリオがあります。
- ADO 経由で接続できる Intersystems データベースがあります
.NET
- このデータベースからデータを取得し、増分ロードによって MS SQL に挿入したい
私の提案するソリューション/ターゲットは次のとおりです。
- 最後に読み取ったポインターまたは日付/時刻のスナップショットを格納するテーブルを MS SQL に用意します。(この段階では関係ありません)。簡単にして、Intersystems データベースに存在するレコード ID を使用するとします。
- このテーブルからポインターを取得し、ODBC を介してパラメーターとして使用して、ソース データベースを読み取り、ターゲット MS SQL データベースに挿入します。
- 次回はそこから続行できるように、最後に読み取ったレコードでポインターを更新します。(更新/削除の複雑さには入りたくありません。簡単にしましょう)
これまでの進捗状況:
- そこからポインターを読み取り、変数に配置するためにMS SQLと接続することに成功しました
[Execute SQL task]
using パラメータを使用して Intersystems Db からデータを読み取ることができました。FullResultSet
- を使用して、各レコードと各フィールドを通過することができました
[ForEach Loop Container]
([Foreach ADO Enumerator]
yeeeey!)
今。(理論的には) コードを使用[Script task]
して MS SQL データベースに挿入しVB.NET
、ソース データベースから読み取った最後のレコードでカウンターを更新する を使用できます。私は、ODBC パラメータを使用して解決策を探すのに無限の時間を費やしてきました。
私の質問はこれです:
これが唯一の方法であり、ベストプラクティスですか? この結果セットをいくつかのデータフロー コンポーネントにプラグインして、レコード ポインタを挿入および更新する簡単な方法はありませんか??
Intersystems Db に書き込む権限がないため、テーブル構造に変更を加えることができないと仮定してください。しかし、MS SQL に配置できるようにデータを読み取ることしかできません。
あなたたち(またはギャル?)に