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

2020.12.10

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

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

目次

 

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

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

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

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

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

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

 

CSA Data Uploaderの変換処理一覧(文字列加工)

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

 

マスキング

対象列項目を所定の条件でマスク処理します。現行利用出来るのは以下の処理です。

  • 指定の文字列情報でマスク
  • ハッシュ化(SHA-256)

csadu-transform-test-for-mask.csv

userid,username,prefname
1001,ああああ ああああ,北海道
1002,いいいい いいいい,東京
1003,うううう うううう,神奈川
1004,ええええ ええええ,大阪
1005,おおおお おおおお,福岡

指定内容:

変換結果:

 

部分抽出

対象列項目の内容に対し、「指定の文字数の位置にある値」から「指定の文字数分」の内容を抽出します。所謂「Substring関数」的な処理をさせたい時に使えます。

対象データ:

csadu-transform-test-for-substring.csv

user_id,user_name,birthday
1001,ABCDEFGHIJ,1999/01/01
1002,あいうえおかきくけこ,1999/02/02
1003,壱弐参肆伍陸漆漆玖拾,1999/03/03
1004,①②③④⑤⑥⑦⑧⑨⑩,1999/04/04
1005,1234567890,1999/05/05

指定内容:

変換結果:

 

置換

指定の列項目に対し、「文字列置換」または「正規表現置換」で内容を置き換えることが出来ます。

正規表現のシンタックスについては、Googleがライブラリとして提供している『RE2』に準拠しています。

対象データ(実は3、4行目は誤字ってるので変換がされない、という...):

replace-test.csv

user_id,user_name,target_column
1001,AAAA,クラスメソッド
1002,BBBB,クラスメソッド
1003,CCCC,クラスメゾッド
1004,DDDD,クラブメソッド
1005,EEEE,クラスメソッド

指定内容:

変換結果:

 

制御文字の削除

指定の列項目に対し、ヌル文字やバックスペースに代表される「制御文字」を除去します。

 

先頭/末尾の文字列を削除

任意の条件で、先頭/末尾/先頭&末尾の情報を除去します。任意の文字列を指定した場合はその文字列を、そうでない場合は空白文字列(半角)を、先頭/末尾/先頭&末尾に存在する範囲で除去します。

対象データ:

csadu-transform-test-for-trim.csv

user_id,user_name,memo
0001,山田太郎  ,###AAAA####
0002,john smith  ,#####BBB####
0003,बाहुबली: द बिगनिंग ,##CCCC####

指定内容:

変換結果:

 

大文字へ変換

対象項目の文字列情報を、全て大文字に変換します。

対象データ:

to_upper_case_test.csv

user_id,user_name,target_column
1001,AAAA,classmethod
1002,BBBB,yokota satoshi
1003,CCCC,sasaki daisuke
1004,DDDD,saiki akari
1005,EEEE,hanasaki hisaki

指定内容:

変換結果:

 

小文字へ変換

対象項目の文字列情報を、全て小文字に変換します。

対象データ

to_lower_case_test.csv

user_id,user_name,target_column
1001,AAAA,classmethod
1002,BBBB,SATOSHI-YOKOTA
1003,CCCC,DAISUKE-SASAKI
1004,DDDD,AKARI-SAIKI
1005,EEEE,HISAKI-HANASAKI

指定内容:

変換結果:

 

パディング

指定項目に対して、任意の桁数を埋めるためのパディング(文字列で埋める作業)を行います。

対象データ

padding_test.csv

user_id,user_name,target_column
1001,AAAAA,あ
1002,BBBBB,ああ
1003,CCCCC,あああ
1004,DDDDD,ああああ
1005,EEEEE,あああああ

指定内容:

変換結果:

 

まとめ

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

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