次の方法で共有


集計変換

適用対象:SQL Server Azure Data Factory の SSIS Integration Runtime

集計変換は Average などの集計関数を列の値に適用し、その結果を変換出力にコピーします。 集計変換では、集計関数の他に GROUP BY 句を使用して集計範囲のグループを指定できます。

Operations

集計変換では、次の操作がサポートされています。

操作 説明
グループ化 データセットをグループに分割します。 グループ化には、任意のデータ型の列を使用できます。 詳細については、「GROUP BY (Transact-SQL)」を参照してください。
SUM 列内の値を合計します。 numeric データ型を持つ列のみ、合計することができます。 詳細については、「SUM (Transact-SQL)」を参照してください。
Average 列内の列値の平均を返します。 numeric データ型を持つ列のみ、平均値を計算することができます。 詳細については、「AVG (Transact-SQL)」を参照してください。
Count グループ内のアイテムの数を返します。 詳細については、「COUNT (Transact-SQL)」を参照してください。
個別のカウント グループ内の NULL でない一意の値の数を返します。
最小値 グループ内の最小値を返します。 詳細については、「MIN (Transact-SQL)」を参照してください。 Transact-SQL MIN 関数とは異なり、この操作は数値、日付、および時間データ型に対してのみ使用できます。
最大値 グループ内の最大値を返します。 詳細については、「MAX (Transact-SQL)」を参照してください。 Transact-SQL MAX 関数とは異なり、この操作は数値、日付、および時間データ型に対してのみ使用できます。

集計変換では、NULL 値を、 SQL Server リレーショナル データベース エンジンと同じ方法で処理します。 この動作は SQL-92 標準で定義されています。 次の規則が適用されます。

  • GROUP BY 句では、他の列の値と同様に NULL が処理されます。 グループ化に使われる列に複数の NULL 値が含まれる場合は、それらの NULL 値が 1 つのグループになります。

  • COUNT (列名) および COUNT (DISTINCT 列名) 関数では、NULL は無視され、名前付き列内の NULL 値を含む行が結果から除外されます。

  • COUNT (*) 関数では、NULL 値の行を含め、すべての行がカウントされます。

集計における大きな数値

大きな数値または大きな有効桁数が必要な列がある場合は、特別な注意が必要です。 集計変換には、IsBig プロパティが含まれています。このプロパティを使用すると、出力列で、大きな数値または大きな有効桁数の数値に対し、特別な処理を実行するように設定できます。 列の値が 40 億を超える場合、または float データ型よりも大きな有効桁数が必要な場合は、IsBig を 1 に設定する必要があります。

IsBig プロパティを 1 に設定すると、集計変換の出力は、次のような影響を受けます。

  • DT_R4 データ型の代わりに DT_R8 データ型が使用されます。

  • カウントの結果は、DT_UI8 データ型として格納されます。

  • 個別のカウントの結果は、DT_UI4 データ型として格納されます。

Note

グループ化、最大、または最小操作で使用される列では、IsBig を 1 に設定することはできません。

パフォーマンスに関する考慮事項

集計変換には、変換のパフォーマンスが向上するように設定できる、プロパティのセットが含まれています。

  • グループ化 操作を実行する場合は、コンポーネントとコンポーネント出力の Keys プロパティまたは KeysScale プロパティを設定します。 Keys を使用すると、変換で処理されるキーの正確な数を指定できます (ここでは、Keys は、 グループ化 操作の結果として予想されるグループの数を示します)。KeysScale を使用すると、キーの概数を指定できます。 Keys または KeyScale に適切な値を指定すると、変換によって、変換によってキャッシュされるデータに適切なメモリを割り当てることができるため、パフォーマンスが向上します。

  • 個別のカウント 操作を実行するときは、コンポーネントの CountDistinctKeys プロパティまたは CountDistinctScale プロパティを設定します。 CountDistinctKeys を使用すると、変換時に個別のカウント操作で処理されるキーの正確な数を指定できます (ここでは、CountDistinctKeys は、 個別のカウント 操作の結果として予想される個別の値の数を示します)。CountDistinctScale を使用すると、個別のカウントの操作で処理するキーの概数を指定できます。 CountDistinctKeys または CountDistinctScale に適切な値を指定すると、変換時にキャッシュされるデータ用に十分なメモリが割り当てられるようになるため、パフォーマンスが向上します。

集計変換の構成

集計変換は、変換、出力、および列の各レベルで構成します。

  • 変換レベルでは、次の値を指定することにより、集計変換を構成してパフォーマンスを高めることができます。

    • グループ化 操作の結果として予想されるグループの数。

    • 個別のカウント 操作の結果として予想される個別の値の数。

    • 集計の際にメモリを拡張できる割合。

    また、除数の値が 0 のときに失敗せずに警告を生成するように、集計変換を構成することもできます。

  • 出力レベルでは、 グループ化 操作の結果として予想されるグループの数を指定することにより、集計変換を構成してパフォーマンスを高めることができます。 集計変換では複数の出力を設定して、各列を個別に構成できます。

  • 列レベルでは、次の値を指定します。

    • 列が実行する集計。

    • 集計の比較オプション。

また、次の値を指定することにより、集計変換を構成してパフォーマンスを高めることもできます。

  • 列に対する グループ化 操作の結果として予想されるグループの数。

  • 列に対する 個別のカウント 操作の結果として予想される個別の値の数。

列に含まれる数値が大きい場合、または数値の有効桁数が大きい場合には、その列を IsBig として識別することもできます。

集計変換は非同期です。つまり、行ごとにデータを使用またはパブリッシュしません。 集計変換は行セット全体を使用してグループ化と集計を実行し、その結果をパブリッシュします。

この変換では列をパススルーすることはなく、変換によりパブリッシュされるデータ用に、新しい列がデータ フロー内に作成されます。 集計関数が適用される入力列、または変換がグループ化用に使用する入力列のみが、変換出力にコピーされます。 たとえば、集計変換入力に、 CountryRegionCity、および Populationという 3 つの列があるものとします。 集計変換は、 CountryRegion 列によりグループ化を行い、 関数を Population 列に適用します。 したがって、出力には City 列は含まれません。

また、複数の出力を集計変換に追加し、各集計を別々の出力に送ることもできます。 たとえば、集計変換が Sum および Average 関数を適用する場合に、各集計をそれぞれ別の出力に送ることができます。

1 つの入力列に複数の集計を適用できます。 たとえば、 Salesという名前の入力列の合計値と平均値を計算する場合に、Sum および Average 関数の両方を Sales 列に適用するように、集計変換を構成できます。

集計変換は、1 つの入力と 1 つ以上の出力をとります。 エラー出力はサポートされていません。

プロパティを設定するには SSIS デザイナーから行うか、またはプログラムによって設定します。

[詳細エディター] ダイアログ ボックスには、プログラムによって設定できるプロパティが反映されます。 [詳細エディター] ダイアログ ボックスまたはプログラムで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。

プロパティの設定方法の詳細については、次のトピックのいずれかを参照してください。

集計変換を使用してデータセットの値を集計する

[集計変換エディター] ([集計] タブ)

[集計変換エディター] ダイアログ ボックスの [集計] タブを使用すると、集計列および集計プロパティを指定できます。 複数の集計を適用することができます。 この変換ではエラー出力を生成しません。

Note

キーの数、キー スケール、個別のキーの数、個別のキー スケールのオプションは、 [詳細設定] タブで指定した場合はコンポーネント レベル、 [集計] タブの [詳細設定] 画面で指定した場合は出力レベル、 [集計] タブの下部にある列の一覧で指定した場合は列レベルで適用されます。

集計変換では、 [キー] および [キー スケール] は、 グループ化 操作の結果として予想されるグループの数を示します。 [個別カウント キー数] および [個別カウント スケール] は、 個別のカウント 操作の結果として予想される個別の値の数を示します。

オプション

[詳細設定]/[基本]
複数の出力用に複数の集計を構成するオプションを表示したり非表示にしたりします。 既定では、[詳細設定] オプションは非表示です。

[集計名]
[詳細設定] 画面で、集計の表示名を入力します。

[グループ化列]
[詳細設定] 画面で、後で説明するように、 [使用できる入力列] リストを使用してグループ化する列を選択します。

[キー スケール]
[詳細設定] 画面で、集計によって書き込むことのできるキーの概数をオプションで指定します。 既定では、このオプションの値は [未指定]です。 [キー スケール] プロパティと [キー] プロパティの両方が設定されている場合、 [キー] の値が優先されます。

説明
指定されていません。 [キー スケール] プロパティは使用されません。
集計では約 500,000 キーを書き込むことができます。
Medium 集計では約 5,000,000 キーを書き込むことができます。
集計では 25,000,000 を超えるキーを書き込むことができます。

[キー]
[詳細設定] 画面で、集計によって書き込むことのできる正確なキーの数をオプションで指定します。 [キー スケール][キー] の両方が指定されている場合、 [キー] が優先されます。

使用できる入力列
このテーブルのチェック ボックスを使用して、使用できる入力列の一覧から選択します。

入力列
使用できる入力列の一覧から選択します。

[出力の別名]
各列に対して別名を入力します。 既定は入力列の名前です。一意のわかりやすい名前を付けることもできます。

操作
使用可能な操作の一覧から選択します。次の表を指針として使用できます。

操作 説明
GroupBy データセットをグループに分割します。 どのようなデータ型を持つ列でもグループ化に使用できます。 詳細については、「GROUP BY」を参照してください。
Sum 列内の値を合計します。 numeric データ型を持つ列のみ、合計することができます。 詳細については、「SUM」を参照してください。
Average 列内の列値の平均を返します。 numeric データ型を持つ列のみ、平均値を計算することができます。 詳細については、「AVG」を参照してください。
Count グループ内のアイテムの数を返します。 詳細については、「COUNT」を参照してください。
CountDistinct グループ内の NULL でない一意の値の数を返します。 詳細については、「COUNT」および「DISTINCT」を参照してください。
最小 グループ内の最小値を返します。 numeric データ型に制限されます。
[最大] グループ内の最大値を返します。 numeric データ型に制限されます。

[比較フラグ]
[グループ化]を選択する場合、チェック ボックスを使用して、変換により比較がどのように実行されるかを制御します。 文字列比較オプションについては、「 文字列データの比較」を参照してください。

Count Distinct Scale
集計で書き込むことのできる個別の値の概数をオプションで指定します。 既定では、このオプションの値は [未指定]です。 [CountDistinctScale] および [CountDistinctKeys] の両方が指定されている場合、 [CountDistinctKeys] が優先されます。

説明
指定されていません。 CountDistinctScale プロパティは使用されません。
集計では約 500,000 の個別の値を書き込むことができます。
Medium 集計では約 5,000,000 の個別の値を書き込むことができます。
集計では 25,000,000 を超える個別の値を書き込むことができます。

Count Distinct Keys
集計によって書き込むことのできる個別の値の正確な数をオプションで指定します。 [CountDistinctScale] および [CountDistinctKeys] の両方が指定されている場合、 [CountDistinctKeys] が優先されます。

[集計変換エディター] ([詳細設定] タブ)

[集計変換エディター] ダイアログ ボックスの [詳細設定] タブを使用すると、コンポーネントのプロパティの設定、集計の指定、入力列と出力列のプロパティの設定を行うことができます。

Note

キーの数、キー スケール、個別のキーの数、個別のキー スケールのオプションは、 [詳細設定] タブで指定した場合はコンポーネント レベル、 [集計] タブの [詳細設定] 画面で指定した場合は出力レベル、 [集計] タブの下部にある列の一覧で指定した場合は列レベルで適用されます。

集計変換では、 [キー] および [キー スケール] は、 グループ化 操作の結果として予想されるグループの数を示します。 [個別カウント キー数] および [個別カウント スケール] は、 個別のカウント 操作の結果として予想される個別の値の数を示します。

オプション

[キー スケール]
集計で予想される、概算のキー数をオプションで指定します。 変換ではこの情報を使用して最初のキャッシュ サイズを最適化します。 既定では、このオプションの値は [未指定]です。 [キー スケール][キーの数] の両方が指定されている場合、 [キーの数] の方が優先されます。

説明
指定されていません。 [キー スケール] プロパティは使用されません。
集計では約 500,000 キーを書き込むことができます。
Medium 集計では約 5,000,000 キーを書き込むことができます。
集計では 25,000,000 を超えるキーを書き込むことができます。

[キーの数]
集計で予想される、正確なキー数をオプションで指定します。 変換ではこの情報を使用して最初のキャッシュ サイズを最適化します。 [キー スケール][キーの数] の両方が指定されている場合、 [キーの数] の方が優先されます。

[個別カウント スケール]
集計で書き込むことのできる個別の値の概数をオプションで指定します。 既定では、このオプションの値は [未指定]です。 [個別カウント スケール][個別カウント キー数] の両方が指定されている場合、 [個別カウント キー数] の方が優先されます。

説明
指定されていません。 CountDistinctScale プロパティは使用されません。
集計では約 500,000 の個別の値を書き込むことができます。
Medium 集計では約 5,000,000 の個別の値を書き込むことができます。
集計では 25,000,000 を超える個別の値を書き込むことができます。

[個別カウント キー数]
集計によって書き込むことのできる個別の値の正確な数をオプションで指定します。 [個別カウント スケール][個別カウント キー数] の両方が指定されている場合、 [個別カウント キー数] の方が優先されます。

[自動拡張率]
集計の際にメモリを拡張できる割合を 1 ~ 100% の範囲で指定します。 既定では、このオプションの値は 25%です。

参照

データ フロー
Integration Services の変換