データフローのインスペクション
データフロー内のさまざまなポイントで入力データに対するデータフローの影響を確認するには、Enterprise Designer のインスペクション ツールを使用します。インスペクションを使うと、データフローがデータに与えている作用が期待どおりか確認したり、問題を切り分けたり、不具合があるレコードを特定することができます。
-
インスペクションに使用するデータを指定します。
実際のデータを代表するデータ、または特定の問題をトラブルシューティングする場合はその問題の原因であるデータを指定する必要があります。サービスのインスペクションを行うか、ジョブのインスペクションを行うかによって、インスペクションに使用するデータを指定する方法は 2 通りあります。
シナリオ 説明 ジョブのインスペクション データを指定するには ジョブのインスペクションを行う場合、インスペクションに使用するデータは、ソース ステージで指定されているデータです。インスペクション ツールは最大 50 レコードを処理でき、デフォルトでは入力ファイルまたはデータベースの最初の 50 レコードです。最初以外のレコードからデータの使用を開始するには、[Read From File] ステージをダブルクリックし、[実行時] タブの [開始レコード] フィールドに入力します。 サービスのインスペクション データを指定するには サービス データフローは、Input ステージを使用してデータフローへの入力を定義します。データフローの編集時には、Input ステージからデータにアクセスできないため、Input ステージ内のインスペクション データを [インスペクション データ] タブで定義する必要があります。最大 50 個のレコードを指定できます。
いくつかの方法によって、Input ステージにインスペクション データを入力できます。- インスペクションに数個のレコードのみを使用する場合は、データを手動で入力できます。ヒント: [データのエクスポート] をクリックしてインスペクション データをテキスト ファイルにエクスポートすることにより、入力したインスペクション データを保存して別のステージで再利用することができます。
- CSV または TXT ファイルのデータがある場合は、 [データのインポート]をクリックすることによってそのデータをインポートできます。データには、次のいずれかの区切り文字を使用する必要があります。
- \t
- |
- ,
- ;
- 他のアプリケーションからの区切り文字で区切られたデータをコピーし、インスペクション データ エディタに貼り付けることができます。
以下に示すように、[インスペクション入力] タブでは、フィールド名を括弧で囲むことによってパススルー データを示します。
注: 一部のフィールド タイプには、インスペクションでの使用に関して制約があります。- double 型および float 型のフィールドには、数値データのみが格納されている必要があります。フィールドは最大 16 桁で、小数点以下桁数は 6 桁までです。指数表記は、インスペクションにおいてサポートされていません。
- integer 型および long 型のフィールドには、数値データのみが格納されている必要があります。
- インスペクションに数個のレコードのみを使用する場合は、データを手動で入力できます。
-
データフロー内でデータを表示するポイントを示します。
シナリオ 説明 インスペクション ポイントをチャネルに追加するには チャネルで [名前の変更] ノードの左側を右クリックし、[インスペクション ポイントの追加] を選択します。
ポイントがジョブに追加されます。
データフロー内の 2 つのポイントでレコードを比較するには データフロー内の比較したい 2 つのポイントにインスペクション ポイントを追加します。
ヒント: 問題を特定するためにインスペクションを使用する場合は、最初にデータフローの広い範囲を検査するようにポイントを設定してから、問題がありそうな位置に向かってポイントを狭めていきます。ジョブまたはサービスに埋め込まれているサブフローのインスペクションを行うには サブフロー ステージを右クリックし、[このデータフローのインスペクション] を選択します。
入力データ (ジョブの場合) またはインスペクション データ (サービスの場合) がサブフローに自動的に渡されるので、サブフローの Input ステージでインスペクション データを入力する必要はありません。
注: サブフローのインスペクションを行うとき、エクスポーズされているバージョンのサブフローが表示されます。サブフローを変更して、インスペクションを再実行したい場合は、新しいバージョンをエクスポーズする必要があります。 -
[実行] > [現在のフローのインスペクション] を選択するか、またはツールバーの [現在のフローのインスペクション] ボタンをクリックします。
1 つのインスペクション ポイントを指定すると、[インスペクション結果] ウィンドウには検査済みデータが横方向に表示されます。表示レイアウトを変更するには、テーブルの上にあるツールバーのアイコンを使用します。インスペクション データが階層的な場合は、縦に表示することはできません。
注: タイプ変換オプションで指定された形式で日付および時間データが表示されます。ヒント: インスペクション ポイントを移動するには、別のチャネルにドラッグします。インスペクション データが自動的に更新されます。2 つのインスペクション ポイントを指定すると、[インスペクション結果] ウィンドウにその 2 つのポイントの位置にあるレコードが表示されます。左のウィンドウにはデータフローで左側にあるインスペクション ポイントが表示され、右のウィンドウにはデータフローで右側にあるインスペクション ポイントが表示されます。右のウィンドウでレコードをクリックして左のウィンドウの対応するレコードをハイライト表示すると、2 つのインスペクション ポイントの間でレコードがどのように変化したのかがわかります。
各列は、データフローの 1 フィールドを表します。列は、アルファベット順に並べられます。インスペクション ポイントの間に追加された新しいフィールドは、右のウィンドウで元の列の直後に表示されます。列を並べ替えるには、その列をクリックして、目的の位置にドラッグします。
2 つのインスペクション ポイントによるインスペクション結果の表示は、以下の条件によって影響されます。
- 2 つのインスペクション ポイントの間に Sorter ステージがある場合、インスペクション結果に含まれるレコードは Sorter ステージの前にあるものとしてソートされます。2 番目のインスペクション ポイントについてはソートは無視されるため、各インスペクション ポイントに対応するレコードはその並びのまま比較できます。
- 2 つのインスペクション ポイントの間に、Aggregator ステージのように新規のレコードを作成するステージがある場合、2 番目のインスペクション ポイントに表示されるレコードには、最初のインスペクション ポイントで対応するレコードが含まれません。
- 2 番目のインスペクション ポイントの位置に存在するが、最初のポイントの位置には存在しないレコードは、2 番目のインスペクション ポイントのレコードの一覧で最後に表示されます。
- データフローを更新または変更した場合は、[実行] > [現在のフローのインスペクション] をクリックして、インスペクション結果を更新してください。
-
[インスペクション結果] ウィンドウを閉じると、インスペクション データは失われます。同様に、ジョブを閉じても、インスペクション ポイントとインスペクション データは失われます。インスペクション結果をファイルに保存するには
- インスペクション結果グリッドで、保存する行を選択します。いずれかのウィンドウで右クリックして [すべて選択] をクリックすると、すべてのデータを選択できます。
- コンテキスト メニューから [コピー] を選択します。
- データを保存するアプリケーション (Microsoft Excel、メモ帳など) を開きます。
- アプリケーション内にデータを貼り付けます。
- ファイルを保存します。