# Columnsフィルター関数

Treasure Dataの統合用columnsフィルタープラグインを使用すると、カラムを追加またはフィルタリングできます。

* [オプション](/ja/products/customer-data-platform/integration-hub/batch/import/filter/columns-filter-function#%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3)
* [add_columns](/ja/products/customer-data-platform/integration-hub/batch/import/filter/columns-filter-function#add_columns)
* [columns](/ja/products/customer-data-platform/integration-hub/batch/import/filter/columns-filter-function#columns)
* [drop_columns](/ja/products/customer-data-platform/integration-hub/batch/import/filter/columns-filter-function#drop_columns)
* [設定](/ja/products/customer-data-platform/integration-hub/batch/import/filter/columns-filter-function#%E8%A8%AD%E5%AE%9A)
* [ユースケース例：add_columns](/ja/products/customer-data-platform/integration-hub/batch/import/filter/columns-filter-function#%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9%E4%BE%8Badd_columns)
* [ユースケース例：columns](/ja/products/customer-data-platform/integration-hub/batch/import/filter/columns-filter-function#%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9%E4%BE%8Bcolumns)
* [ユースケース例：drop_columns](/ja/products/customer-data-platform/integration-hub/batch/import/filter/columns-filter-function#%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9%E4%BE%8Bdrop_columns)


# オプション

このプラグインには以下のオプションがあります：

| **オプション** | **説明** |
|  --- | --- |
| add_columns | 追加するカラム（ハッシュの配列） |
| columns | 保持するカラム（ハッシュの配列） |
| drop_columns | 削除するカラム（ハッシュの配列） |
| default_timestamp_format | タイムスタンプカラムのデフォルトタイムスタンプ形式（文字列、デフォルトは`%Y-%m-%d %H:%M:%S.%N %z`） |
| default timezone | タイムスタンプカラムのデフォルトタイムゾーン（文字列、デフォルトは`UTC`） |


## add_columns

| **子要素** | **説明** |
|  --- | --- |
| name | カラムの名前（必須） |
| src | コピーするソースカラム名（`src`または`default`のいずれかが必須） |
| default | カラムの値（`src`または`default`のいずれかが必須） |
| type | デフォルト値の型（`default`の場合は必須） |
| format | タイムスタンプカラム用の特別なオプション。デフォルトタイムスタンプの形式を指定（文字列、デフォルトは`default_timestamp_format`） |
| timezone | タイムスタンプカラム用の特別なオプション。デフォルトタイムスタンプのタイムゾーンを指定（文字列、デフォルトは`default_timezone`） |


## columns

| **子要素** | **説明** |
|  --- | --- |
| name | カラムの名前（必須） |
| src | コピーするソースカラム名（オプション、デフォルトは`name`） |
| default | 入力がnullの場合に使用されるデフォルト値（オプション） |
| type | デフォルト値の型（`default`の場合は必須） |
| format | タイムスタンプカラム用の特別なオプション。デフォルトタイムスタンプの形式を指定（文字列、デフォルトは`default_timestamp_format`） |
| timezone | タイムスタンプカラム用の特別なオプション。デフォルトタイムスタンプのタイムゾーンを指定（文字列、デフォルトは`default_timezone`） |


## drop_columns

| **子要素** | **説明** |
|  --- | --- |
| name | カラムの名前（必須） |


# 設定

`load.yml`に、typeを含む`filter`セクションを追加します。以下の例では、typeは`column`です：

```yaml
in:
...
filters:
- type: column
  add_columns:
    - {name: copy_id, src: id}
    - {name: email_address_md5, src: email_address}
out:
...
```

# ユースケース例：add_columns

ソースデータの例

```csv
time,id,key,score
2015-07-13,0,Vqjht6YE,1370
2015-07-13,1,VmjbjAA0,3962
2015-07-13,2,C40P5H1W,7323
```

`load.yml`の例

```yaml
in:
...
filters:
- type: column
  add_columns:
    - {name: d, type: timestamp, default: "2017-07-13", format: "%Y-%m-%d"}
    - {name: copy_id, src: id}
out: ...
```

この例では、`d`カラムと、`id`カラムのコピーである`copy_id`カラムを以下のように追加します：

```csv
time,id,key,score,d,copy_id
2015-07-13,0,Vqjht6YE,1370,2015-07-13,0
2015-07-13,1,VmjbjAA0,3962,2015-07-13,1
2015-07-13,2,C40P5H1W,7323,2015-07,13,2
```

# ユースケース例：columns

ソースデータの例

```csv
time,id,key,score
2015-07-13,0,Vqjht6YE,1370
2015-07-13,1,VmjbjAA0,3962
2015-07-13,2,C40P5H1W,7323
```

`load.yml`の例

```yaml
in:
...
filters:
- type: column
  columns:
    - {name: time, default: "2017-07-13", format: "%Y-%m-%d"}
    - {name: id}  - {name: key, default: "foo"}
out: ...
```

この例では、以下のようにカラムを`time`、`id`、`key`カラムのみに削減します：

```csv
time,id,key
2015-07-13,0,Vqjht6YE
2015-07-13,1,VmjbjAA0
2015-07-13,2,C40P5H1W
```

# ユースケース例：drop_columns

ソースデータの例

```csv
time,id,key,score
2015-07-13,0,Vqjht6YE,1370
2015-07-13,1,VmjbjAA0,3962
2015-07-13,2,C40P5H1W,7323
```

`load.yml`の例

```yaml
in:
...
filters:
- type: column
  drop_columns:
    - {name: time}
    - {name: id}
out: ...
```

この例に基づいて、`time`と`id`カラムを削除すると以下のようになります：

```csv
key,score
Vqjht6YE,1370
VmjbjAA0,3962
C40P5H1W,7323
```