[Oracle Cloud] Data Integration を使って、日本語 csv ファイルのデータ加工をやってみた

# はじめに

Data Integration は、様々なデータアセットからデータを取り込み、データのクレンジング・変換・再形成・変換などの ETL 処理が出来るフルマネージドサービスです。サーバー管理が不要で、GUI で視覚的にわかりやすく ETL 処理を表現できます。

今回は、日本語データを使ったデータ加工処理を記事にしています。過去、なんどか Data Integration の検証をしてきましたが、すべて英語で書かれた csv ファイルを使っていました。日本語対応はどうなっているのだろうと思い、検証した結果を共有します。結論をまず書くと、日本語を使ったデータも正常に扱うことが出来ます。

それでは検証した内容を紹介していきます。



# やること

次の日本語 csv ファイルを Object Storage に格納して、Data Integration でデータ加工を行います。

```
名前,住所,電話番号
杉山,北海道,111-1111-1111
鈴木,埼玉県,222-2222-2222
木村,沖縄,333-3333-3333
```



名前に `杉山` と書かれている行をフィルターして、Object Storage に加工後の csv ファイルを出力してみます。



# Data Flow の作成

データ加工の流れを GUI で定義していきます。Create Data Flow を選択します。

![1604468771784.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/5cd642d8-a881-4bad-f3f7-1708116362a5.png)



Source Icon をキャンバスにドラッグアンドドロップします

![1604468939607.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/f0e0e82e-7d81-0a90-ce1d-e55803eff75f.png)



各種パラメータを変更して、Object Storage に格納した日本語 csv データを指定します。

![1604469024968.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/36f53edc-f468-46c9-206f-26862480aa24.png)



Data タブを選択すると、日本語 csv データの中身を確認できます

![1604469094613.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/aa41c150-f066-e1d0-b058-71676d452538.png)



Filter Icon を置いて、Source と接続します。そのあとに、Create を押してフィルターの条件を加えます。

![1604469153338.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/d757cf5b-914a-89ad-aced-93816a2a598d.png)



杉山でフィルターする条件をいれ、Create を押します。

`FILTER_1.日本語データ01_CSV.名前='杉山'`

![1604469210037.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/89cbfd77-ac8e-e4f0-91ff-7af183987715.png)



Data Tab を見ると、フィルターした結果がリアルタイムに格納できます！便利ですね。

![1604469297485.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/ca780417-faec-cbd6-663d-468ad666384d.png)



Target Icon を配置して、Filter と接続します

![1604469331508.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/cbb94484-f9eb-9be8-08f2-895c1fa51d37.png)



Target の Attribute を入れます。Object Storage にある、`output ` バケットに、`multibytedir001` ディレクトリを作成しその中にデータ加工後の csv ファイルを出力します。

![1604469466653.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/225349e0-1829-7db7-9aae-0267e13023db.png)



Validate で何もエラーが無いことを確認します。そして、Save and Close で保存します。

![1604469549719.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/ec0bae14-f073-ba99-a968-5a346e3405bb.png)



# Task の作成

作成した Data Flow を使って、Integration Task を作成し、それを Application に格納します。それぞれの関係性は次の内容になっています。

![1599958354657.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/92d2527b-6d25-1fad-8639-5bbe424f0746.png)



Integration Task を作成します

![1604470226633.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/c435bbee-f382-75ab-2df9-34e5298bcb65.png)



作成した Data Flow を選択して、Save and Close します。

![1604470285418.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/7cb3713f-eba7-5755-01bd-285a6b51f9ce.png)



Publish to Application を選択します

![1604470316102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/d59fe32d-589c-2106-3222-9f7e0ab1bc8a.png)



Application 上で Run を押します

![1604470364974.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/3bda4081-7dc1-c916-ff90-f5c9c4b7e2a3.png)



一定時間後、Runs のステータスが Success に変わります

![1604470485194.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/6964a341-a379-4d54-9a71-35e15defd61c.png)



![1604470544672.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/b12571ac-9ae8-e671-7bb4-ed3d36ac372c.png)



csv ファイルの中身です。ちゃんと `杉山` のみにフィルターされていますね。Data Integration のデータ加工は、日本語が含まれたファイルでも問題なく動作することが確認できました。

```
名前,住所,電話番号
杉山,北海道,111-1111-1111
```