# 集計アクション

## はじめに 

*集計*アクションの最も基本的な働きは、*data_prim*または*data_mart*の既存のテーブルから、同じテーブルを含む他の任意のテーブルへのデータの移動を可能にすることです。この機能では、必要に応じて、SQLをフルに利用できます。*集計*アクションの範囲は非常に広く、データ処理ワークフローで最もよく使用されるアクションの1つになっています。

---

## アクションの設定

集計アクションのセットアップでは、（1つまたは複数の）ソーステーブルを使用し、ソーステーブルから値を抽出して1つの宛先テーブルに配置します。宛先属性はそれぞれをソースの1つの属性にマッピングする必要があります。

複数のソーステーブルが選択されている場合、ユーザーはSQLクエリ言語に似た結合条件を指定するように求められます。 

!> **集計アクションの設定でマッピングされていない宛先属性があると、アクションを実行したときにエラーになります**。宛先属性を空欄のままにする場合は、マッピングされた属性のリストからその属性を削除する必要があります。

マッピングされた属性のリストから宛先属性を削除する場合、次のような処理が行われます。
* 集計アクションによって**新しい行が書き込まれる場合、宛先属性列にNULL値が入力**されます。
* 集計アクションによって**既存の行が更新される場合（既存のデータが上書きされる場合）、NULL値かどうかに関係なく以前の値がそのまま残り**ます。

> 内部DBMSは主キーとしてNULL値をサポートしていないことに注意してください。そのため、マッピングされていない主キーの値は、集計アクションによってデフォルトで0（数値タイプの主キー）や""（文字列タイプの主キー）に設定されます。


---

## ユースケースの例

### 主テーブルへの生データの移動

新しい集計アクションを作成します。

![dpe-overview-icons](/picts/agg-ui.png)

ソーステーブル（左）と宛先テーブルを選択します。可能な場合、対応する属性は自動的に割り当てられます。ただし、ソースと宛先の間でマッピングする属性を手動で選択することもできます。

![dpe-overview-icons](/picts/agg-ui2.png)

必要に応じて、*マッピング*アイコンをクリックしてSQLまたはtxtを選択し、マッピングをSQLまたはプレーンテキストに変更できます。 

「Attributes（属性）」セクションでは、各属性のコンピュートモードを変更することもできます。この例では、「*Select*」が選択されていますが、その他のオプションも選択できます。

右上にある「*Create（作成）*」をクリックしてアクションを作成します。


### 主テーブルへの参照の結合

先ほどと同様に、新しい集計アクションを作成し、ソーステーブルと宛先テーブルを選択します。

結合を作成するには、ソーステーブルのすぐ下にある「*Add a source（ソースを追加）*」をクリックします。結合するテーブルを選択するように求められます。続いて、ドロップダウンメニューから結合のタイプを選択し、UIで結合条件を入力する必要があります。次のように複数のソースを追加できます。

![dpe-overview-icons](/picts/agg-ui3.png)


 結合されたテーブルの属性はドロップダウンメニューから選択するか、SQLを使用して入力できます。ただし、結合されたテーブルに欠落している属性がある場合は、DPEによって欠落している属性の追加が行われます。

---

## 詳細モード

JSON形式のアクション設定ファイルにアクセスする必要がある場合は、いつでも「Advanced（詳細）」ボタンをクリックして「Advanced（詳細）」モードにすることができます。次の章では、JSON形式について説明します。 

{詳細モードに進む}(#/jp/product/dpe/actions/aggregate/advanced-mode.md)

