Adobe Analytics

Adobe Analytics: データフィードをGoogle Compute EngineのLinuxインスタンスにSFTP転送する

こんにちは、エクスチュアCTOの権です。

Twitter:@exturekwon

もはやWeb解析だけの時代は終わり、様々なデバイス・チャネルからの顧客データを集めて分析して最適化して行くというのをやろうとすると、やはり出てくるのがビッグデータの処理。

というわけで、今回からはAdobe AnalyticsやCRMなどからあらゆるデータをGoogle Cloud Platform上に集約して繋げて分析して、ディープラーニングして最適化して、自動的にセグメント分けして、などなどの施策を実施するための技術的なメモを不定期連載して行きます

なぜGoogle Cloud Platformなのかというと、無料トライアルが12ヶ月あるのと、常時無料使用プランもあるので、クラウド初心者エンジニアでも試しやすいという点です。

まずは、Adobe Analyticsのデータフィードファイルを、Google Compute Engine上のLinuxVMインスタンスにSFTPで転送する事から始めてみます。

やるべき事は
1. Google Compute EngineでLinuxVMインスタンスを立てる。
2. VMにAdobe Analyticsのデータフィード受け取り用のLinuxユーザーを追加する
3. Adobe Analyticsのデータフィード配信設定を作成する
4. Adobeの公開鍵を.sshディレクトリに設置する
です。

1. Google Compute EngineでLinuxVMインスタンスを立てる

まずは受け皿となるGCEを用意します。
Google Cloud Platformをまだ使っていない場合は、まずは無料トライアルから始めましょう。

Google Cloud Platform無料トライアル
https://cloud.google.com/free/?hl=ja

GCP登録後、[Compute Engine] > [VMインスタンス] を開き、インスタンスを追加します。
常時無料プランの下記スペックで試します。

マシンタイプ: f1-micro
ゾーン: us-west1-a
ディスク: 標準の永続ディスク 30GB (CentOS7)
ファイアウォール: HTTP,HTTPSを許可
外部IP: 固定IP

固定IPだと、インスタンスを削除して未使用状態のまま保持してると課金されてしまうようですので、注意しましょう。

あと、GCPをコマンドラインで管理出来るCloud SDKをPCにインストールしておきます。
ローカルPCのターミナルから、VMにsshでログインしたりファイル転送する事が出来ます。

Cloud SDK
https://cloud.google.com/sdk/?hl=ja

2. Adobe Analyticsのデータフィード受け取り用のLinuxユーザーを追加する

VMにログインして、datafeedユーザーを追加します。

$ sudo useradd datafeed
$ sudo passwd datafeed #パスワードを設定

任意でデータフィードファイルアップロード用のディレクトリを作っておきます。
私はfilesというディレクトリを作りました。
また、.sshディレクトリも作成しておきます。
.sshディレクトリのパーミッションは700にします。

$ su - datafeed
Password: #パスワードを入力
$ mkdir files
$ mkdir .ssh
$ chmod 700 .ssh

3. Adobe Analyticsのデータフィード配信設定を作成する

データフィード設定の前に、VMインスタンスのIPアドレスを調べておきます。
Compute Engineの管理画面で見るか、またはCloud SDKのgcloudコマンドで調べます。

構文は、gcloud compute instances list [インスタンス名]です。

mac:~ $ gcloud compute instances list myvmtest
NAME      ZONE        MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
myvmtest  us-west1-a  f1-micro                   10.***.*.*   35.***.***.**  RUNNING

IPアドレスをメモしたらデータフィードの設定に進みます。

1. Adobe Analyticsにログインし、[管理者] > [データフィード]を開きます。
2. [+追加]ボタンを押して、データフィードを作成します。
3. データフィード設定を入力します。

■フィード情報
データフィード名: 任意の名前をつけます。
レポートスイート: データフィードを配信する対象RSを選択
メールアドレス: 配信完了や失敗の通知メールを受けとるメアドを入力
フィード間隔: 1時間または毎日を選びます。今回は単発で試すので[毎日]を選択。
遅延処理: 配信時間を意図的に遅らせたい場合は遅延時間を選びます。今回は[遅延なし]を選択。
開始日と終了日: データフィードの対象期間を選択。[連続フィード]を選ぶと、終了日なしでずっと配信され続けます。

今回は単発テストなので、開始日終了日を昨日(2017-05-17)にしました。

■宛先
タイプ: SFTP
ホスト: VMインスタンスのIPアドレス
パス: データフィードをアップロードするディレクトリ(ホームディレクトリからの相対パスで指定)
ユーザー名: さっきVMで作ったdatafeed用のユーザー名

ここに表示されている[RSA鍵をダウンロード]をクリックして、公開鍵をダウンロードしておきます。

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

今回はとりあえず全部のカラムを取り出すので、[すべてを追加]をクリックして、全カラムを選択します。

パッケージタイプはデフォルトの「複数ファイル」を選ぶとデータファイルが分割されてしまうので、「単一のファイル」を選んでおくと、全ページビューのデータがhit_data.tsvという一つのファイルにまとまります。
ただしトラフィックが膨大なレポートスイートだと、ファイルが大きすぎて大変なので、「複数のファイル」で良いです。
分割された場合、配信されたファイル名はマニフェストファイルに載っているので、それを見て処理をする事になります。

そしてここまでで入力したら、保存しないで公開鍵の設置に進みます。
[保存]はまだしません。
※さきに保存してしまうと、SFTP接続が失敗してエラーになります。

4. Adobeの公開鍵を.sshディレクトリに設置する

データフィード作成画面からダウンロードした公開鍵[private_sftp_key-2013-10.pub]をVMに転送します。

gcloud compute copy-filesコマンド または、 scpを使い慣れてるならgcloud beta compute scpコマンドで転送します。

mac:~ $ gcloud beta compute scp private_sftp_key-2013-10.pub myvmtest:~/ --zone us-west1-a

アップロードしたファイルを、datafeedユーザーの.sshディレクトリにauthorized_keysというファイル名で設置します。

mac:~ $ gcloud compute ssh myvmtest
$ sudo su
$ mv private_sftp_key-2013-10.pub /home/datafeed/.ssh/authorized_keys
$ cd /home/datafeed/.ssh/
$ chown datafeed:datafeed authorized_keys
$ chmod 600 authorized_keys

そしてsshd_configを修正して、sshdを再起動します。

$ vim /etc/sshd/sshd_config

下記の2行のコメントを外して有効化します。

RSAAuthentication yes
PubkeyAuthentication yes

そしてsshdの設定をテストをして、問題なければサービスを再起動

$ /usr/sbin/sshd -t
$ service sshd restart

それからデータフィード管理画面に戻って[保存]ボタンをクリックします。

しばらくするとデータフィード配信完了のメールが来て、指定したディレクトリにデータフィードファイルが配信されていればOKです。

$ ls files
exturedev_2017-05-17.tar.gz  exturedev_2017-05-17.txt

今回はAdobeのデータフィードファイルをGCEのVMインスタンスにSFTPでアップロードする方法について説明しました。
次回は、データフィードファイルを展開して、BigQueryに取り込んでクエリを実行する方法などについて書いてみます。

続き: Adobe Analytics: データフィードをGoogle BigQueryのテーブルにロードする

ブログへの記事リクエストはこちらまで

関連記事

  1. Google BigQuery

    Tableau×BigQueryをコスパ良く使う方法

    こんにちは、エクスチュア渡部です。TableauでBigQue…

  2. Adobe Analytics

    Adobe AnaltyicsとGoogle Analytics の「生Webビーコン」をBigQu…

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

  3. Google Cloud Platform

    Looker: サンバーストグラフを使って階層データを可視化する

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

  4. Adobe Analytics

    続・SafariのITP2.x対策として別サーバー使ってクッキーを永続化する

    こんにちは、エクスチュアの権泳東/コン・ヨンドン(@exturekwo…

  5. Adobe Analytics

    BigQuery: Adobe Datafeed: event_listカラムの手軽な扱い方

    こんにちは、エクスチュアCTOの権です。Twitter:@ex…

  6. Adobe Analytics

    Adobe Analytics: BigQuery+Lookerでアトリビューション分析

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

最近の記事

  1. DTMからAdobe Launchへの移行:4段階のアプロー…
  2. Metabotを使ってSlackにMetabaseのグラフを…
  3. GTMのdataLayerをAdobeAnalyticsの「…
  4. Metabase: カスタムマップで日本地図を追加する
  5. オープンソースBI「Metabase」の使い勝手が丁度良かっ…
  1. Adobe Analytics

    Adobe Analytics: Mobile SDK 4.x でアプリ計測する…
  2. Adobe Experience Cloud

    Adobe Summit 2019 レポート
  3. Adobe Analytics

    Adobe Analytics: Datafeedのログからフォールアウトレポー…
  4. Google Cloud Platform

    Looker: LookerbotをGoogle Cloud Platformで…
  5. Google Tag Manager

    Google Tag Manager: 離脱リンクのクリックをトリガーにする
PAGE TOP