700 以上のラボとコースにアクセス

Cloud Dataprep での e コマース分析パイプラインの精査と作成 v1.5

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

Cloud Dataprep by Trifacta は、分析を目的として、データの視覚的な探索、クリーニング、準備を行うためのインテリジェント データ サービスで、構造化データと非構造化データの両方に対応しています。このラボでは、Cloud Dataprep の UI を実際に使用して、定期的に実行されて結果が BigQuery に出力される e コマース用の変換パイプラインを作成します。

ここで使用する e コマースのデータセットは、Google Merchandise Store に関する数百万件の Google アナリティクスのレコードを含み、BigQuery に読み込まれています。このラボでは、このデータセットのコピーを使用し、利用できるフィールドや行を詳しく確認して分析情報を取得します。

目標

このラボでは、次のタスクの実行方法について学びます。

  • BigQuery データセットを Cloud Dataprep に接続する
  • Cloud Dataprep でデータセットの品質を調べる
  • Cloud Dataprep でデータ変換パイプラインを作成する
  • BigQuery に出力される変換ジョブをスケジュール設定する

必要なもの

  • Google Cloud Platform プロジェクト
  • Google Chrome ブラウザ(他のブラウザは Cloud Dataprep をサポートしていません)

設定と要件

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

プロジェクトの権限を確認する

Google Cloud で作業を開始する前に、Identity and Access Management(IAM)内で適切な権限がプロジェクトに付与されていることを確認する必要があります。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[IAM と管理] > [IAM] を選択します。

  2. Compute Engine のデフォルトのサービス アカウント {project-number}-compute@developer.gserviceaccount.com が存在し、編集者のロールが割り当てられていることを確認します。アカウントの接頭辞はプロジェクト番号で、ナビゲーション メニュー > [Cloud の概要] > [ダッシュボード] から確認できます。

Compute Engine のデフォルトのサービス アカウント名と編集者のステータスがハイライト表示された [権限] タブページ

注: アカウントが IAM に存在しない場合やアカウントに編集者のロールがない場合は、以下の手順に沿って必要なロールを割り当てます。
  1. Google Cloud コンソールのナビゲーション メニューで、[Cloud の概要] > [ダッシュボード] をクリックします。
  2. プロジェクト番号(例: 729328892908)をコピーします。
  3. ナビゲーション メニューで、[IAM と管理] > [IAM] を選択します。
  4. ロールの表の上部で、[プリンシパル別に表示] の下にある [アクセスを許可] をクリックします。
  5. [新しいプリンシパル] に次のように入力します。
{project-number}-compute@developer.gserviceaccount.com
  1. {project-number} はプロジェクト番号に置き換えてください。
  2. [ロール] で、[Project](または [基本])> [編集者] を選択します。
  3. [保存] をクリックします。

BigQuery コンソールを開く

  1. Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。

[Cloud Console の BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスにはクイックスタート ガイドへのリンクと、UI の更新情報が表示されます。

  1. [完了] をクリックします。

このラボでは主に Cloud Dataprep を使用しますが、BigQuery も必要です。BigQuery は、パイプラインへのデータセット取り込み用のエンドポイント、およびパイプライン完了時の出力先として使用します。

元データ、Cloud Dataprep、Google BigQuery の 3 つのコンポーネントからなるプロセスのフロー

タスク 1. 空の BigQuery データセットを作成する

このタスクでは、新しいパイプラインの出力テーブルを格納する新しい BigQuery データセットを作成します。

  1. 左側のペインで、プロジェクト ID の横にある [アクションを表示](アクションを表示アイコン)をクリックし、[データセットを作成] を選択します。

  2. [データセットを作成する] ダイアログで、次の操作を行います。

  • [データセット ID] に「ecommerce」と入力します。
  • その他の値はデフォルトのままにします。
  1. [データセットを作成] をクリックします。

  2. 次の SQL クエリをコピーして [クエリエディタ] テキスト フィールドに貼り付けます。

#standardSQL CREATE OR REPLACE TABLE ecommerce.all_sessions_raw_dataprep OPTIONS( description="Raw data from analyst team to ingest into Cloud Dataprep" ) AS SELECT * FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20170801'; # このラボでは 1 日分のデータ(56,000 行)に制限
  1. [実行] をクリックします。

一般公開されている e コマースの元データセットの一部がプロジェクトのデータセットにコピーされ、Cloud Dataprep で探索やクリーニングができるようになります。

  1. 元データの新しいテーブルがプロジェクト内に存在することを確認します。

タスク 2. Cloud Dataprep を開く

このタスクでは、Google および Trifacta の利用規約に同意し、Trifacta がプロジェクト データにアクセスすることを許可します。

  1. Cloud Shell で次のコマンドを実行して、Dataprep に正常にアクセスするために必要なサービス アカウントを作成します。
gcloud beta services identity create --service=dataprep.googleapis.com
  1. Google Cloud Platform のコンソールに移動し、ラボのプロジェクトが選択されていることを確認します。

  2. ナビゲーション メニューナビゲーション メニュー アイコン)の [分析] グループの下にある [Dataprep] をクリックします。

  3. Google および Trifacta の利用規約を選択し、[同意する] をクリックします。

  4. [Trifacta とアカウント情報を共有しますか?] ダイアログで、チェックボックスをオンにして [同意して続行] をクリックします。

  5. [許可] をクリックして、Trifacta にプロジェクト データへのアクセスを許可します。この承認プロセスには数分かかる場合があります。

  6. [Google でログイン] ウィンドウが表示されたら、Qwiklab アカウントを選択し、[許可] をクリックします。チェックボックスをオンにして、必要な場合は [同意する] をクリックします。

  7. ストレージ バケットにはデフォルトの場所を使用するため、[続行] をクリックします。

ホームアイコン

Cloud Dataprep のホームページが表示されます。表示されない場合は、[ホーム] をクリックします。

タスク 3. BigQuery データを Cloud Dataprep に接続する

このタスクでは、Cloud Dataprep を BigQuery データソースに接続します。

Cloud Dataprep のページで次の操作を行います。

  1. [Create a new flow] をクリックします。

  2. ページの上部にある [Untitled Flow] をクリックします。

  3. [Rename] ダイアログで次のように指定します。

    • [Flow Name] に「Ecommerce Analytics Pipeline」と入力します。
    • [Flow Description] に「Revenue reporting table for Apparel」と入力します。
  4. [OK] をクリックします。

  5. [+] アイコンをクリックしてデータセットを追加します。

  6. [Add datasets to flow] ダイアログで、左下にある [Import datasets] をクリックします。

  7. 左側のペインで [BigQuery] をクリックします。

  8. e コマースのデータセットが読み込まれたら、それをクリックします。

  9. データセットを作成するには Create dataset アイコン([Create dataset] アイコン)をクリックします。

  10. [Import & Add to Flow] をクリックします。

データソースが自動的に更新されます。

タスク 4. UI を使って e コマース データのフィールドを探索する

このタスクでは、Cloud Dataprep でデータセットのサンプルを読み込んで探索します。

  1. 右側のパネルで [Edit Recipe] をクリックします。

  2. [The Transformer] ダイアログで、必要に応じて [Don't show me any helpers] をクリックします。

[Transformer] ビューにデータセットのサンプルが読み込まれます。この処理には数分かかる場合があります。

all-sessions_raw_dataprep-2 dataset のサンプルを読み込んだ [Transformer] ビュー

以下の各問題に解答してください。

  • Cloud Dataprep では、検索のスピードを上げるためにソース データセットのサンプルを読み込みます。
: パイプライン実行時はソース データセット全体に対して処理が行われます。このサンプルには行がいくつ含まれていますか。

all-sessions_raw_dataprep-2 dataset のサンプルを読み込んだ [Transformer] ビュー

正解: 約 12,000 行

  • channelGrouping 列で最も頻繁に出現する値は何ですか。

all-sessions_raw_dataprep-2 dataset に含まれる fullVisitorID、channelGrouping、time の 3 つの列

正解: Referral

  • セッション数が多い接続元の上位 3 か国はどこですか。

all-sessions_raw_dataprep-2 dataset に含まれる channelGrouping、time、country、city の 4 つの列

正解: 米国、インド、英国

  • totalTransactionRevenue 列の下にある灰色のバーは何を表していますか。

    totalTransactionRevenue 列

    正解: 欠測値

  • このデータサンプルの timeOnSite(秒)、pageviewssessionQualityDim の平均値はそれぞれいくつですか(ヒント: [Column Details] を使用します)。

    [Column Details] オプション

    timeOnSite 列の [概要] タブ

    正解: 平均サイト滞在時間: 942 秒(15.7 分)

    平均ページビュー: 20.44 ページ

    平均セッションの品質ディメンション: 38.36

注: Cloud Dataprep で使用されるデータサンプルによって、値が多少異なる場合があります。
  • sessionQualityDim の値は均等に分布していますか(この列のヒストグラムを確認します)。

    sessionQualityDim の値のヒストグラム

正解: いいえ。低い値(低品質のセッション)に偏っていますが、これは予想どおりです。

  • このデータセット サンプルの期間はいつですか。

正解: 2017 年 8 月 1 日(1 日分のデータ)

  • productSKU 列に赤いバーがあるのはなぜですか。

正解: 赤いバーは値の不一致を表しています。productSKU 列は Cloud Dataprep によって自動的に整数型と識別されましたが、整数以外の値が検出されたため、値が不一致であると見なされました。実際、productSKU は整数であるとは限りません(たとえば、「GGOEGOCD078399」が正しい値である場合もあります)。そのため、この場合は Cloud Dataprep が列の型を誤って識別したことになります(整数型ではなく文字列型でなければなりません)。次の手順でこれを修正します。

注: productSKU 列の型がすでに String になっている場合、赤いバーは表示されません。
  • productSKU 列のデータ型を String に変換するには、productSKU 列の右側にあるメニューを開き(下矢印アイコン をクリック)、[Change type] > [String] をクリックします。

    メニューの [String] オプション

  • 特に件数が多い商品は何ですか(v2ProductName 列を確認します)。 v2ProductName ヒストグラム

正解: Nest の商品

  • 特に件数が多い商品カテゴリは何ですか(v2ProductCategory を確認します)。また、サンプルデータにはいくつのカテゴリがありますか。

    v2ProductCategory ヒストグラム

正解: 約 25 のカテゴリがあり、特に件数が多いのは Nest、(not set)、Apparel です。

  • 正誤問題: 最も件数が多い productVariant は COLOR である。

正解: 誤り。最も件数が多いのは (not set) で、ほとんどの商品(80% 以上)にはバリエーションがありません。

  • タイプの 2 つのカテゴリは何ですか。

正解: PAGE と EVENT

  • productQuantity の平均はいくつですか。

正解: 3.45(異なる値になる場合もあります)

  • このデータセットには固有の SKU がいくつ含まれますか。

正解: 600 以上

  • 特に件数(行数)が多い商品の名前は何ですか。特に件数が多いカテゴリは何ですか。

正解:

Cam Outdoor Security Camera - USA

Cam Indoor Security Camera - USA

Learning Thermostat 3rd Gen-USA - Stainless Steel

  • トランザクションで最も多く使用されている通貨コードは何ですか。

正解: USD(米ドル)

  • itemQuantity または itemRevenue に有効な値はありますか。

正解: いいえ。すべて NULL 値です。

  • 有効な値を持つトランザクション ID の割合はどれくらいですか。また、e コマース データセットではこの割合は何を表していますか。

    transactionID の詳細を表示した [概要] タブ

正解: 約 4.6% のトランザクション ID が有効な値を持ちます。これは、ウェブサイトの平均コンバージョン率を表しています(訪問者の 4.6% が購入)。

  • eCommerceAction_type はいくつありますか。また、eCommerceAction_step で特に件数が多い値は何ですか。

正解:

サンプルでは、6 つのタイプのデータがあります。

特に多い値は 0 と NULL です。

タスク 5. データをクリーニングする

このタスクでは、データをクリーニングするために、使用されていない列の削除、重複行の削除、計算フィールドの作成、行のフィルタを行います。一般的に、スキーマのフィールドが使用されていない場合や、フィールドがすべて NULL 値の場合は、列を削除します。

使用されていない列を削除する

  • 不要な列を選択し、[Delete] をクリックします。この操作は、すべて NULL 値である以下の列に対して行います。

    itemQuantity 列の Delete オプション

  • itemRevenue

  • itemQuantity

重複行を削除する

ソース データセットに重複したセッション値が含まれている可能性があることがわかりました。そのため、重複除去のステップを追加してそれらの行を削除します。

  1. 画面右上のレシピアイコンレシピアイコン)をクリックして [New Step] を選択します。

  2. [Transformation] の検索ボックスで、「deduplicate」と入力し、[Remove duplicate rows] を選択します。

  3. [Add] をクリックします。

  4. ここまでに作成したレシピを確認します。

レシピのステップ

収益がないセッションを除外する

このウェブサイトで商品を 1 つ以上購入したすべてのユーザー セッションを含むテーブルを作成するように依頼されました。そのため、収益が NULL のユーザー セッションを除外します。

  1. totalTransactionRevenue 列で、欠測値を示すバーをクリックします。

  2. [Suggestions] パネルで、値がない行を削除する [Delete rows] をクリックし、[Add] をクリックします(画像を参照)。

[Delete rows] オプションが選択されている状態の [Suggestions] パネル

このステップによって、totalTransactionRevenue が NULL のデータが除外され、収益があるトランザクションのみが含まれるようになります。

タイプが PAGE ではないセッションを除外する

データセットには、ウェブサイトの「ページ」ビューとトリガーされた「イベント」(「商品カテゴリの表示」や「カートへの追加」など)の両方が含まれます。セッションのページビューが重複してカウントされないように、フィルタを追加してページビュー関連のイベントだけが含まれるようにします。

  1. type 列で、PAGE のバーをクリックします。

  2. [Suggestions] パネルで、タイプが PAGE の [Keep rows]、[Add] の順にクリックします。

アパレル商品のみを取得するようにフィルタする

カテゴリが Apparel のトランザクションのみが含まれるよう、出力内容をさらにフィルタする必要が生じました(Apparel には T シャツなどの衣料品が含まれます)。

  1. v2ProductCategory 列の横にあるプルダウン アイコンをクリックします。

  2. [Filter rows] > [On column values] を選択します。

  3. [Contains] を選択します。

  4. [Pattern to match] で「Apparel」(大文字と小文字が区別されます)と入力し、[Add] をクリックします。

注: カタログ内の商品は複数のカテゴリ(「Apparel」と「Home/Apparel/」など)に含まれることがあるため、ここではカテゴリ名の一部に「Apparel」が含まれる行を取得するようにしています。

一致した行を保持したままで v2ProductCategory 列内の「Apparel」を含む行を取得するようフィルタを適用した [Filter rows] パネル

タスク 6. データを拡充する

このラボで使用されるスキーマについて詳しくは、[UA] BigQuery Export スキーマのガイド をご覧ください。スキーマのドキュメントで visitId を検索してその説明を読み、この値がすべてのユーザー セッションに対して一意なのか、そのユーザーに対してのみ一意なのかを確認します。

VisitId: このセッションの ID。通常は _utmb cookie として保存される値の一部で、ユーザーに対してのみ一意です。完全に一意の ID が必要な場合は、「fullVisitorId」と「visitId」を併用してください。

visitId は全ユーザーに対して一意ではありません。

このタスクでは、新しく連結した列を追加して、一意のセッション ID のフィールドを作成します。その後、case ステートメントで e コマースのラベルデータを拡充します。

一意のセッション ID を持つ新しい列を作成する

すでに確認したように、このデータセットには一意のユーザー セッションを表す単一の列がありません。そのため、fullVisitorID フィールドと visitId フィールドを連結してセッションごとに一意の ID を作成します。

  1. [New Step] をクリックします。

  2. [Search transformation] に「concat」と入力し、[Merge columns] を選択します。

  3. [Columns] で、[fullVisitorId] と [visitId] を選択します。

  4. [New column name] に「unique_session_id」と入力し、その他の入力項目はデフォルト値のままにして [Add] をクリックします。

e コマースのアクション タイプの case ステートメントを作成する

eCommerceAction_type は、そのセッションで実際に実行された e コマース アクションにマッピングされる整数型のフィールドです(3 は「カートへの追加」、5 は「決済」など)。この整数値にマッピングされる計算列を作成します。

  1. [New Step] をクリックします。

  2. [Transformation] パネルで、「case」と入力し、[Conditional column] を選択します。

  3. プルダウンで [Case on single column] を選択します。

  4. [Column to evaluate] で [eCommerceAction_type] を指定します。

  5. [Cases (X)] の横にある [Add] を 8 回クリックし、case が合計 9 個になるようにします。

  6. 各 case に対して、以下のマッピング値を指定します(引用符も含めます)。

比較する値 新しい値
1 '商品一覧からのクリック'
2 '商品の詳細の閲覧'
3 'カートへの商品の追加'
4 'カートからの商品の削除'
5 '決済'
6 '購入の完了'
7 '購入の払い戻し'
8 '決済オプション'
0 '不明'

他のフィールドはデフォルト値のままにします。

  1. [New column name] に「eCommerceAction_label」と入力し、[Add] をクリックします。

  2. レシピを確認し、こちらの例と比較します。

    レシピのステップ

タスク 7. BigQuery を読み込む Cloud Dataprep ジョブを実行する

フローが完了したら、ソース データセットに対して変換レシピを実行します。それには、Cloud Dataprep ジョブを実行し、モニタリングします(Cloud Dataflow ジョブが開始、実行されます)。

  1. [Transformer] ページの右上にある [Run] をクリックします。

  2. [Publishing Actions] セクションにある Create-CSV にカーソルを合わせ、[Edit] をクリックします。

  3. 左側のパネルで [BigQuery] を選択して e コマースのデータセットに移動し、[Create a new table] をクリックします。

  4. 出力テーブルを apparel_revenue という名前にし、右側のパネルで [Drop the table every run] を選択します。

  5. [Update] をクリックします。

  6. [Run] をクリックします。

  7. 左側のパネルで [Job history] をクリックして Cloud Dataprep ジョブをモニタリングします。

  8. ジョブが実行される間、1~2 分待ちます。

Cloud Dataprep ジョブが終了したら BigQuery ページを更新し、出力テーブル apparel_revenue が存在することを確認します。

BigQuery コンソール

[apparel_revenue] > [Preview] を選択し、Apparel の商品の収益があるトランザクションのデータが格納されていることを確認します。

[Preview] タブに表示されているクエリ結果

お疲れさまでした

ここでは Cloud Dataprep を使用して、e コマースのデータセットを探索し、繰り返し実行されるデータ変換パイプラインを作成しました。

すでに Google アナリティクス アカウントをお持ちで、BigQuery で独自のデータセットをクエリするには、BigQuery Export の設定に関するこちらのガイドをご参照ください。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。