Adobe Analytics

Adobe Analytics: DatafeedをGoogle BigQueryにロード(2019年9月版)

こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。

2年前に Adobe Analytics: データフィードをGoogle BigQueryのテーブルにロードする という記事を書いたのですが、さすがに情報が古くなりました。
というわけで「今やるならこの方法」、というやり方です。

DatafeedをSFTPでGCEに送る

これまた2年前に書いた Adobe Analytics: データフィードをGoogle Compute EngineのLinuxインスタンスにSFTP転送する という記事で、CentO7S7のSFTPサーバーを立てる方法を書きましたが、その後私がUbuntu派に宗旨替えしたので簡単に書き直します。

1. まずはGCEでUbuntu 18.04LTSのインスタンス立てます。

tar.gzファイルを解凍するので、Datafeedのデータサイズに応じてマシンタイプやディスクサイズを適宜選んで下さい。

2. SSHでUbuntuにログインして、authorized_keys にAdobeの公開鍵を登録します。

Adobeの公開鍵は2019年9月現在、ここからダウンロード出来ます。
実は全クライアントで共通の公開鍵使ってます。

UbuntuにSSHログインしてから、こうやればOKです。

wget https://aauicdnva7.azureedge.net/deploy/builds/profile201908-31635.Ifecdd6.M0-23/public_keys/private_sftp_key-2013-10.pub
echo "#adobe pubkey" >> ~/.ssh/authorized_keys
cat private_sftp_key-2013-10.pub >> ~/.ssh/authorized_keys

3. Adobe管理画面でDatafeed配信設定をする

管理画面で以下のフィード配信設定を行います。

■フィード情報

データフィード名: 任意の名前をつけます。
レポートスイート: データフィードを配信する対象RSを選択
メールアドレス: 配信完了や失敗の通知メールを受けとるメアドを入力
フィード間隔: 毎日
遅延処理: 遅延なし
開始日と終了日: データフィードの配信開始日を選ぶ。最大で3年前のデータから配信出来ます。
連続フィード: チェック入れる

■宛先

タイプ: SFTP
ホスト: GCE VMのIPアドレス
パス: データフィードをアップロードするディレクトリ
ユーザー名: SFTPアップロード先のLinuxユーザー名

■データ列の定義
エスケープ文字を削除: チェック入れる
列テンプレート: All Columns Premium (August 2018)
圧縮形式: gzip
パッケージタイプ: 単一のファイル
マニフェスト: ファイルなし

「列テンプレート」は All Columns Premium (August 2018) を使います。
1065個のカラムが含まれるバージョンです。

All Columns Premium (August 2018)

なぜ列テンプレートを指定するのかというと、AdobeAnalyticsのカラムは新機能がリリースされると増える事があります。
複数レポートスイートを扱っている場合に、あとから作成したレポートスイートと既存レポートスイートでカラムがずれてしまうので、あえてカラム数を限定します。

BigQueryにテーブルを作成する

hit_dataテーブル作成用bashスクリプトを書いたので、githubに置いておきます。
下記の設定だけ書き換えて実行すれば、All Columns Premium (August 2018) で指定した1065個のカラムを持ったテーブルが出来上がります。

project=myproject
dataset=adobe_datafeed
table=hit_data

bq mkコマンドでスキーマ定義をする際に、–time_partitioning_fieldパラメータで hit_time_gmt を指定して日別分割パーティションを作ってますが、もし他のカラム(例えばdate_time)を使いたければ直してください。
パーティションテーブルの作成については、以前この記事で解説したとおりです。

BiQueryにデータをロードする

Adobeからデータフィードのtar.gzファイルが届いたら、それをtarで展開してBigQueryにロードします。
これも展開してデータをロードするためのbashスクリプトを書いたのでgithubに置いておきます。

これも下記の設定を変えて実行すれば、hit_data.tsvならびに関連するルックアップ用のサポートファイルをアップロードしてくれます。

bucket=mybucket
project=myproject
dataset=adobe_datafeed
table=hit_data

ここで言うbucketは、BiqQueryにロードが済んだtar.gzファイルのバックアップ先のCloud Storageバケットです。
バケットは別途用意しておいてください。

複数のtar.gzファイルがあっても順番に展開して、hit_data.tsvをBigQueryにロードするようにループ処理をいれてます。
あと、ルックアップ用のサポートファイルは最新版だけあればいいので、最後にロードしてます。

サポートファイルのうち、plugins.tsvはSiteCatalystとの互換性とのために含まれてますが、今はもう使ってないので無視してます。

以上でAdobe DatafeedをBigQueryにロードする事が簡単に出来ます。
ロードしたあとは、これまた以前書いた Adobe Analytics + Google BigQueryでよく使うSQL例 6選 という記事を参考にしたり、Adobeのヘルプを読みながらBigQuery上でクエリをぶん回してください。

弊社では、Google Cloud認定データエンジニア資格とAdobe認定エキスパート資格を保持した技術者達によるデータ分析基盤構築業務を承っております。
お問い合わせはこちらからどうぞ

クロスデバイス(Cross Device)って何?前のページ

Big QueryでWindow関数を用いて、累積和を計算する次のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Adobe Analytics

    Adobe AnalyticsとGoogle Analyticsの違い③ カスタム計測のされ方の違い…

    こんにちは。CEOの原田です。今回もAAとGAの違いを述べていきま…

  2. Adobe Analytics

    AdobeAnalytics: Adobe I/OのAPIを使ってSAINT分類データを取得する

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  3. Analytics Hub

    BigQueryでもデータクリーンルームの検証

    こんちには、喜田です。エクスチュアでは顧客のSnowflak…

  4. Adobe Analytics

    サイトセクションとは-Adobe Analyticsの指標説明

    今回はサイトセクションについて説明いたします。サイトセクションとは…

  5. Google Cloud Platform

    Looker: LookerbotをGoogle Cloud Platformで動かす

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  6. Adobe Analytics

    Report&Analytics グラフについて

    こんにちは!インターン生の藤本です。私は、最近ACEの試験(Repo…

カテゴリ
最近の記事
  1. dbt Fusion使ってみた
  2. Manusを使ってみたうえでManusに感想ブログを書かせて…
  3. SquadbaseとStreamlitでお手軽アプリ開発
  4. [Snowflake Summit 2025] Snowfl…
  5. [Snowflake新機能]AI_AGGを試してみた
  1. Google Tag Manager

    GTMのプレビューモードを共有したい
  2. Google Tag Manager

    GTMの検証でプレビューのSummaryを上手く使う
  3. Metabase

    Metabotを使ってSlackにMetabaseのグラフを投稿する
  4. Adobe Analytics

    Adobe Analytics: ランドスケイプの「企業ログ解析データベースAP…
  5. Adobe Analytics

    AdobeAnalyticsの分類インポーターでFTP専用ソフトを使わずFTPイ…
PAGE TOP