PentahoETLの基本処理パターン集【データ加工編2】（3/5）

## はじめに
本記事では、PentahoETLの基本的なデータ変換処理の実装例および各処理を実装するにあたっての注意点などを紹介します。全5回に分けて紹介する内、本記事は第3回目です。その他の回は以下のリンクからご参照ください。
[PentahoETLの基本処理パターン集【データ入力編】（1/5）](https://qiita.com/ryota_akai/items/e90879ae94a7fb9c2c6f)
[PentahoETLの基本処理パターン集【データ加工編1】（2/5）](https://qiita.com/ryota_akai/items/a910c35e89bce18d2a57)
[PentahoETLの基本処理パターン集【データ加工編3】（4/5）](https://qiita.com/ryota_akai/items/c462484b89f7d8d83c13)
[PentahoETLの基本処理パターン集【データ出力編】（5/5）](https://qiita.com/ryota_akai/items/49fcca8c4095f77af3d4)

## 注記
・本記事は、PentahoETLについての製品利用の必要知識を有する方を対象が対象です。
・本書内の画面などについて、Pentahoのバージョンによっては本書の内容と異なる可能性があることにご注意ください。

## 用語説明
PentahoETLで利用する機能の用語を紹介します。
| # | 用語 | 処理単位 | 内容 |
|:----|:---------|:---------|:--------|
|①|ジョブ<br>Job|実行処理単位|一つもしくは複数のTransformationをコーディネートするものです。スケジューリングされて実行されます。|
|②|データ変換<br>Transformation|バッチ処理単位|ソースデータをInputし、変換処理を実行してターゲットデータをOutputする最小単位です。|
|③|ステップ<br>Step|処理の最小単位|事前に登録されている機能です。ステップのプロパティに具体的な値を入れることで要求する処理が実行されます。|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/d622ba53-199a-4c82-946c-a7a157262735.png)

## 基本処理パターン例の見方
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/b7b31f09-563d-4630-a66b-2e3ca155ccd1.png)

## 処理パターンリスト
| # | 処理 | 使用ステップ |
|:----|:-------------|:-------------|
| 1 | 集計<br>　1. [グループ化による実装](#1-1-集計-グループ化による実装)<br>　2. [メモリーグループ化による実装](#1-2-集計-メモリーグループ化による実装) | ・グループ化<br>・メモリーグループ化 |
| 2 | [重複行削除](#2-重複行削除) | ・重複行削除<br>・重複行削除(HashSet) |
| 3 | [1レコードを複数レコードに展開](#3-1レコードを複数レコードに展開) | ・フィールド分割 (行) |
| 4 | [1フィールドを複数フィールドに展開](#4-1フィールドを複数フィールドに展開) | ・フィールド分割 |
| 5 | ピポット<br>　1. [横→縦ピポット](#5-1-ピポット-横縦ピポット)<br>　2. [縦→横ピポット](#5-2-ピポット-縦横ピポット) | ・行正規化<br>・行非正規化 |
| 6 | [差分抽出](#6-差分抽出) | ・行マージ(比較) |
| 7 | NULL値変換<br>　1. [NULL値→定数変換](#7-1-null値変換-null値定数変換)<br>　2. [定数→NULL値変換](#7-2-null値変換-定数null値変換) | ・NULL値定数変換<br>・定数NULL変換 |
| 8 | [フィルタリング](#8-フィルタリング) | ・フィルター |
| 9 | [前後のレコードの値を参照](#9-前後のレコードの値を参照) | ・分析クエリー |
| 10 | [ランダムサンプリング](#10-ランダムサンプリング) | ・貯留槽サンプリング |
| 11 | [基本統計量算出](#11-基本統計量算出) | ・単変量統計 |

### 1-1. 集計 グループ化による実装
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/eed32a72-726b-4112-ae1c-8551d703472c.png)

### 1-2. 集計 メモリーグループ化による実装
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/bee8f7e8-1b77-446b-96fe-2b0eec58da1d.png)

### 2. 重複行削除
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/366130f5-7ac1-48ef-8cc6-0ebbbf73dbd8.png)

### 3. 1レコードを複数レコードに展開
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/25ba0b3b-05b4-4e85-8f01-f269972172db.png)

### 4. 1フィールドを複数フィールドに展開
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/8a4b4e79-8acc-4854-a4d3-dc2feeb32382.png)

### 5-1. ピポット 横→縦ピポット
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/420fc864-10e3-413f-8cb3-24b141d48614.png)

### 5-2. ピポット 縦→横ピポット
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/7931f554-6bbc-4ab9-8eaa-dbea39605c82.png)

### 6. 差分抽出
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/fd44d5cb-fe0e-46bd-9f81-9c81c2d5be33.png)

### 7-1. NULL値変換 NULL値→定数変換
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/615be3e0-6637-427c-926f-94f4fca65ddf.png)

### 7-2. NULL値変換 定数→NULL値変換
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/402f494a-357d-485b-b8d5-f630fa66e6c4.png)

### 8. フィルタリング
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/23925a47-24a8-4037-b9c8-f42bc5292600.png)

### 9. 前後のレコードの値を参照
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/78d54c2c-0260-45f4-90df-9c66b5501d6b.png)

### 10. ランダムサンプリング
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/079c8cdc-42e9-4386-b3a1-3f3b781a3ac9.png)

### 11. 基本統計量算出
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3681459/b79190f2-5dbb-4c52-990e-5405aa08b926.png)

## まとめ
今回はPentahoETLの基本処理パターン データ加工編2を紹介しました。
基本処理パターンは他の記事でも紹介しておりますので、ぜひご参照ください。

## 他社商品名、商標等の引用に関する表示
HITACHIは，株式会社 日立製作所の商標または登録商標です。
Pentahoは、Hitachi Vantara LLCの商標または登録商標です。
その他記載の会社名，製品名などは，それぞれの会社の商標もしくは登録商標です。