Adobe Analytics

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

こんにちは、エクスチュアCTOの権です。
もはや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ディレクトリに設置する
です。

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

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

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接続が失敗してエラーになります。

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 Cloud Platform

    Google Compute Engine のLinuxVMにVNC接続する

    こんにちは、エクスチュアCTOの権です。今回は、GCEのLin…

  2. Adobe Analytics

    AdobeAnalytics: GTMのdataLayerをAdobeAnalyticsの処理ルール…

    こんにちは、エクスチュアCTOの権です。今回はGoogle T…

  3. Adobe Analytics

    Adobe Analytics:IF関数を使用した計算指標

    Adobe Analyticsで1年以上前についた計算指標に関数が使え…

  4. Adobe Analytics

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

    こんにちは、エクスチュアCTOの権です。前回のブログの続きです…

  5. Adobe Analytics

    Adobe AnalyticsからDWHレポートをGoogle Cloud Storageにアップロ…

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

  6. Adobe Analytics

    Adobe AnalyticsのDatafeedをBigQueryのColumn-based Tim…

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

最近の記事

  1. Google Compute EngineのUbuntu V…
  2. Firebase Analyticsの新しいBigQuery…
  3. Adobe Cloud Platform Auditor (…
  4. Google Analytics Standardのデータを…
  5. Google Tag Manager上でGoogle Ana…
  1. Adobe Dynamic Tag Manager

    Tag Manager: Adobe DTM で Google Analytic…
  2. Adobe Analytics

    Adobe Analytics: AppMeasurement.jsの実装開発作…
  3. Firebase Analytics

    Firebase Analyticsの新しいBigQueryスキーマを試す
  4. Adobe Analytics

    Adobe Analytics: Legacy s_code.jsからAppMe…
  5. Adobe Analytics

    Adobe Analytics:Report Builderの小技:リクエストの…
PAGE TOP