Amazon AppFlowとAWS Glue DataBrewでPardotのデータをノーコードで取得~クレンジングする

2022.08.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

データアナリティクス事業本部インテグレーション部コンサルティングチーム・新納(にいの)です。

みなさん、GUIは好きですか?ノーコードだと誰でもデータ加工が簡単に行えるメリットがあっていいですよね。

今回はマーケティングオートメーションツールであるMarketing Cloud Account Engagement(旧:Pardot)のデータを、データ取得~データクレンジングまでAmazon AppFlowとAWS Glue DataBrewを使ってGUIで実施します。

前提

Amazon AppFlowとは

SaaSサービスのデータをAmazon RedshiftやAmazon S3といったAWSサービスや、SnowflakeやSalesforceなどに転送できるフルマネージドなデータ統合サービスです。

AWS Glue DataBrewとは

データのクリーンナップ、正規化をビジュアルインターフェースで行えるデータ準備サービスです。

2021年11月より、Glue DataBrewではAppFlowのフローによって作成されるデータをデータセットとして直接指定できるようになりました。本エントリではこの機能を使って検証しています。

今回の構成

今回の構成は以下の通り。

  • Amazon AppFlowを使ってPardotのデータをS3バケットに連携するフローを作成する
  • AWS Glue DataBrewでデータをGUIでクレンジングする
  • クレンジングした結果をS3バケットに出力する

この構成のいいところは、Pardotからのデータ取得からデータの加工までをGUIベースで実施できるという点です。今回は触れていませんがQuickSightを使えば可視化までGUIで実施できます。

※Pardotは2022年4月7日より「Marketing Cloud Account Engagement」に名称変更していますが、本記事ではAWSマネジメントコンソール上の表記に従って「Pardot」と記載いたします。

Amazon AppFlowの設定

今回はPardotのデータをAppFlowで連携します。連携方法は以下のエントリをご参照ください。

AppFlowをGlue DataBrewのデータセットとして指定する場合は、AppFlow側の設定で「データ転送の設定」を「すべてのレコードを集約する」に設定している必要があります。この設定により、一回フローが実行されるごとにファイルが一つにまとめられて出力します。

また、データの送信先にはAmazon S3を指定してください。

AWS Glue DataBrewでデータクレンジングする

AppFlowをデータセットに指定

AWSマネジメントコンソールからAWS Glue DataBrewの画面へ移動し、任意の名前でプロジェクトを作成します。

今回は新しいデータセットを作成します。データセット名に任意の名前を入力します。

データセットには「Amazon AppFlow」を指定し、先ほど作成したフローを選択します。

プロジェクトを作成するとセッションが開始されます。準備には約一分ほどかかります。なお、プロジェクト画面が開くとセッションが開始され課金も始まります。(1$/30分、未操作が続くとサスペンドされる)

準備ができたらアイコン部分から様々なデータ加工が実施可能となります。

個人情報をマスクしてみる

今回は例として、個人情報が入ったカラムをマスクしてみます。「機密」メニューから「値をマスキング」を選択します。

ソース列でマスクしたい列を選択し、マスキングする値を設定します。こうした個人情報(PII)の検出やマスキングの詳細については以下のエントリをご参照ください。

一例として、Emailアドレスは以下のような形式にマスキングされました。

実行する

Glue DataBrewでは先ほどまでの手順で作成した、データセットに対して適用できる変換処理のセットを「レシピ」と呼びます。このレシピを実行するにはジョブの作成が必要です。

ジョブの作成画面に移動し、「レシピジョブの作成」から先ほど作成したプロジェクトを選択します。

変換結果の出力先を選択します。今回はS3バケットに出力するように設定しました。

今回は新しくIAMロールを作成します。サフィックスには任意の名前を入力します。

スケジュールタブからスケジュール実行の設定も可能です。繰り返し実行、特定の時刻での実行、cronを入力しての設定が可能です。

ジョブの実行結果はレシピジョブタブから確認可能です。「ジョブの出力場所」をクリックすると該当のS3バケットや出力タイプが確認できます。

S3バケットへ遷移すると、ジョブ名と実行日が付与されたフォルダが作成されていることが確認できました。

まとめ

Glue DataBrewはGoogle Analyticsのように配列を持つJSONファイルをクレンジングするのは少し難しいのですが、データのプロファイリングも簡単に確認できますし、特に簡単なデータクレンジングを実行する環境を作るには便利に使えると感じました。

AppFlowと組み合わせることでデータ取得もノーコードでできますので、データ準備のハードルが下がってますます便利に使えそうです。

あわせて読みたい