各製品の資料を入手。
詳細はこちら →XML をSSIS 経由でSQL サーバーにバックアップする
XML 用のCData ADO.NET プロバイダーを使用して簡単にSQL サーバーへデータをバックアップします。ここでは、XML をデータベースに入力する際、SSIS ワークフローを使用します。
最終更新日:2022-04-12
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
XML 用のCData ADO.NET プロバイダーはXML をバックアップ、レポート、フルテキスト検索、分析などを行うアプリケーションに接続します。
ここでは、SQL サーバー SSIS ワークフロー内でXML 用のプロバイダーを使用して、XML をMicrosoft SQL サーバーデータベースに直接転送する方法を説明します。 以下のアウトラインと同じ手順を、CData ADO.NET データプロバイダーにて使用することで、SSIS 経由でSQL サーバーを直接リモートデータに接続できます。
- Visual Studio を開き、新しいIntegration サービスプロジェクトを追加します。
- ツールボックスからControl Flow 画面へ、新しいData Flow タスクを追加します。
Data Flow 画面で、ツールボックスから[ADO.NET Source] と[OLE DB Destination] を追加します。
- 新しい接続を追加し、XML 2015 用の .NET プロバイダー\CData ADO.NET プロバイダーを選択します。
Connection Manager で、XML 用に接続の詳細を入力します。下は一般的な接続文字列です。
URI=C:/people.xml;DataModel=Relational;
データソースを認証するには、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。 データプロバイダーはXML API を双方向データベーステーブルとしてモデル化し、XML ファイルをread-only ビュー(ローカルファイル、人気のクラウドサービスに格納されたファイル、およびFTP サーバー)としてモデル化します。 HTTP Basic、Digest、NTLM、OAuth、およびFTP を含む主な認証スキームはサポートされています。認証のガイドについては、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。
URI と認証値を設定した後で、DataModel を設定することでデータの構造によりよくマッチするようデータの抽象化を調整できます。
DataModel プロパティはデータがどのようにテーブルとして抽象化されるかを制御するプロパティであり、次の基本的な設定を調整します。
- Document(デフォルト):XML データのトップレベルのドキュメントビューをモデル化します。データプロバイダーは入れ子化した要素をデータの集約値として返します。
- FlattenedDocuments:入れ子化したドキュメントとその親を結合して単一のテーブルに入力します。
- Relational:個別の関連テーブルを階層化されたデータから返します。テーブルは主キーと、親ドキュメントにリンクする外部キーを含みます。
リレーショナルな抽象化の設定についての詳細は、「XML データのモデリング」セクションを参照してください。次の例で使用されているサンプルデータも存在します。 このデータには、人名、その人たちが所有する車、車に施されたさまざまなメンテナンスに関する情報が含まれます。
DataReader editor を開き、次のインフォメーションを設定します。
- ADO.NET 接続マネージャー:Connection Manager のメニューで、先ほど作成した[Data Connection] を選択します。
- データアクセスモード:[SQL command] を選択します。
- SQL command テキスト:DataReader Source editor で、Component Properties タブを開き、下にあるようなSELECT command を入力します。
SELECT [people].[personal.age] AS age, [people].[personal.gender] AS gender, [people].[personal.name.first] AS first_name, [people].[personal.name.last] AS last_name, [vehicles].[model], FROM [people] JOIN [vehicles] ON [people].[_id] = [vehicles].[people_id]
- DataReader editor を閉じ、DataReader Source の下の矢印をドラッグして、OLE DB Destination に接続します。
OLE DB Destination を開き、Destination Component Editor で次のインフォメーションを入力します。
- コネクションマネージャー:新しい接続を追加します。接続するサーバーおよびデータベースの情報を入力します。ここでは、SQLExpress は他のマシンで運用中です。
- データアクセスモード:データアクセスモードを[table or view] に設定し、データベースに入力するテーブルまたはビューを選択します。
Mappings 画面で必要なプロパティを設定します。
- OLE DB Destination Editor を閉じ、プロジェクトを始動します。SSIS タスクの実行が完了すれば、 XML から取得したデータが、データベースに入力されます。