2

私はSSISにかなり不慣れですが、SQLやC#などのテクノロジの経験は豊富です。

スタンドアロンのc#コンソールアプリとして作成したタスクをSSISパッケージに変換しています。

SQLコマンドであるOLEDB入力ソースがあります。これにより、データベース内の特定のデータが収集され、スクリプトコンポーネント変換にフィードされます。入力フィールドをOAuthベースのRESTfulWebサービスのパラメーターとして使用します。これを実行するには、多くのカスタムC#コードが必要です。Webサービスは、入力行ごとに出力する必要のある多くの行を含むXML応答を返します。

スクリプト変換がどのように機能するかについての私の理解は、それが多かれ少なかれ1行で、1行であるということです。

ここで本当にいくつか質問があります。

  1. このように入力ソースを使用するのは良い考えですか?または、入力行をWebサービスにフィードするためのより良い方法はありますか?
  2. スクリプトコンポーネントは、ここで使用する正しいツールを変換しますか?WebサービスがSOAPまたはWCFベースではなく、リクエストにOAuthが必要なため、通常のWebサービスを使用できません。(または、この方法でWebサービスコンポーネントを使用する方法はありますか?)
  3. 入力行ごとに複数の行を出力するにはどうすればよいですか?
  4. SSISは、(複数の行を含む)XML結果を取得し、それらをスクリプト変換の出力フィールドの行にマップする方法をサポートしていますか?XML入力ソースがあることは知っていますが、実際にはそうではありません。XML入力を受け取り、データの行を吐き出す何かを考えています

アップデート:

Webサービスからのデータは次のようになります(余分な部分は省略されています)。

<user>
  <item>
    <col1>1</col1>
    <col2>2</col2>
    <col3>3</col3>
  </item>
  <item>
    <col1>1</col1>
    <col2>2</col2>
    <col3>3</col3>
  </item>
  ....
</user>

基本的に、SQLデータソースはユーザーのデータセットを返します。ユーザーデータセットはスクリプトに入力され、Webサービス呼び出しのパラメーターとして使用されます。Webサービス呼び出しは、スクリプトから出力する必要のあるデータの複数の「行」を持つ一連のXML結果を返します。

上記のデータでは、スクリプトの出力は、入力ソースで指定されたユーザーごとに、col1、col2、およびcol3の複数の行になります。これらの要素を抽出して、xmlデータの各行の出力バッファーの列に配置する方法が必要です。または、単純にxmlをスクリプトの出力にし、その出力を別のコンポーネントにフィードしてxmlを行に解析する方法(XMLソースのように、ただし、データの途中にXMLソースを配置することはできません)フロー)。

4

1 に答える 1

2

私ができることに答える

このように入力ソースを使用するのは良い考えですか?または、入力行をWebサービスにフィードするためのより良い方法はありますか?

状況によって異なりますが、一般的に、データがデータベースにある場合は、OLE DBまたはADO.NETソースが、パイプラインにデータを挿入するための推奨コンポーネントです。より良い?ニーズにもよりますが、お勧めできない理由はありますか?データフローを使用することの優れた利点は、バッファリング、並列処理、ロギング、構成などに組み込まれています。またはその他の理由により、.NETアプリをIntegration Servicesパッケージに移動することになっていると思いますので、このスペースに移動し直して、完全に独り占めしてください。

スクリプトコンポーネントは、ここで使用する正しいツールを変換しますか?

間違いなく。組み込みのWebサービスは、産業用の強度よりも劣ります。あなたはすでに.NETに精通しているので、そのコンポーネントを最大限に活用できる立場にあります。

入力行ごとに複数の行を出力するにはどうすればよいですか?

はい。1:1 input:outputの仮定は、デフォルトの動作のみを対象としています。デフォルトでは、スクリプトコンポーネントは同期しているため、ご覧のとおり、すべての行に出力があります。ただし、スクリプトコンポーネントを非同期コンポーネントに変更することで、1B行を1行の出力に変換したり、1行のソースでN行の出力を生成したりできます。部品表タイプの問題に対して後者を実行する必要がありました---親IDを受け取り、親に関連付けられているすべての子行を検索する必要があります。とにかく、リンクされたMSDNの記事では、非同期にする方法について説明しています。

SSISはXML結果を取得する方法をサポートしていますか

私はあなたがこれに対処するために何を求めているのかよく理解していません。このダミーのいくつかの例をダミーにして、クリックするかどうかを確認します。

于 2013-03-26T01:56:18.727 に答える