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