Dataprepを使ってデータ編集レシピを作ってみた
今回はDataprepを利用してTitanicデータセットを加工してみようと思います。
Dataprepとは?
Dataprepとは、Alteryxと共同で構築されたGoogleのセルフサービスデータ準備ツールです。BigQueryなどのデータソースからデータを取得してレシピを通して加工し、再度BigQueryやCloud Storageなどに格納するといったデータの処理を実行することができます。Dataprepを利用することでデータのクリーニングや変換などを一つのプラットフォームで可視化しながら実行できるため、データエンジニアリングに大きく貢献します。
なお、今回の検証ではトライアル期間に利用していますが、実際に利用するときは月額や年額に合わせて使用料金がチャージされます。
実際に使ってみる!
今回は簡単ではありますがBigQuery上に展開されたTitanicデータセットをDataprepにインポートし、それを加工したものを再度BigQueryにアップロードしようと思います。これを実行するにあたり、以下の記事にそってBigQuery上にはすでにTitanicのデータセットがあることを前提とします。また、Dataprepはすでに使える状態であることを前提とします。
Flowの作成
Dataprep画面ではFlows画面があります。そこからCreate→Blank flowでFlowを作成します。

Flows画面
すると以下のように空のFlowが作成されます。

空のFlow画面
データセットの登録
それではデータセットを登録しましょう。今回はBigQueryからtitanicデータのうちtrain.csvをインポートします。
先ほどの画面の右上に+ Add datasetsがあるので選択します。すると以下のようにデータセット一覧が表示されます。

データセット追加画面
今回は新しくBigQueryを参照しようと思うので、左下のImport datasetsを選択します。すると以下のようなトップページが表示されます。

データセットインポート画面
データセットを選択すると以下のようにテーブルが表示されるので、今回はtrain.csvを選択します。すると右の一覧に追加されるのでImport & Add to flowを選択します。

データセット選択
すると以下のように最初のフロー画面にデータセットが追加されます。

データセットロード後のFlow
データ加工レシピの追加
それでは次にインポートしたデータの加工をしてみます。先ほどインポートしたデータに連結されているRecipeを選択すると以下のような画面になるので、Edit recipeを選択します。

レシピ選択
すると以下のようにRecipeに対して入力されるデータの一覧とそのヒストグラムが表示されます。

レシピトップ画面
今回はNameカラムの削除と、Sexカラムを数値に変換してみます。
現時点では画面右側のRecipeには何も登録されていないのでデータ変換はされていません。Recipeではどのような処理をするかをスタックしていくことにより、データ加工のRecipeを作成します。
それではまずはNameカラムを削除するためのRecipeを追加します。以下の手順を実施します。
-
Add new stepを選択 -
Delete columnsを選択 -
Nameカラムを選択する -
Addを選択する
するとRecipe一覧にDelete Nameが追加され、左側のデータからNameカラムがいえていることが確認できます。

Nameカラム削除
次にSexカラムを変換してみます。femaleとmaleという二つの値があるので、femaleを0に、maleを1に変換するような処理を入れてみます。今回はif/else構文で実施してみます。
-
New stepを選択 -
Conditional columnを選択 -
Condition typeをif...then...elseを選択 - Ifに
Sex == "female"を指定し、Thenに0、Elseに1を設定 -
New column nameにSex_Intを設定
すると、Recipe一覧にCreate ...が追加され、左側のデータにSex_Intカラムが追加されていることがわかります。

Sex_Intカラムの追加
このほかにもさまざまな変換が用意されていたりデータ分析が可能になっていますが、今回は省略します。
この状態でFlow画面に戻ると、以下のようにRecipeが更新されていることが確認できます。

Recipe追加後のFlow画面
Flowの実行とBigQueryへのエクスポート
それでは最後に作成したFlowを実行してBigQueryにエクスポートしてみましょう。Outputを選択するとRunが表示されるので選択します。

Output選択
するとRunの詳細を設定する画面に移動します。

Run詳細画面
画面中頃のPublishing Actionsで最初はCreate-CSVになっていますが、こちらをBigQuery当てに変更するために、右側からEditを選択します。すると以下のような画面に移動できるので、右側のCreate a new tableを選択します。

Export先指定画面
すると以下のような表示が出るので、テーブル名を指定します。その他のオプションは今回は変更しないでおきます。

新たなテーブル作成設定
こちらで設定を保存するとRunの詳細画面に移動するので、右下のRunを選択します。完了すると以下のような画面に切り替わります。

Run実行結果
無事エラーなく実行できたので、BigQueryのテーブルにtrain_output_dataprepが追加されているか確認してみましょう。BigQuery上でデータが確認でき、Nameカラムがないこと、Sex_Intカラムが追加されていることが確認できます。

Run実行結果
まとめ
今回はBigQueryからDataprepにデータを取り込み、編集した結果をBigQueryにエクスポートしてみました。今回はDataprepの機能の1%にも満たない紹介ですが、実際にはさまざまなデータに関連するオペレーションがありとても便利なツールです。個人利用をするには少々お高いかもしれませんが、データ分析をGUIでガッツリしたい人にとっては最適なツールの一つになるのではないでしょうか。
Discussion