クラウドストレージへのファイルアップロード&ETLツール『Data Uploader』の変換処理で出来ること(行操作編) #データ統合基盤 #CSアナリティクス

2020.12.09

当エントリは『クラスメソッド CSアナリティクス Advent Calendar 2020』9日目のエントリです。

当エントリでは、クラスメソッドが展開しているデータ統合基盤サービス『CSアナリティクス』(以降"CSA")のプロダクト群の1つ、『Data Uploader』の変換処理で出来ることの中で「行操作」に関する処理を紹介します。

目次

 

CSA Data Uploaderの「変換処理」とは

CSA Data Uploaderは「クラウドストレージ環境へのファイルアップロードをサポートする"簡易ETLツール"」であり、「任意のデータソースからデータを抽出(Extract)」「抽出したデータを変換(Transform)」「任意のクラウドストレージへのアップロード(Load)」を行うことが可能です。

この中の「抽出したデータを変換(Transform)」に関する部分では、データをアップロードする上で必要になりそうな基本的な「データの中身に対する変換処理」を定義し実行させることが可能です。現状まだそこまで(変換処理の)数についてはそこまで多くは無いですが、今後も適宜追加をしていく予定です。

変換処理は、ジョブ定義の「変換」パートにある[追加]を押下する事で定義が可能です。

変換処理は複数定義することが出来、上から順に定義された処理を対象データ(入力要素として指定した内容)に対して実行します。

変換処理定義の両脇にある「データ表示」のリンクを押下することで、変換処理前後のデータの在り方をプレビュー確認することが出来るので、変換処理がどのようにデータに対して作用するのかを確認しながら処理を作成していくことが可能です。

 

CSA Data Uploaderの変換処理一覧(行操作)

当エントリでは、そんな変換処理の中でも「行操作」に関するものを紹介していこうと思います。現時点(2020年12月)で利用可能な変換処理の定義は以下のものが存在します。

 

行列変換

1行のデータにおける列の情報を、任意の条件を踏まえた形で分割して複数行として生成します。

分析や可視化を行う上で「適した」データの在り方は、データを横持ちでは無く縦持ちで保持しておく事が基本です。「生徒毎のテストの科目毎の点数」を例に取ると、本来であれば「生徒指名」「科目」「点数」といった形にデータが構成(=縦持ち)されていれば、科目でデータを絞ったり、生徒毎の平均点を出すといったことも容易になります。ですがこれがそうではない(=横持ち)の場合、そういった利用がデータに対して出来なくなってしまいます。

以下のようなデータを想定して試してみます。生徒毎に3教科分の点数が横に並んでいる形です。

certtification-score.csv

user_name,math,english,chemistry
山田一郎,80,77,66
山田二郎,81,76,55
山田三郎,82,75,44

CSA Data Uploaderで入力ファイルを指定したイメージがこちら。

変換処理の設定に関しては、「キーとして維持するカラム」を指定することでその項目については変換を行わず、それ以外の情報に対して「ヘッダー部分の情報」と「そのヘッダー部分における数値項目」を"横持ち"から"縦持ち"の形に構成変換を行います。変換処理を追加して起動する設定ウインドウで以下の設定を行うことで、

  • キーとして維持するカラムは任意の項目を指定(複数指定可能)
  • ヘッダー部分の情報は変換後の「名称」カラム名を指定
  • 数値項目部分の情報は変換後の「値」カラム名を指定

データの内容を指定の構成に行列変換出来ます。

 

行分割

行内の指定カラムの内容を任意の文字列で分割し、行として展開します。

こちらは以下のようなデータを想定。target_columnの内容を分割させたい!というような形です。

split-rows-test.csv

target_column,fix_col1,fix_col2,fix_num
AAA-BBB-CCC,xxx,yyy,1001
DDD-EEE-FFF,zzz,xxx,1002
GGG-HHH-III,yyy,zzz,1003
JJJ-KKK-LLL,ppp,qqq,1004
MMM-OOO-PPP,rrr,sss,1005

CSA Data Uploaderで入力ファイルを指定したイメージがこちら。

変換処理設定画面では、「対象カラム」と「分割の際の識別文字列」をそれぞれ入力する形となります。

変換処理を経て生成されるデータ内容のイメージ(プレビュー)は以下となります。

 

まとめ

という訳で、『クラスメソッド CSアナリティクス Advent Calendar 2020』9本目のエントリ、『Data Uploader』の変換処理(列操作編)の紹介でした。CSA Data Uploaderは1ヶ月間のトライアル利用が可能となっています。興味をお持ち頂いた方は是非無料版ダウンロードページからインストーラを入手頂き、お試し頂けますと幸いです。

では、明日(9日目)のエントリもお楽しみに!