フィールド マッピング コントロールの使用
複数の入力データセットを 1 つの出力データセットにマージする際には、フィールドの構造と内容が検討材料となります。複数の入力データセットに重複するフィールドが含まれていることもあれば、そのデータセットにしか存在しないフィールドもあります。これらのフィールドがどのように管理されるかによって、出力データセットのフィールドの構造と内容が決まります。フィールド マッピング コントロールにより、この出力データセットのフィールドの構造を定義することができます。
すべての入力データセット フィールドは、出力データセットに割り当てられます。すべての入力の間でフィールド名に重複がある場合、出力データセット フィールドは各重複を組み合わせたものとなります。すべての一意の入力データセット フィールド(他の入力データセットでは見つからないフィールド)も、出力データセットに割り当てられます。
フィールド マップのサブフィールドのデータ タイプが、多岐にわたっている場合があります。この場合、出力フィールドのデータ タイプは最初の入力データセットのデータ タイプに設定され、その他すべてのサブフィールドは、このタイプに割り当てられます。たとえば、最初の入力フィールドがテキストで、2 番目の(同じ名前の)入力フィールドが倍精度の数値形式であるとします。出力データ タイプはテキストとなり、2 番目の入力フィールドの値はこのタイプに変換されます。変換が不可能な場合も考えられます。この場合には、問題の場所を示すエラーが実行中に表示されます。たとえば、BLOB フィールドは、BLOB 以外のデータ タイプに変換することはできません。また、英数字フィールドを数値タイプに変換する場合には、値のアルファベットの部分を削除するためにフィールドを(指定の開始位置と終了位置で)切詰める必要があります。
フィールド マッピングは、カタログ ツリーでグラフィカルに表示されます。すべてのルート(トップレベル)エントリは、出力データセット フィールドになります。名前とデフォルトの出力データ タイプが表示されます。デフォルト出力フィールドのデータ タイプは、最初の入力データ タイプと同一になります。
各ルートレベルのエントリは拡張可能です。拡張すると、すべてのサブフィールドが表示されます。これらのサブフィールドからデータが収集され、出力フィールドに設定されます。入力データセットのフィールドごと(フィールド名ごと)に、サブフィールド エントリが表示され、そのソースとデータ タイプが表示されます。フィールドの最初の入力データセットは、サブフィールド リストの最初に表示されます。
これは、出力データセット フィールドのデフォルトの構造です。入力データセットの追加または削除、出力データセット フィールドの追加、削除、または名前変更、サブフィールドの追加、削除、名前変更、またはカスタム書式設定は、いつでも行うことができます。
デフォルトのフィールド マッピングの変更
デフォルトのフィールド マッピングの構造は、いつでも変更できます。出力フィールドは、追加または削除したり、名前を変更することができます。サブフィールドも追加、削除、名前変更が可能です。また、テキスト出力フィールドの場合には、書式設定を行うこともできます。フィールドのマッピング ツリー ビューでは、ショートカット メニュー(選択フィールド、サブフィールド、または空白スペースを右クリックしてアクセスする)を使用してこれらの変更を行うことができます。
出力フィールドのショートカット メニューのオプションには、[入力フィールドの追加]、[削除]、[名前の変更]、および [プロパティ] があります。
- [入力フィールドの追加] を選択すると、すべての入力データセット フィールドを一覧表示するダイアログ ボックスが開きます。使用可能なフィールドを選択すると、選択した出力フィールドのサブフィールド リストに追加されます。
- [削除] によって、選択したフィールドが出力データセットから削除されます。
- [名前の変更] では、出力フィールドの名前を変更できます。
- [プロパティ] では、選択したフィールドのプロパティを変更できます。フィールドの名前、タイプ、タイプのプロパティ、マージ ルール、および区切り文字([Join] マージ ルールが選択されている場合)を変更できます。
サブフィールドのショートカット メニューのオプションには、[削除] と [形式](テキスト フィールドのみ)があります。
- [削除] を選択すると、選択したサブフィールドが削除されます。最初のサブフィールドが削除されても、出力フィールドのデータ タイプは、新たに最初の位置に配置されたサブフィールドのデータ タイプを反映するように変更されることはありません。出力フィールドのデータ タイプを変更したい場合は、手動で変更するか([プロパティ] ダイアログ ボックスを使用)、フィールド マッピング ウィンドウのショートカット メニューにある [リセット] を使用します。
- [形式] を使用すると、フィールドの幅、開始位置、および終了位置を変更してから、同じ名前のその他すべてのサブフィールドに変更を適用することができます。
フィールドの幅を狭くすると、出力行の値はそれに合わせて切詰められます。切詰めは、開始位置と終了位置の値が変更された場合にも行われます。[開始位置] の値は、行の値が切詰められる始点です。行の値の幅は、ゼロから開始します。
[終了位置] の値よりも長い値は、指定の位置で切詰められます。たとえば、行の値が「environment」のテキスト フィールドで、幅が 12、開始位置 3、終了位置 7 の場合、出力フィールドには「ironm」と表示されます。
フィールド マッピング パネル(空白)のショートカット メニューのオプションには、[出力フィールドの追加] と [リセット] があります。
- [出力フィールドの追加] では、新しいフィールドを追加できます。名前、データ タイプ、データ タイプのプロパティ、マージ ルール、および区切り文字([Join] マージ ルールが選択されている場合)を変更できる、2 番目のダイアログ ボックスが開きます。
- [リセット] オプションを選択すると、すべての出力フィールド プロパティがデフォルトに戻ります。変更はすべて削除されます。
マージ ルール
各出力フィールドには、名前、タイプ、マージ ルールなどの所定のプロパティを設定できます。マージ ルールによって、複数の入力フィールド(サブフィールド)の値を単一の出力値にマージする方法を指定できます。すべての統計情報計算から NULL 値が除外されます。使用できるマージ ルールを以下に挙げます。
- First - 最初のサブフィールドの値を使用して、出力フィールドの行を設定します。
- Last - 最後のサブフィールドの値を使用して、出力フィールドの行を設定します。
- Join - すべてのサブフィールドの値を結合し、この値を使用して出力フィールドの行を設定します。区切り文字を使用して、さまざまな入力値を区切ることができます。区切り文字を使用しない場合、すべての値が 1 つの連続する文字列に結合されます。
- Sum - すべてのサブフィールドの値の合計を計算し、入力サブフィールドの数で割ります。
- Mean - すべてのサブフィールドの値の平均値を計算し、この結果を使用して出力フィールドの行を設定します。
- Median - 中央値を計算し、その値を使用して出力フィールドの行を設定します。中央値は、一連の値を小さい値と大きい値のグループに半分に分割する、中央の値です。値の数が偶数の場合、2 つの中央値の平均が使用されます。たとえば、1、6、7、100 の中央値は 6.5 です。
- Mode - 最頻値(最もよく使用される値)を使用します。最頻値が複数存在する場合(頻度が同じ場合など)、Mode 値のリストが並べ替えられて(数値の場合は最も小さい値が最初に、テキストの場合にはアルファベット順に)、最初の値が使用されます。
- Min - すべてのサブフィールドの値から最小値を検出し、この値を使用して出力フィールドの行を設定します。
- Max - すべてのサブフィールドの値から最大値を検出し、この値を使用して出力フィールドの行を設定します。
- Standard deviation - すべてのサブフィールドの値に、標準偏差の分類法を使用します。
標準偏差は、単一の入力に対して実行すべきではありません。値はゼロで割ることができないため、標準偏差は単一の値には有効なオプションではありません。単一のサブフィールドのみを持つ出力フィールドに標準偏差を選択しても、マージ ツールでエラーが発生することはありません。この場合、出力フィールドの行にゼロの値が入力されます。
- Count - 統計情報の計算に含まれる値の数を検出します。NULL 値以外の値の数がカウントされます。
スクリプティングにおけるフィールドのマッピング パラメータの設定
スクリプティングでは、次の方法の 1 つを使ってフィールドのマッピングを実行できます。
- フィールド マッピング パラメータに文字列値を入力 - フィールド数が少なく、フィールドの変更がわずか(ある場合)であるときのみ使用することをお勧めします。
- FieldMappings オブジェクトを作成して使用する。