Adobe Analytics

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

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

もはや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

    Big QueryでWindow関数を用いて、累積和を計算する

    こんにちは。エクスチュアでインターンをさせて頂いている中野です。…

  2. Adobe Analytics

    Adobe Analytics: RSIDを間違えてしまったデータを正しいRSに入れ直す

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

  3. Adobe Analytics

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

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

  4. Linux

    Linux技術者資格のLPIC-3試験に合格しました

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

  5. Google BigQuery

    オープンソースBI「Metabase」の使い勝手が丁度良かった

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

  6. Cloud Dataflow

    Firebase AnalyticsのデータをフラットなCSVに変換する – Googl…

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

最近の記事

  1. System Managerを利用したVPC内Redshif…
  2. Amazon Redshift ビルド168まとめ
  3. Tableauのテスト自動化を実現する Wiiisdom O…
  4. Databricksが買収した8080Labのbambool…
  5. databricksのnotebookを使ってみよう その2…
  1. Google Tag Manager

    Google Tag Manager: 離脱リンクのクリックをトリガーにする
  2. ObservePoint

    ObservePoint:タグ管理の救世主!サイト監査ツールのご紹介
  3. Tableau

    【TC19ブログ】Tableau新データモデリング(リレーションシップ)解説
  4. Google Analytics

    Google Analytics StandardのデータをBigQueryで分…
  5. Adobe Analytics

    Looker: エンジニアがBIで分析ダッシュボードを作る
PAGE TOP