概要

S3からRedshiftにデータを転送する方法は様々ありますが、コーディングや環境構築が必要になるケースが殆どだと思います。
また運用のことを考えるとジョブ管理や通知・再実行のことを考える必要があり、そこそこの規模のシステムを構える必要が出てきてしまいます。
そこで、今回はコーディング・環境構築不要で、運用サポート機能も充実しているtrocco®を使って、S3のデータをRedshiftに転送する方法をご紹介します。
貼り付けた画像_2020_11_18_14_48.png

ゴール

S3にある広告データから
image.png

このようにRedshiftにデータ統合するまでを30分程度でやっていきます(作成後には最新値が自動で同期されるようにします)
image.png

こんな人におすすめ

  • S3のデータをツールで可視化したい方
  • S3のデータを分析基盤・DWH(データウェアハウス)に取り込む予定の方
  • データ分析の前準備に疲れてしまった方

1. DWHと同期する手段の選定

1-1. DWHの選定

まずはデータをどこに集約するか、DWHを選定します。
– Amazon Redshift
– Google BigQuery
– MySQL
– PostgreSQL など
今回はAmazon Redshiftを利用することにします。

1-2.転送手段の選定

Redshiftにデータを集約することが決まったところで、次は転送するための手段を選びます。
1. GUI・CLIでS3バケットからデータをダウンロードし、手動でRedshiftにアップロードする。
2. S3とRedshiftの各APIを、自前でプログラムを書いて連携させる。
3. Embulkを利用し、自前で環境を構築する。
4. trocco®を利用し、画面上で設定する。
1. は単発の実行であれば良いものの、定期的に取り込む必要がある場合はタイムロスが多く、非効率な作業になりがちです。
2. はAPIのキャッチアップ工数+プログラムを書く工数+環境構築工数が発生する他、エラー対応などの運用工数も継続的に発生します。
3. も2と同じくEmbulkはある程度の専門知識が必要になり、自前で環境構築・運用を行う手間が発生します。エラーの内容が専門的で、詰まると大幅に時間を浪費してしまいます。

そこで、Embulkの課題も解決してくれて、プログラムを書かずに画面上の設定で作業が完結する、4.trocco®を利用します。

2. troccoでS3→Redshiftの転送自動化

2-0. 事前準備

trocco®のアカウントおよびAWSのアカウントが必要です。

フリープランも提供しているので、前もって申し込み・アカウント登録をしましょう。
https://trocco.io/lp/inquiry_free.html

2-1. 転送元・転送先を決定

troccoにアクセスし、ダッシュボードから「転送設定を作成」のボタンを押します。
image.png
転送元にS3、転送先にRedshiftを選択し、転送設定作成ボタンを押します。
image.png
すると、設定画面になるので、転送に必要な情報を入力していきます。

2-2. S3との連携設定

転送設定の名前とメモを入力します。
image.png
転送設定の名前を決めたら、「転送元の設定」内の「接続情報を追加」ボタンを押し、S3の接続情報の設定を行います。
貼り付けた画像_2020_11_18_15_10.png
接続設定の名前・AWSのアクセスキーID・シークレットアクセスキーを入力して保存します。
貼り付けた画像_2020_11_18_15_16.png
再度転送設定画面に戻り、「接続情報を読み込む」ボタンを押すと、作成した接続情報が選択できるかと思います。
image.png

2-3. S3からのデータ抽出設定

これでS3との連携は完了です。
次に、S3の取得データを設定します。

まずは必須項目の「リージョン」「バケット」をセレクトボックスの中から選択します。
貼り付けた画像_2020_11_18_15_33.png
次に、パスプレフィックスやファイル形式などの項目を必要に応じて埋めていきます。
貼り付けた画像_2020_11_18_16_30.png
最後に接続確認が通るか確認します。
貼り付けた画像_2020_11_18_15_36.png
大丈夫ですね。以上でS3側の設定は完了です。
次は転送先のRedshiftの設定を行っていきましょう。

2-4. 転送先Redshiftの設定

基本的には転送元と同じ要領です。
「接続情報を追加」ボタンからRedshiftの接続設定を行い、データベース・スキーマ・テーブルを入力します。
貼り付けた画像_2020_10_23_15_15.png
trocco®では一時データの保存にS3を利用するため、S3パケット・S3キープレフィックス・転送モードも必須項目です。これらも入力します。
貼り付けた画像_2020_10_23_15_19.png
最後に、接続確認が問題なく通るか確認します。
image.png
これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。

2-5. データのプレビュー

少し待つと、転送元のデータがプレビューされます。S3から取り込んだデータが表示されているのが確認できると思います。
問題なければ、「設定を完了する」を押して、スケジュールや通知設定に進みます。
貼り付けた画像_2020_11_18_15_46.png

2-6. スケジュール設定

「スケジュール・トリガー設定」タブを開きます。
貼り付けた画像_2020_11_18_15_50.png
以下のように実行スケジュールを設定することで、転送を自動化することが出来ます。
image.png

2-7. 通知設定

必須の設定ではないですが、通知タイプ・通知条件・通知先を選択し設定を保存することで、EmailやSlackに通知を行うことが出来ます。
ジョブ失敗時だけでなく、転送レコード数を条件に指定し、レコードが少な過ぎた時にアラートを出すといったことが可能です。
image.png
また、必要な時のみ実行したい場合は、手動で転送を実行することも出来ます。
その場合は、転送設定詳細の「実行」ボタンを押して進めていきます。
貼り付けた画像_2020_11_18_15_50.png
転送が完了しました。
貼り付けた画像_2020_11_18_15_52.png

3. Redshiftの設定

特に設定することはありません。データが溜まっているので、今すぐに分析・可視化を行うことが出来ます。
データをプレビューして確認してみます。
貼り付けた画像_2020_11_02_16_01.png
広告データがRedshiftに同期されていることが確認できました。

4. Lookerで可視化

それでは、これらのデータをLookerで分析してみます。

まずはRedshiftとLookerを接続します。
管理タブを開いて「Database」の「Connections」を開きます。
貼り付けた画像_2020_11_02_16_02.png
接続しているデータベース一覧が表示されています。ここで「Add Connection」→「Database Connection」から接続するデータベース情報を入力します。
貼り付けた画像_2020_11_02_16_06.png
貼り付けた画像_2020_11_02_16_06.png
Redshiftのデータベースに接続できたら、次はデータを可視化するために必要なLookMLプロジェクトを作成します。
開発タブを開いて「LookMLプロジェクトの管理」に移動します。
貼り付けた画像_2020_11_02_16_09.png
「New LookML Project」からLookMLプロジェクトを作成します。
貼り付けた画像_2020_11_02_15_51.png
image.png
「Create Project」を押したら、エディタでmodelとviewを定義します。
後々必要になるので、modelの中ではexploreを設定しておきましょう。
(書き方が分からない場合はLookerの公式ドキュメントを参照してください)
image.png
貼り付けた画像_2020_11_18_16_02.png
これで下準備が整いました。
トップページに戻って「New」からDashboardを作成します。
貼り付けた画像_2020_11_02_16_18.png
白紙のダッシュボードができました。ここに各種グラフを追加していきます。「新しいTILE」を押します。
貼り付けた画像_2020_11_18_16_04.png
先ほどのmodel内で定義したExploreを選択します。
貼り付けた画像_2020_11_18_16_06.png
DIMENSIONSとMEASURESを設定し、Tileに表示したいデータをプロットします。ここではキャンペーンごとのクリック数を分析しています。
image.png
これで一つTileが完成しました。この調子で他のTileも作成すると、今回のゴールであるデータダッシュボードが出来上がります。
image.png
image.png

まとめ

いかがでしたでしょうか。trocco®を使うとコーディング・環境構築を行うこと無く、簡単にS3のデータをDWH(Redshift)に貯めることが出来ました。
また、Redshiftにデータを貯めると、Lookerを使ってデータを可視化することが出来ます。
実際に弊社サービスのtrocco®のプロモーション活動においても、マーケティングKPI等をこのような流れで収集・分析しています。
ぜひ広告データ分析の際にはご活用ください。

trocco®ではフリープランをご提供しているので、実際にどのようなことができるのか試してみたいという方はぜひ利用ください。

trocco® ライター

trocco®ブログの記事ライター データマネジメント関連、trocco®の活用記事などを広めていきます!