2

まず最初に。私は SSIS をまったく初めて使用し、ETL に関してはその可能性を理解し、最終的には SSAS に移行しようとしています。次のシナリオがあります。

  1. ADO 経由で接続できる Intersystems データベースがあります.NET
  2. このデータベースからデータを取得し、増分ロードによって MS SQL に挿入したい

私の提案するソリューション/ターゲットは次のとおりです。

  1. 最後に読み取ったポインターまたは日付/時刻のスナップショットを格納するテーブルを MS SQL に用意します。(この段階では関係ありません)。簡単にして、Intersystems データベースに存在するレコード ID を使用するとします。
  2. このテーブルからポインターを取得し、ODBC を介してパラメーターとして使用して、ソース データベースを読み取り、ターゲット MS SQL データベースに挿入します。
  3. 次回はそこから続行できるように、最後に読み取ったレコードでポインターを更新します。(更新/削除の複雑さには入りたくありません。簡単にしましょう)

これまでの進捗状況:

  1. そこからポインターを読み取り、変数に配置するためにMS SQLと接続することに成功しました
  2. [Execute SQL task]using パラメータを使用して Intersystems Db からデータを読み取ることができました。FullResultSet
  3. を使用して、各レコードと各フィールドを通過することができました[ForEach Loop Container]( [Foreach ADO Enumerator]yeeeey!)

今。(理論的には) コードを使用[Script task]して MS SQL データベースに挿入しVB.NET、ソース データベースから読み取った最後のレコードでカウンターを更新する を使用できます。私は、ODBC パラメータを使用して解決策を探すのに無限の時間を費やしてきました。

私の質問はこれです:

これが唯一の方法であり、ベストプラクティスですか? この結果セットをいくつかのデータフロー コンポーネントにプラグインして、レコード ポインタを挿入および更新する簡単な方法はありませんか??

Intersystems Db に書き込む権限がないため、テーブル構造に変更を加えることができないと仮定してください。しかし、MS SQL に配置できるようにデータを読み取ることしかできません。

あなたたち(またはギャル?)に

4

1 に答える 1