ターゲティング キャンペーン パイプライン

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

事例

展開中のキャンペーンの販促用にお得意様向けのマーケティング資料を作成しようとしています。その資料は顧客の自宅の郵便受けに直接配布する予定です。

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

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

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

  1. 顧客データをクリーニングする: カリフォルニア、ワシントン、オレゴンの住所に avenue がある顧客をフィルタします。
  2. 次の処理を行うパイプラインを作成します。
    • フィルタした顧客データを、州の略称を含む公開データセットと結合します。
    • クリーニングと結合を行ったデータを BigQuery テーブルに格納し、BigQuery ウェブ UI を使用したクエリの実行やデータポータルを使用した分析を実行します。

目標

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

費用

このチュートリアルでは、Google Cloud の課金対象となる以下のコンポーネントを使用します。

このチュートリアルを実施するたびに、3 個のノード(1 個のマスター、2 個のワーカー)からなる Dataproc クラスタが実行され、約 6 分間で約 6 MB のデータが BigQuery に書き込まれます。BigQuery に格納するデータはごく少量であるため、この見積もりでは BigQuery の費用を無視します。これらの数値に基づき、このパイプラインを 1 回実行する費用は概算で次のようになります。

総費用 = Cloud Data Fusion の費用 + Dataproc の費用

この数式の各要素は、次のように細かく分けることができます。

Cloud Data Fusion の費用 = (時間 * Cloud Data Fusion のレート)

Dataproc の費用 = (時間 * VM の数 * (Compute Engine のレート + Dataproc のレート))

たとえば、us-west1 リージョンに 3 つの n1-standard4 VM がある Cloud Data Fusion のデフォルト Compute Engine プロファイルを使用した場合の、6 分間のジョブの費用の見積もりを考えてみます。

  • 時間 = 0.1 時間
  • Data Fusion のレート = 1 時間当たり $1.8
  • VM の数 = 3
  • Compute Engine のレート = VM ごとに 1 時間当たり $0.19
  • Dataproc のレート = VM ごとに 1 時間当たり $0.01

費用計算式にこれらの値を入れて計算すると、この例の場合の合計費用は次のようになります。

(0.1 * 1.8) + (0.1 * 3 * (0.1900 + 0.01)) = $0.24(24 セント)

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Cloud Data Fusion, Cloud Storage, BigQuery and Cloud Dataproc API を有効にします。

    API を有効にする

  5. Cloud Data Fusion インスタンスを作成します

顧客データを準備する

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

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

顧客データを読み込む

  1. Cloud Data Fusion ウェブ UI に移動します。
  2. ウェブ UI の [Wrangler] ページに移動します。
  3. 左側のパネルの Google Cloud Storage で、[サンプル バケット] をクリックします。
  4. [campaign-tutorial] をクリックします。
  5. customers.csv をクリックします。顧客データが表示されます。

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

顧客データを解析してテーブル形式にし、スキーマを設定し、顧客データをフィルタリングして、必要なターゲット ユーザーのみを表示します。

データを解析する

  1. body 列のプルダウンをクリックします。
  2. [Parse > CSV] を選択します。
  3. 区切り文字をカンマにして、[適用] をクリックします。画像
  4. データは複数の列に分割されるため、元の body 列は不要になります。body 列のプルダウンをクリックし、[列の削除] を選択します。

スキーマを設定する

適切な名前をテーブルの列に割り当てて、データのスキーマを設定します。列の名前を bodyXX から、それぞれの列に含まれる情報を表す名前に変更します。

  1. 右側の [] タブで [列の名前] プルダウンをクリックし、[すべてを設定] を選択します。
  2. [Bulk set column names] ダイアログ ボックスに、カンマ区切りテキスト Name,StreetAddress,City,State,Country を入力します。
  3. [適用] をクリックします。

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

カリフォルニア、オレゴン、ワシントンに住んでいる顧客のみを表示するようにデータをフィルタリングします。これを行うには、これらの 3 つの州以外の値を含む行をすべて削除します。

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

    1. [Keep row] をクリックします。
    2. [If] プルダウンで、[値が正規表現に一致] を選択します。
    3. 次の正規表現を入力します。^(California|Oregon|Washington)$
    4. [Apply] をクリックします。

    State 列の値は、「California」、「Oregon」、「Washington」です。

データをフィルタリングして、住所に avenue を含む顧客のみを表示します。そのために、文字列「avenue」を含むアドレスのみを保持します。

  1. StreetAddress 列の左側にある、下矢印をクリックして [フィルタ] を選択します。
  2. If プルダウンから [value contains] を選択し、Avenue と入力します。
  3. [Ignore case] を選択します。

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

パイプラインを作成する

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

  1. Wrangler の右上にある [Create pipeline] をクリックします。
  2. [Batch pipeline] を選択します。Pipeline Studio ページが表示されます。
  3. 左上に Data Pipeline - Batch がパイプライン タイプとして表示されていることを確認します。

Pipeline Studio キャンバスで、GCSFile ソースノードが Wrangler ノードに接続されます。

Wrangler ビューで適用したすべての変換が、Pipeline Studio キャンバスの Wrangler ノードに表示されます。適用した変換を確認するには、ポインタを Wrangler ノードの上に置き、[プロパティ] をクリックします。[ディレクティブ] の下に、適用した変換が表示されます。

[Wrangle] をクリックすると、より多くの変換を適用できます。この場合、[Wrangler] ページに戻ります。Pipeline Studio ビューのノード プロパティに戻ると、追加した新しい変換が表示されます。

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

  1. [Wrangle] をクリックします。
  2. の横にある下向き矢印をクリックし、[列の削除] を選択します。
  3. [適用] をクリックします。Wrangler ビューが閉じ、Pipeline Studio の [Wrangler Properties] ウィンドウに戻ります。[ディレクティブ] セクションに drop Country が表示されます。
  4. [X] ボタンをクリックします。

州名を略称にする

配送車両のナビゲーション システムでは州名が略称で記されている住所のみを認識しますが(California ではなく CA)、現在の顧客データには完全な州名が含まれています。

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

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

  1. 別のタブで、Cloud Console の BigQuery UI を開きます。

    BigQuery UI に移動する

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

    SELECT * FROM `dis-user-guide.campaign_tutorial.state_abbreviations`
    

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

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

  1. Pipeline Studio の [Cloud Data Fusion] タブに戻り、左側のプラグイン セクションで [Source] をクリックします。
  2. [BigQuery] をクリックします。

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

  3. ポインタを BigQuery ソースノードの上に置き、[Properties] をクリックします。
    1. [Reference Name] に「state_abbreviations」と入力します。
    2. [Dataset Project ID Name] に「dis-user-guide」と入力します。
    3. [Dataset] に「campaign_tutorial」と入力します。
    4. [Table] に「state_abbreviations」と入力します。
  4. [Get Schema] をクリックして、BigQuery からテーブルのスキーマを読み込みます。
  5. [X] ボタンをクリックします。

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

顧客データと州の略称の 2 つのデータソースを結合して、州名の略称が記された顧客データを含む出力を生成します。

  1. Pipeline Studio の左側のプラグイン セクションにある [アナリティクス] をクリックします。
  2. [Joiner] をクリックします。

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

  3. Wrangler ノードと BigQuery ノードを Joiner ノードに接続します。ソースノードの右端にある接続矢印をドラッグして宛先ノードにドロップします。
  4. ポインタを Joiner ノードの上に置き、[Properties] をクリックします。
    1. [Join] にある [Wrangler] と [BigQuery] を展開します。
      1. Wrangler フィールドと BigQuery名前 の選択を解除します。これは、州の完全な名前ではなく、省略された州の名前のみが必要だからです。
      2. BigQuery で、abbreviation フィールドのエイリアスを State に変更して、識別しやすくします。
    2. [Join Type] の値は Outer のままにします。[必要な入力] では Wrangler を選択します。
    3. [Join Condition] は、Wrangler ノードの State 列を BigQuery ノードの name 列と結合する結合条件を設定します。
    4. 設定した結合によって得られるスキーマを生成します。[Get Schema] をクリックします。
    5. [X] ボタンをクリックします。

BigQuery に出力を保存する

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

  1. Pipeline Studio の左側のプラグイン セクションにある [Sink] をクリックします。
  2. [BigQuery Table] をクリックします。
  3. Joiner ノードを BigQuery Table ノードに接続します。
  4. ポインタを BigQuery Table ノードの上に置き、[Properties] をクリックします。
    1. [Reference Name] に「customer_data_abbreviated_states」と入力します。
    2. [Dataset] に「dis_user_guide」と入力します。
    3. [Table] には「customer_data_abbreviated_states」を選択します。
    4. [X] ボタンをクリックします。

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

  1. Pipeline Studio で、[Name your pipeline] をクリックして「CampaignPipeline」と入力します。
  2. 右上隅の [Deploy] をクリックします。
  3. デプロイが完了したら、[Run] をクリックします。パイプラインの実行には数分を要する場合があります。その間に、パイプラインの [ステータス] はプロビジョニング開始実行中プロビジョニング解除中成功と推移します。

結果を見る

  1. BigQuery UI で campaign_targets テーブルに対してクエリを実行します。

    BigQuery UI に移動する

  2. 次のクエリのプロジェクト名を、実際のプロジェクト名に更新します。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

プロジェクトの削除

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

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

  1. Cloud Console で [リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

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

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

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

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

  1. Cloud Console で、BigQuery ページに移動します。

    BigQuery ページに移動

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

次のステップ