ターゲット キャンペーン パイプラインを作成する

Cloud Data Fusion を使用して、ターゲット キャンペーンの候補を選択するために顧客データをクリーニング、変換、処理する方法について説明します。


このタスクの手順をガイドに沿って Google Cloud コンソールで直接行う場合は、「ガイドを表示」をクリックしてください。

ガイドを表示


シナリオ

展開中のキャンペーンのプロモーション用のカスタム マーケティング資料を作成し、その資料を顧客の自宅の郵便受けに直接配達してもらいます。

キャンペーンには次の 2 つの制約があります。

  • 所在地: カリフォルニア、ワシントン、オレゴンのお客様だけに配達する。
  • 費用: 燃料を節約するために、家まですぐに行き着ける顧客に配達します。配達先は住所に avenue がある顧客に限定します。

このチュートリアルでは、キャンペーン用に顧客住所のリストを生成する方法を説明します。このチュートリアルでは、次のことを行います。

  1. 顧客データをクリーニングする: カリフォルニア、ワシントン、オレゴンの住所に avenue がある顧客をフィルタします。
  2. 次の処理を行うパイプラインを作成します。

    • フィルタした顧客データを、州の略称を含む公開データセットと結合します。
    • クリーニングと結合を行ったデータを BigQuery テーブルに格納し、BigQuery ウェブ インターフェース を使用したクエリの実行や Looker Studio を使用した分析を実行します。

目標

  • Cloud Data Fusion を 2 つのデータソースに接続する
  • 基本的な変換を適用する
  • 2 つのデータソースを結合する
  • 出力データをシンクに書き込む

準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Data Fusion, BigQuery, Cloud Storage, and Dataproc APIs.

    Enable the APIs

  7. Cloud Data Fusion インスタンスを作成します
    このチュートリアルは、デフォルトの Compute Engine サービス アカウントを使用していることを前提としています。

権限を管理

必要なカスタムロールと権限を作成して割り当てます。

カスタムロールを作成して権限を追加する

  1. Google Cloud コンソールの [ロール] ページに移動します。

    [ロール] ページに移動

  2. [ ロールを作成] をクリックします。

  3. [Title] 項目に「Custom Role-Tutorial」と入力します。

  4. [ 権限を追加] をクリックします。

  5. [権限を追加] ウィンドウで次の権限を選択し、[追加] をクリックします。

    • bigquery.datasets.create
    • bigquery.jobs.create
    • storage.buckets.create
  6. [作成] をクリックします。

デフォルトの Compute Engine サービス アカウントにカスタムロールを割り当てる

  1. Cloud Data Fusion の [Instances] ページに移動します。

    インスタンスを作成する

  2. インスタンスの名前をクリックします。

  3. デフォルトの Dataproc サービス アカウントをメモします。この情報はインスタンスの詳細ページに含まれます。

    Dataproc サービス アカウント名の形式は次のとおりです。

    CUSTOMER_PROJECT_NUMBER-compute@developer.gserviceaccount.com

    Dataproc サービス アカウントの詳細を確認してください。

  4. [IAM] ページに移動します。

    [ロール] ページに移動

  5. [フィルタ] バーに、デフォルトの Dataproc サービス アカウントの名前を入力します。

  6. デフォルトの Compute Engine サービス アカウントで、[ 編集] をクリックします。

  7. [ 別のロールを追加] をクリックします。

  8. [ロールを選択] フィールドで、[カスタムロール チュートリアル] を選択します。

  9. [保存] をクリックします。

  10. サービス アカウントに Cloud Data Fusion 実行者のロールがすでに割り当てられていることを確認します。

顧客データを準備する

このチュートリアルでは、次の 2 つの入力データセットが必要です。どちらも Cloud Data Fusion インスタンスで提供されています。

  • 顧客データのサンプル: customers.csv という名前の CSV ファイル。
  • 州の略称: state_abbreviations という名前の BigQuery テーブル。

顧客データを読み込む

  1. Cloud Data Fusion の [Instances] ページに移動します。

    [インスタンス] に移動

  2. 使用している Cloud Data Fusion インスタンスで、[View instance] をクリックします。Cloud Data Fusion のウェブ インターフェースが新しいタブで開きます。

  3. [Wrangler] をクリックします。[Wrangler] ページが開きます。

  4. [Connections] ペインで、[GCS] > [Sample Buckets] に移動します。

  5. [campaign-tutorial] をクリックします。

  6. customers.csv をクリックします。

  7. [Parsing options] ウィンドウで、次のように指定します。

    • Format: csv
    • 引用符付きの値を有効にする: False
    • 引用符付きの値を有効にする: False
    • ファイル エンコード: UTF-8
  8. [Confirm] をクリックすると、顧客データが Wrangler の新しいタブに読み込まれます。

    読み込まれた顧客データ

顧客データをクリーニングする

これには 2 つのサブタスクが含まれます。

  • スキーマを設定する
  • 目的のターゲット オーディエンスのみを表示するように顧客データをフィルタする

スキーマを設定する

適切な名前をテーブルの列に割り当てて、データのスキーマを設定します。body_1body_2 などの列にわかりやすい名前を付ける手順は次のとおりです。

  1. 右ペインで [Columns] タブをクリックします。
  2. [Column names] プルダウンをクリックし、[Set all] を選択します。
  3. [Bulk set column] ダイアログ ボックスに、カンマ区切りの次の列名を入力します。

    Name,StreetAddress,City,State,Country
    
  4. [適用] をクリックします。

データをフィルタリングする

カリフォルニア、オレゴン、ワシントンに住んでいる顧客のみを表示するようにデータをフィルタリングします。

これらの州以外の値を含むすべての行を削除します。

  1. State 列のプルダウンをクリックして、[Filter] を選択します。
  2. フィルタ ウィンドウで次の操作を行います。

    1. [Keep row] をクリックします。
    2. [If] プルダウンをクリックして、[value matching regex] を選択します。
    3. 次の正規表現を入力します。

      ^(California|Oregon|Washington)$
      
    4. [適用] をクリックします。

    [State] 列の値は、CaliforniaOregonWashington です。

データをフィルタリングして、住所に avenue を含む顧客のみを表示します。文字列 Avenue を含む住所のみを保持します。

  1. StreetAddress 列のプルダウンをクリックして、[StreetAddress] を選択します。
  2. フィルタ ウィンドウで次の操作を行います。
    1. [Keep row] をクリックします。
    2. If プルダウンから [value contains] を選択し、「Avenue」と入力します。
    3. [Ignore case] を選択します。
    4. [適用] をクリックします。

データセット全体に対して並列処理ジョブを実行する前、Wrangler にはデータセットの最初の 1000 個の値しか表示されません。一部のデータをフィルタリングしたため、Wrangler の表示に残った顧客はほんの一部です。

バッチ パイプラインを作成する

ここまで、データのクリーニングとデータの一部の変換を実行しました。これで、データセット全体に対して変換を実行する、バッチ パイプラインを作成できます。

Cloud Data Fusion は、スタジオで構築したパイプラインを Apache Spark プログラムに変換します。プログラムは、エフェメラル Dataproc クラスタで変換を並列に実行します。このプロセスにより、インフラストラクチャを処理することなく、スケーラブルかつ信頼性の高い方法で、膨大な量のデータに対して複雑な変換を簡単に行うことができます。

  1. [Wrangler] ページで [Create a pipeline] をクリックします。
  2. [Batch pipeline] を選択します。[Studio] ページが開きます。
  3. Studio のページで、GCSFile ソースノードが GCSFile ノードに接続されています。

    Wrangler ノードに接続されている GCSFile ノード

    Wrangler ページで適用した変換は、Studio ページの [Wrangler] ノードに表示されます。

  4. 適用した変換を表示するには、Wrangler ノードの上にポインタを置いて [Properties] をクリックします。

    適用した変換が [Directives] に表示されます。

    適用した変換を表示する

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

  6. [ 閉じる] をクリックします。

[Wrangle] をクリックすると、[Wrangler] ページに戻り、さらに変換を適用できます。追加した変換が [Studio] ページに表示されます。

たとえば、Country 列は、値が常に USA であるため不要です。この列を削除する手順は次のとおりです。

  1. [Wrangle] をクリックします。
  2. Country の横にある下向き矢印をクリックし、[Delete Column] を選択します。
  3. [適用] をクリックします。[Wrangler] ページが閉じ、[Studio] ページで [Wrangler Properties] ウィンドウが開きます。[Directives] に「drop Country」が表示されます。
  4. [閉じる] をクリックします。

州名を略称にする

配達用車両のナビゲーション システムは、州名の略称(カリフォルニア州ではなく CA)を含む住所のみを認識します。そして、顧客データには完全な州名が含まれています。

公開されている BigQuery state_abbreviations テーブルには 2 つの列があり、1 つは完全な州名、もう 1 つは州名の略称です。このテーブルを使用して、顧客データの州名を更新できます。

BigQuery の州名データを表示する

  1. 別のタブで BigQuery Studio ページに移動します。

    [BigQuery] に移動

  2. [Create SQL query] をクリックして、クエリエディタに次のクエリを入力します。

    SELECT * FROM `dis-user-guide.campaign_tutorial.state_abbreviations`
    
  3. [実行] をクリックします。

    BigQuery に州名と略称のリストが表示されます。

BigQuery テーブルにアクセスする

BigQuery state_abbreviations テーブルにアクセスするソースをパイプラインに追加します。

  1. Cloud Data Fusion Studio のページに移動し、[Source] メニューを開きます。
  2. [BigQuery] をクリックします。

    BigQuery ソースノードが他の 2 つのノードとともにキャンバスに表示されます。

  3. ポインタを BigQuery ソースノードの上に置き、[Properties] をクリックします。

    1. [データセット ID] フィールドに「dis-user-guide」と入力します。
    2. [Reference Name] フィールドに「state_abbreviations」と入力します。
    3. [Dataset] フィールドに「campaign_tutorial」と入力します。
    4. [Table] フィールドに「state_abbreviations」と入力します。
  4. [Get Schema] をクリックして、BigQuery からテーブルのスキーマを読み込みます。

  5. [閉じる] をクリックします。

2 つのデータソースを結合する

州名の略称を持つ顧客データを含む出力を生成するには、顧客データと州の略称の 2 つのデータソースを結合します。

  1. Cloud Data Fusion Studio のページに移動し、[分析] メニューを開きます。
  2. [Joiner] をクリックします。

    SQL Join に似たアクションを表す Joiner ノードがキャンバスに表示されます。

  3. ソースノードの右端にある接続矢印を宛先ノードにドラッグ&ドロップして、Wrangler ノードBigQuery ノードを Joiner ノードに接続します。

    Wrangler と BigQuery のノードを Joiner ノードに結合する

  4. ポインタを Joiner ノードの上に置き、[Properties] をクリックします。

    1. [Fields] セクションで [Wrangler] と [BigQuery] を開きます。

      1. Wrangler の [state] チェックボックスをオフにします。
      2. 州名は略称のみ必要で完全な州名は不要なため、BigQuery の [name] チェックボックスをオフにします。
      3. BigQuery の [abbreviation] のチェックボックスをオンのままにして、エイリアスを State に変更します。

        Joiner ノードのプロパティ

    2. [Join Type] フィールドの値は [Outer] のままにします。[Required inputs] で、[Wrangler] チェックボックスをオンにします。

    3. [Join condition] セクションで、Wrangler に対して [State] を選択します。BigQuery の場合は、[名前] を選択します。

    4. 設定した結合によって得られるスキーマを生成します。[Get Schema] をクリックします。

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

    6. [閉じる] をクリックします。

BigQuery に出力を保存する

パイプラインの結果を BigQuery テーブルに格納します。 データを格納する場所をシンクといいます。

  1. Cloud Data Fusion Studio ページに移動し、[Sink] を開きます。
  2. [BigQuery] をクリックします。
  3. Joiner ノードを BigQuery ノードに接続します。

    Joiner ノードと BigQuery ノードを接続する

  4. ポインタを BigQuery ノードの上に置き、[Properties] をクリックします。

    1. [Dataset] フィールドに「dis_user_guide」と入力します。
    2. [Table] フィールドで customer_data_abbreviated_states を選択します。
    3. [閉じる] をクリックします。

パイプラインをデプロイして実行する

  1. Studio ページで、[Name your pipeline] をクリックし、「CampaignPipeline」と入力します。
  2. [保存] をクリックします。
  3. 右上隅の [Deploy] をクリックします。
  4. デプロイが完了したら、[Run] をクリックします。

パイプラインの実行には数分を要する場合があります。待機している間、パイプラインのステータスが [Provisioning] > [Starting] > [Running] > [Deprovisioning] > [Succeeded] に変わるのを確認できます。

結果を見る

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. [Create SQL query] をクリックします。

  3. customer_data_abbreviated_states テーブルに対してクエリを実行します。

    SELECT * FROM dis_user_guide.customer_data_abbreviated_states LIMIT 1000
    

    結果を見る

これで、データ パイプラインが正常に作成されました。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。

BigQuery データセットを削除する

このチュートリアルで作成した BigQuery データセットを削除するには、次のようにします。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. dis_user_guide データセットを選択します。
  3. [Delete dataset] をクリックします。

Cloud Data Fusion インスタンスを削除する

手順に従って Cloud Data Fusion インスタンスを削除します

プロジェクトの削除

課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除するには:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

次のステップ