将来使用するための在庫
その過程で、Webサービスからのデータが必要になることがあります。特に今日では、SOAP接続がほぼ標準です。
ETLプロセス(抽出-変換-ロード)は、ビジネスインテリジェンスからの用語であり、データを収集および変換して分析データベース(データウェアハウスなど)を作成するプロセスを表します。
WSDLで記述されたSOAPデータ交換プロトコルとWebサービスは、ほとんどすべてのERPシステム、多くのオンラインポータル、および金融機関の世界に共通するウィンドウです。
クラスで最も強力なツールの1つであるMS Integration Servicesを使用して、ETLプロセスをステップごとに説明していきます。
したがって、テストの問題を検討してください。
挑戦する
昨年の各日付のルーブルに対する為替レートに関するデータを収集し、さらに分析するためにテーブルにロードする必要があります。 ロシア中央銀行は、歴史的なデータを、適切な説明のあるWebサービスの形式で提供しています。
これが解決策のようです。
プロジェクトを作成する
最初に、Business Intelligence Development Studioでプロジェクトを作成します(さらに最近では、SQL Server Data Tools)。
ツールボックスにはWeb-service-task要素があり、それをワークスペースに転送します。

HttpConnection行で、NewConnectionを選択して新しい接続を作成します
URL
http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmxを入力し
ますところで、そこに行くことができます-恥ずかしがらないでください。
WSDL-ファイルはそこにあります。ここでは
www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDLです。ダウンロードして、設定ダイアログで選択します。
それだけです、入力タブに行きます

ここでは、プロバイダーが提供するサービスとそのメソッドから選択できます。
GetCourseOnDateが必要です-要求された日付のDataSetを発行します。
日付の値を手動で入力します-[値]フィールドに少し戻って、これを自動化します。
出力は、新しい接続出力を作成することにより、単純にファイルになります-ファイルoutput.xmlに

プロセスを始めましょう-行きました。 ファイルが作成されます-為替レートは為替レートのように見えます。
形式は奇妙です:diffgr属性、インライン図。 これは、DatasetオブジェクトのXML出力です。
BI-studioにはXML-Sourceコネクタがあります-そのようなファイルに設定しようとすると、結果はゼロになります。 (回路を読み取ります)。
Webサービスタスク-Skriptタスクの後に配置します。
回避策
非表示のテキストobject rawConnection = Dts.Connections["output"].AcquireConnection(Dts.Transaction); DataSet CoursesFile = new DataSet(); string filePath = (string)rawConnection; object rawConnection2 = Dts.Connections["output2"].AcquireConnection(Dts.Transaction); string filePath_Out = (string)rawConnection2; object rawConnection3 = Dts.Connections["output.xsd"].AcquireConnection(Dts.Transaction); string filePath_Schema = (string)rawConnection3; CoursesFile.ReadXml(@filePath); CoursesFile.AcceptChanges(); CoursesFile.WriteXmlSchema(@filePath_Schema); CoursesFile.WriteXml(@filePath2);
C#のスクリプトでは、すべてのツール.netプラットフォームと2012 VisualStudioを使用できます。
System.Xmlを使用して最初に追加しました
。接続のコレクションに移ります-回路を保存し、出力するために、さらに2つ作成しました。
出力は純粋なXMLです-acceptChanges()のおかげです;
始まりを再考する
日付の範囲を取り、それぞれの為替レートを取得してから、データベースにコースに日付フィールドを追加して記録するとよいでしょう。
まず、一時的なディメンションを作成します。これは、すべてのデータウェアハウスで複数回使用できます。
ネットワーク上でスパイされたスクリプトを自分のバリエーションで作成します。
新しいアイテムをワークスペースに移動します


途中で作成されたTESTベースとOLE DB接続localhost.TEST。
プロセスが結果からすべての日付を取得してWebServiceTaskに渡す方法。
変数を使用する。
変数
ワークスペース-変数を右クリックします。 または、[表示]メニュー-[その他のウィンドウ]-[変数]。 これは非常に強力なツールですが、それだけではなく、SSISを宣言することもできません。
System.Object型のUDate変数を作成します。 リクエストの結果を出力します。
SQLタスクに接続します

次に、SQL-Task Foreachループコンテナーに順番に追加します。
これはコンテナであり(アクションのシーケンスをそこに固定できます)、foreachルーチンを実行します。
この場合、Webサービスに接続し、UDateセットの各日付の為替レートを記録します。
Date型の私たちが作成したDate変数はコンテナ内で利用できるため、レコードの現在の日付を渡します。
それがコンテナに入れたものです

DataFlowがスクリプトに従っていることを見てみましょう。すべてがシンプルです。 XML-XML、ソース、
日付列を追加します-テーブルに書き込みます。
そして、日付ごとに。

データベースへの書き込みのために、派生列要素に-Date変数を挿入します。
結果はこちら
