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. 最速で理解したい人のためのIT用語集

関連記事

  1. Google Cloud Platform

    【GCP】Cloud Workflowsでデータパイプラインの構築を試してみた②実践編

    こんにちは、エクスチュアの黒岩と申します。前回の記事では、G…

  2. Adobe Analytics

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

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

  3. Google Cloud Platform

    Server-side GTMのAppEngine設定をカスタマイズする

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

  4. Adobe Analytics

    adobe analytics Report Builder

    こんにちは!今回はreport builderを使って、エクセルにaa…

  5. Adobe Analytics

    購入とは-Adobe Analyticsの指標説明

    今回は購入について説明します。「購入」の下には「購入回数」「購入点数…

  6. Google Cloud Platform

    Vertex AIのベクトル検索によってブログの検索エンジンを作成してみた

    はじめにこんにちは、石原と申します。こちらの記事は前…

最近の記事

  1. Snowflakeや最新データ基盤が広義のマーケティングにも…
  2. 回帰分析はかく語りき Part3 ロジスティック回帰
  3. GCSへのSnowflake Open Catalogによる…
  4. VPC Service Controlsで「NO_MATCH…
  5. モダンデータスタックなワークフローオーケストレーションツール…
  1. IT用語集

    アクセス管理(Access Management)って何?
  2. Google Apps Script(GAS)

    GASを利用してWebスクレイピングをやってみよう②
  3. IT用語集

    クロスデバイス(Cross Device)って何?
  4. Azure

    Google Cloud StorageとAzure Blob Storage間…
  5. Adobe Audience Manager

    Adobe Audience Manager: REST APIを使ってTrai…
PAGE TOP