データフローのインスペクション

データフロー内のさまざまなポイントで入力データに対するデータフローの影響を確認するには、Enterprise Designer のインスペクション ツールを使用します。インスペクションを使うと、データフローがデータに与えている作用が期待どおりか確認したり、問題を切り分けたり、不具合があるレコードを特定することができます。

注: データフロー インスペクションは、埋め込まれたデータフローで使用できません。
  1. インスペクションに使用するデータを指定します。

    実際のデータを代表するデータ、または特定の問題をトラブルシューティングする場合はその問題の原因であるデータを指定する必要があります。サービスのインスペクションを行うか、ジョブのインスペクションを行うかによって、インスペクションに使用するデータを指定する方法は 2 通りあります。

    シナリオ 説明
    ジョブのインスペクション データを指定するには ジョブのインスペクションを行う場合、インスペクションに使用するデータは、ソース ステージで指定されているデータです。インスペクション ツールは最大 50 レコードを処理でき、デフォルトでは入力ファイルまたはデータベースの最初の 50 レコードです。最初以外のレコードからデータの使用を開始するには、[Read From File] ステージをダブルクリックし、[実行時] タブの [開始レコード] フィールドに入力します。
    サービスのインスペクション データを指定するには

    サービス データフローは、Input ステージを使用してデータフローへの入力を定義します。データフローの編集時には、Input ステージからデータにアクセスできないため、Input ステージ内のインスペクション データを [インスペクション データ] タブで定義する必要があります。最大 50 個のレコードを指定できます。

    いくつかの方法によって、Input ステージにインスペクション データを入力できます。
    • インスペクションに数個のレコードのみを使用する場合は、データを手動で入力できます。
      ヒント: [データのエクスポート] をクリックしてインスペクション データをテキスト ファイルにエクスポートすることにより、入力したインスペクション データを保存して別のステージで再利用することができます。
    • CSV または TXT ファイルのデータがある場合は、 [データのインポート]をクリックすることによってそのデータをインポートできます。データには、次のいずれかの区切り文字を使用する必要があります。
      • \t
      • |
      • ,
      • ;
    • 他のアプリケーションからの区切り文字で区切られたデータをコピーし、インスペクション データ エディタに貼り付けることができます。

    以下に示すように、[インスペクション入力] タブでは、フィールド名を括弧で囲むことによってパススルー データを示します。

    注: 一部のフィールド タイプには、インスペクションでの使用に関して制約があります。
    • double 型および float 型のフィールドには、数値データのみが格納されている必要があります。フィールドは最大 16 桁で、小数点以下桁数は 6 桁までです。指数表記は、インスペクションにおいてサポートされていません。
    • integer 型および long 型のフィールドには、数値データのみが格納されている必要があります。
  2. データフロー内でデータを表示するポイントを示します。
    シナリオ 説明
    インスペクション ポイントをチャネルに追加するには

    チャネルで [名前の変更] ノードの左側を右クリックし、[インスペクション ポイントの追加] を選択します。



    ポイントがジョブに追加されます。



    データフロー内の 2 つのポイントでレコードを比較するには

    データフロー内の比較したい 2 つのポイントにインスペクション ポイントを追加します。



    ヒント: 問題を特定するためにインスペクションを使用する場合は、最初にデータフローの広い範囲を検査するようにポイントを設定してから、問題がありそうな位置に向かってポイントを狭めていきます。
    ジョブまたはサービスに埋め込まれているサブフローのインスペクションを行うには

    サブフロー ステージを右クリックし、[このデータフローのインスペクション] を選択します。



    入力データ (ジョブの場合) またはインスペクション データ (サービスの場合) がサブフローに自動的に渡されるので、サブフローの Input ステージでインスペクション データを入力する必要はありません。

    注: サブフローのインスペクションを行うとき、エクスポーズされているバージョンのサブフローが表示されます。サブフローを変更して、インスペクションを再実行したい場合は、新しいバージョンをエクスポーズする必要があります。
  3. [実行] > [現在のフローのインスペクション] を選択するか、またはツールバーの [現在のフローのインスペクション] ボタンをクリックします。

    1 つのインスペクション ポイントを指定すると、[インスペクション結果] ウィンドウには検査済みデータが横方向に表示されます。表示レイアウトを変更するには、テーブルの上にあるツールバーのアイコンを使用します。インスペクション データが階層的な場合は、縦に表示することはできません。



    注: タイプ変換オプションで指定された形式で日付および時間データが表示されます。
    ヒント: インスペクション ポイントを移動するには、別のチャネルにドラッグします。インスペクション データが自動的に更新されます。

    2 つのインスペクション ポイントを指定すると、[インスペクション結果] ウィンドウにその 2 つのポイントの位置にあるレコードが表示されます。左のウィンドウにはデータフローで左側にあるインスペクション ポイントが表示され、右のウィンドウにはデータフローで右側にあるインスペクション ポイントが表示されます。右のウィンドウでレコードをクリックして左のウィンドウの対応するレコードをハイライト表示すると、2 つのインスペクション ポイントの間でレコードがどのように変化したのかがわかります。



    各列は、データフローの 1 フィールドを表します。列は、アルファベット順に並べられます。インスペクション ポイントの間に追加された新しいフィールドは、右のウィンドウで元の列の直後に表示されます。列を並べ替えるには、その列をクリックして、目的の位置にドラッグします。

    2 つのインスペクション ポイントによるインスペクション結果の表示は、以下の条件によって影響されます。

    • 2 つのインスペクション ポイントの間に Sorter ステージがある場合、インスペクション結果に含まれるレコードは Sorter ステージの前にあるものとしてソートされます。2 番目のインスペクション ポイントについてはソートは無視されるため、各インスペクション ポイントに対応するレコードはその並びのまま比較できます。
    • 2 つのインスペクション ポイントの間に、Aggregator ステージのように新規のレコードを作成するステージがある場合、2 番目のインスペクション ポイントに表示されるレコードには、最初のインスペクション ポイントで対応するレコードが含まれません。
    • 2 番目のインスペクション ポイントの位置に存在するが、最初のポイントの位置には存在しないレコードは、2 番目のインスペクション ポイントのレコードの一覧で最後に表示されます。
  4. データフローを更新または変更した場合は、[実行] > [現在のフローのインスペクション] をクリックして、インスペクション結果を更新してください。
  5. [インスペクション結果] ウィンドウを閉じると、インスペクション データは失われます。同様に、ジョブを閉じても、インスペクション ポイントとインスペクション データは失われます。インスペクション結果をファイルに保存するには
    1. インスペクション結果グリッドで、保存する行を選択します。いずれかのウィンドウで右クリックして [すべて選択] をクリックすると、すべてのデータを選択できます。
    2. コンテキスト メニューから [コピー] を選択します。
    3. データを保存するアプリケーション (Microsoft Excel、メモ帳など) を開きます。
    4. アプリケーション内にデータを貼り付けます。
    5. ファイルを保存します。