レポート目的で、本番データをデータ ウェアハウスに転送しようとしています。SSIS for Azure and Hybrid Data Movementの「フェデレーションへのインポート」セクションに従ってみましたが、フェデレーションからデータ ウェアハウスにデータを移動する必要があります。また、 SQL Server Centralで適切なリソースを見つけましたが、データ フロー ウィザードでフェデレーション テーブルを表示できないようです。また、ODBC (SQL Azure DB に必要な接続タイプ) ソース ウィザードの SQL コマンドに Use FedDB ステートメントを追加することもできません。
1 に答える
垂直シャーディング (複数のインスタンスにまたがる同じスキーマ) の仮定に基づいて、プロトタイプ パッケージを構築しました。
ここで行う必要があるのは、ADO.NET 接続マネージャーを作成し、プロバイダーとして [.Net Providers\Odbc Data Provider] を選択することです。
接続文字列は次のようになります。あなたが提供した最初のリンクが示すように、IP を承認したことと、Database
Driver={SQL Server Native Client 11.0};Server=tcp: abcdefghi.database.windows.net;Database=romulus;
制御フロー
フェデレーション内のすべてのインスタンスを列挙できるように、Foreach ループ コンテナーをセットアップしました。ループを通過するたびに、現在のインスタンスへの接続文字列が生成されます。SourceConnectionString
それを文字列型の変数に割り当てます。
次に、ADO.NET 接続マネージャーで式を設定して、ConnectionString
プロパティをに設定します@[User::SourceConnectionString]
。これにより、列挙中に接続が実際に変更されることが保証されます。
データフロー
データ フローは、ソースと宛先を取り巻くメタデータを厳密に監視することで、そのパフォーマンスを導き出します。対処する必要があるテーブルごとにデータ フローを作成する必要があります。複数のデータ フローを並行して実行するための戦略がありますが、ここでは取り上げません。Andy Leonard が、あなたが既に見つけた彼の Stairway to Integration Services シリーズでそれをカバーしていると確信しています。
リンクされたSSCの記事にあるように、私は私のものを構造化しました
ソース コンポーネントには、基本的に OLE DB または ADO.NET コンポーネントがあります。Azure を使用しているため、「ADO NET ソース」コンポーネントが必要です。
ルックアップ コンポーネントは、OLE DB 接続マネージャーまたはキャッシュ接続マネージャーを使用できます。オンプレミスの (私のスクリーンショットではスペルが間違っています) インスタンスにプッシュしているので、OLE DB 接続マネージャーを使用してルックアップを処理できます。
実際、ソースとフェデレーションによる列挙を除いて、この回答と記事の内容にはほとんど違いはありません。