GUI の ETL ツール Google Cloud Dataprep by Trifacta を使ってみた

  • Google Cloud
  • ユースカジノ twitter分析
  • AI/ML
  • エンジニア

投稿日:

はじめに

Google Cloud Dataprep by Trifacta(以下、Dataprep と呼称します。)は、Google と Trifacta が連携して提供する GUI の ETL ツールです。
本記事では、Dataprep のクイックスタートの手順を参考にハンズオンを実施し、Dataprep の基本的な使い方とその利便性について確認します。

事前準備

  • Google Cloud のプロジェクトを作成し、課金を有効化します。
  • 下記 サービスと API を有効化します。
    • Dataflow
    • BigQuery
    • Cloud Storage APIs

ここでは詳細な手順は割愛します。Google の公式ドキュメントを参照してください。
参考:Google Cloud プロジェクトをセットアップする
参考:API を有効にしています

手順

  1. 1. Dataprep の有効化
  2. 2. フローの作成
  3. 3. ユースカジノ twitterセットのインポート
  4. 4. レシピの作成(その 1)
  5. 5. レシピの作成(その 2)
  6. 6. ジョブの実行

1. Dataprep の有効化

はじめにでお伝えした通り、Dataprep は Google と Trifacta が連携して提供しています。
そのため、利用にあたっては Trifacta によるプロジェクト内のユースカジノ twitterへのアクセス等を許可する必要があります。
本手順では、Dataprep の利用開始に伴い必要な操作を解説します。

1-1. 各種同意及び許可

Dataprep を初めて利用する場合は、以下の確認画面が表示されるため、利用規約を確認して同意します。

1-1-1

続けて Google から Trifacta への情報提供や、Trifacta によるプロジェクト内のユースカジノ twitterへのアクセスについて確認画面が表示されるため、同意します。

1-1-2
1-1-3

Dataprep へログインします。

1-1-4
1-1-5

1-2. ステージングバケットの設定

Dataprep の利用にあたり、Dataprep 内で利用するユースカジノ twitterを保存するためのストレージ(ステージングバケット)を設定する必要があります。
デフォルトでは US リージョンに自動で作成されるため、デフォルトのままステージングバケットを設定します。

1-2-1

ステージングバケットの設定が完了すると、Dataprep が利用可能となります。

1-2-2

2. フローの作成

Dataprep では、どの元ユースカジノ twitter(ユースカジノ twitterセット)に対し、どんな処理(レシピ)を実施し、どのようにアウトプットするのかを定義したものをフローと呼びます。
本手順では、フローを作成する方法について解説します。

2-1. フローの作成

Dataprep のコンソール画面にて、左側のナビゲーションバーからFlowsユースカジノ twitter。

2-1-1

CreateからBlank Flowを選択してフローを作成します。

2-1-2

2-2. フロー名の編集

フローの名称や説明は、フロー名を選択することで編集できます。
クイックスタートでは、米国連邦選挙委員会の 2016 年のユースカジノ twitterを利用しているため、名前と説明をそのように編集します。

2-2

3. ユースカジノ twitterセットのインポート

本手順では、フローで処理する元ユースカジノ twitter(ユースカジノ twitterセット)のインポートの方法を解説します。

3-1. ユースカジノ twitterセットの選択

フロー画面にてDataset+ユースカジノ twitter。

3-1-1

利用可能なユースカジノ twitterセットが表示されますが、今回は新たにインポートするため、Import datasetsユースカジノ twitter。

3-1-2

3-2. ユースカジノ twitterセットのインポート

ユースカジノ twitterセットのインポート画面からCloud Storageを選択し、検索欄に今回インポートするユースカジノ twitterが保存されているバケットのパスgs://dataprep-samples/us-fecを入力してGoユースカジノ twitter。

3-2-1

cn-2016.txtitcont-2016.txtの 2 つのファイルを選択し、それぞれユースカジノ twitterセット名をCandidate Master 2016Campaign Contributions 2016に変更した後、Import & Add to Flowユースカジノ twitter。

なお、Candidate Master 2016候補者マスターユースカジノ twitterCampaign Contributions 2016選挙献金ユースカジノ twitterです。

3-2-2
3-2-3
3-2-4

3-3. フローの確認

フローに 2 つのユースカジノ twitterセットが追加されていることを確認します。
1 つめのユースカジノ twitterセットには、デフォルトで空のレシピとアウトプットが追加されています。

3-3

4. レシピの作成(その1)

本手順では、候補者マスターユースカジノ twitterに対するレシピ(処理の定義)の作成方法を解説します。
処理の内容としては、候補者マスターユースカジノ twitterから 2016 年の選挙における大統領候補を抽出します。

4-1. レシピの編集

デフォルトで作成された空のレシピを選択し、Edit recipeユースカジノ twitter。

4-1-1

レシピの編集画面では、ユースカジノ twitterセットのプレビューと処理の内容が確認できます。
大規模なユースカジノ twitterセットの場合は、ユースカジノ twitterセットの最初の数行がプレビューとして表示されています。
最初の数行以外を表示したい場合には、initial dataからプレビューの設定を変更できます。

4-1-2

4-2. 年度の抽出

レシピの編集画面では、各列における値の分布をヒストグラムで確認できます。
column2候補者IDなので、各値が一意であることが分かります。
column5年度で、カーソルを当てると行数や割合などが確認できます。
ただし、ユースカジノ twitterセット全体ではなく、プレビューとして表示されているユースカジノ twitterの範囲での分布であることに注意してください。

4-2-1

column5にて 2016 年を含んだ範囲のバーを選択すると、Suggestionsが表示されます。
Keep rowsには、選択した範囲でユースカジノ twitterを抽出する式が表示されています。
2016 年のユースカジノ twitterのみを抽出するため、Editユースカジノ twitter。

4-2-2

Conditionの式を 2016 年のユースカジノ twitterのみを抽出するように修正し、Addユースカジノ twitter。

4-2-3

レシピに処理が追加されたことを確認します。

4-2-4

4-3. ユースカジノ twitter型の修正

column6ですが、ヒストグラムの上部に赤色のバーが表示されています。
説明文にはmismatched valuesとの記述があります。

4-3-1

赤色のバーを選択した状態で、Show only affected Rowsをチェックすると、原因となっている行が表示されます。

4-3-2

これは、column6のユースカジノ twitter型がState(州)であるのに対し、US(国)やGU(島嶼地域、例:グアム)などが含まれており、ユースカジノ twitter型と不一致しているためです。

4-3-3

cloumn6のユースカジノ twitter型をStirngに変更し、ユースカジノ twitter型との不一致を解消します。

4-3-4

バーが全て緑色になったことを確認します。

4-3-5

4-4. 大統領候補の抽出

column7は候補者が大統領候補(P)なのか、副大統領候補(H)なのかを表します。
P(大統領候補)のバーを選択し、SuggestionsからKeep rowsAddを選択して大統領候補のみを抽出します。

4-4-1

以上で候補者マスターユースカジノ twitterから 2016 年の大統領候補を抽出するレシピが完成しました。

4-4-2

5. レシピの作成(その2)

本手順では、選挙献金ユースカジノ twitterに対するレシピ(処理の定義)の作成方法を解説します。
処理の内容としては、選挙献金ユースカジノ twitterから余分な区切り文字を削除した後、加工後の候補者マスターユースカジノ twitterと結合し、献金に関するサマリーを生成します。

5-1. レシピの作成

フロー画面にて、2 つ目のユースカジノ twitterセットの+を選択し、Add new Recipeユースカジノ twitter。

5-1

5-2. 区切り文字の削除

レシピの編集画面でReplaceText or patternユースカジノ twitter。

5-2-1

Columnでは、置換する列の選択ができます。
Multipleでは複数の列を、Allではすべての列を、Rangeでは連続する列の範囲を、AdvancedではMultipleRangeを組み合わせた形で列を指定できます。

5-2-2
5-2-3
5-2-4
5-2-5

Advanced*を指定してすべての列を対象に設定し、Find {start}"|"{end} と入力してAddユースカジノ twitter。
{start}は正規表現における^に相当し、{end}は正規表現における$に相当します。
置換後の文字を空欄のままとしているため、"|"に完全一致する値を削除する処理が追加されます。

5-2-6

5-3. ユースカジノ twitterセットの結合

New Stepを選択して表示される検索欄にjoinと入力し、Join datasetsユースカジノ twitter。

5-3-1

Recipes in current flowタブにて、4. レシピの作成(その 1)で作成した候補者マスターユースカジノ twitterのレシピを選択し、Acceptユースカジノ twitter。

5-3-2

Join keysの編集アイコンユースカジノ twitter。

5-3-3

Currentcolumn2を、Joined-incolumn11を指定し、Save and ContinueNextと選択します。
候補者IDをキーとして 2 つのユースカジノ twitterを結合しています。

5-3-4

結合後のユースカジノ twitterに全ての列を表示するため、全ての列のチェックボックスをチェックし、ReviewAdd to Recipeと選択します。

5-3-5

レシピに処理が追加され、ユースカジノ twitterが結合されていることを確認します。

5-3-6

5-4. 献金ユースカジノ twitterのサマライズ

New Stepを選択して表示される検索欄にpivotと入力し、Pivotユースカジノ twitter。

5-4-1

Row labelsに以下の行を指定します。
それぞれ候補者ID候補者名所属政党献金者です。

  • column2
  • column24
  • column8
  • column9

Valuesには以下の式を入力します。
それぞれ合計献金額平均献金額献金回数です。

  • SUM(column16)
  • average(column16)
  • 0)

Addを選択しユースカジノ twitterをサマライズします。

5-4-2

5-5. 列名の編集

New Stepを選択して表示される検索欄にrenameと入力し、Rename columnsユースカジノ twitter。

5-5-1

OptionManual renameを選択し、以下の通りに各列名を変更しAddユースカジノ twitter。

変更前変更後
column2Candidate_ID
column24Candidate_Name
column8Party_Affiliation
column9Donor_Name
sum_column16Total_Contribution_Sum
average_column16Average_Contribution_Sum
contifNumber_of_Contributions
5-5-2

5-6. 端数処理

New Stepを選択して表示される検索欄にeditと入力し、Edit with formulaユースカジノ twitter。

5-6-1

ColumnsMultipleAverage_Contribution_Sumを指定し、FormulaROUND(Average_Contribution_Sum,0)と入力してAddユースカジノ twitter。

5-6-2

6. ジョブの実行

本手順では、レシピで定義した処理を実際に実行し、加工後のユースカジノ twitterをアウトプットする方法を解説します。

6-1. アウトプットの設定

選挙献金ユースカジノ twitterに対するレシピの編集画面右上からRunユースカジノ twitter。

6-1-1

Publishng ActionsAdd Actionユースカジノ twitter。
なお、デフォルトで csv ファイルを CloudStorage にアウトプットするアクションが設定されています。

6-1-2

Create a new fileユースカジノ twitter。

6-1-3

ファイル名を入力してフォーマットにJSONを指定した後Addユースカジノ twitter。

6-1-4

6-2. ジョブの実行

アクションが追加されたことを確認し、Runユースカジノ twitter。

6-2

6-3. ジョブの確認

左側のナビゲーションバーからJob historyを選択し、対象のレシピ名を選択して進行状況を表示します。

6-3-1

Output destinationsタブではアウトプット一覧を確認できます。
ジョブの完了後、各アウトプットのView on Cloud Storageを選択し、Cloud Storage に遷移します。

6-3-2

対象のバケットにファイルがアウトプットされていることが確認できました。

6-3-3

以上で、全手順が終了となります。

その他の機能

上記の手順では触れなかった機能について、概要を記載します。

Plan

ジョブの実行や HTTP リクエストの実行など、個別のタスクを一連の処理として定義できます。
定義したPlanはスケジュール実行させることが可能です。
設定したスケジュールはSchedulesにて管理できます。

plan

Library

インポート済みのユースカジノ twitterセットなどを確認できます。

library

Connections

ユースカジノ twitterソースとの接続を設定できます。
ユースカジノ twitterソースには BigQuery の他、様々なアプリケーションやユースカジノ twitterベース等を選択できます。
接続されたユースカジノ twitterソースはユースカジノ twitterセットのインポート元として利用できるほか、一部の接続ではアウトプット先としても指定できます。

connections1
connections2

料金

Dataprep には 30 日間の無料期間が存在します。
無料期間の終了後はStarterProfessionalEnterpriseのいずれかのプランで契約が必要です。
各プランの契約形態や料金は以下の通りです。
機能面でもいくつかの違いがありますがここでは割愛します。

プラン名StarterProfessionalEnterprise
契約形態年間もしくは月間年間のみ年間のみ
利用料金(年間)0/user,950/user + ,000(basefee)要見積
利用料金(月間)0/user--
最小利用人数1user~3users~7users~

まとめ

本記事では Dataprep のクイックスタートを通して、Dataprep の基本的な使い方とその利便性について確認しました。
また、クイックスタートでは触れなかった機能の概要や料金形態について簡単に解説しました。
GUI ベースで ETL 処理を定義・実行できるため、直感的に操作しやすい便利なサービスだと感じました。

次回予告

引き続き、Data周りのご紹介を予定しています。

ご期待ください!

著者紹介

伊藤忠テクノソリューションズ株式会社 廣瀬 啓丞

伊藤忠テクノソリューションズ株式会社
廣瀬 啓丞

直近 1 年間ほど、パブリッククラウドに関する技術を担当。
最近は AI の活用を模索中。

Pickup