概要

Amazon S3からAmazon Redshiftへとデータを転送する方法は様々あります。AWSを導入している企業であれば転送を行うこと自体は可能かと思いますが、S3のデータに更新が発生するたびに転送もその都度行わなければならなかったり、転送自体のエラー管理や成否の通知、転送が失敗した際の再実行など運用にあたってはトータルで見ると意外とコストがかかります。

またAWSを導入していても実際にそれを運用するのはエンジニアとは限らず、データエンジニアリングに関する知識がない部署の人間がデータを運用するというケースも考えられるのではないでしょうか。
そこで今回は、データ分析基盤構築サービスのtrocco®を利用し、ほとんどコーディング作業をすることなくS3のデータをAmazon Redshiftに転送してみようと思います。

S3のデータをRedshiftへ転送

ゴール

Amazon S3にある広告データから

このようにAmazon Redshiftにデータ統合を行います。(作成後には最新値が自動で同期されるようにします)

こんな人におすすめ

  • S3のデータを可視化したい方
  • S3のデータをDWH(データウェアハウス)に取り込み、分析を行う予定の方
  • データ分析の前準備に疲れてしまった方

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

1-1. DWHの選定

まずはデータをどこに集約するか、DWHを選定します。

  • Amazon Redshift
  • Google BigQuery
  • MySQL
  • PostgreSQL など

trocco®はいずれのサービスも対応していますが、今回はAmazon Redshiftを利用することにします。

1-2. 転送手段の選定

Redshiftにデータを集約することが決まったところで、次は転送するための手段を選びます。

  1. バケットからデータをダウンロードし、手動でRedshiftにアップロードする。
  2. S3とRedshiftの各APIを利用し、自前でプログラムを書いて連携させる。
  3. Embulkを利用して自前で環境を構築する。
  4. trocco®を利用して画面上の設定のみで分析基盤を構築する。

1. は単発の実行であれば良いものの、定期的に取り込む必要がある場合は手間がかかりすぎるため運用には堪えないかもしれません。
2. はAPIについてのキャッチアップや、APIを実装するためのコーディング作業、環境構築作業が発生する他、エラー対応などの運用工数も継続的に発生します。
3. も2と同じくEmbulkの利用にはある程度のデータエンジニアリングに関する専門知識が必要になるほか、自前で環境構築・運用を行うという手間が発生します。エラーが発生した際もその対処に結構な時間を取られてしまう可能性があります。

今回はこれらの課題を踏まえ、プログラムを書かずに画面上の設定で作業が完結する、4.trocco®というSaaSを利用してみます。

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

2-0. 事前準備

転送に先立って、まずはtrocco®のアカウントおよびS3、Redshiftを利用するためのAWSアカウントが必要です。

trocco®は現在無料トライアルも実施しているので、前もって申し込み・登録をしておきましょう。

https://trocco.io/lp/index.html

(申し込みの際にこちらの記事を見たという旨を記載して頂ければスムーズにご案内できます。)

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

trocco®にアクセスし、ダッシュボードから「転送設定を作成」のボタンを押します。

転送元にS3、転送先にRedshiftを選択して、「この内容で作成」のボタンを押します。

すると設定画面になるので、転送に必要な情報を入力していきます。

2-3. S3との連携設定

trocco®は社内のユーザー間でチームを作成し、チームで転送設定を共有するチーム機能があります。チームの他メンバーにも転送設定を共有できるよう転送設定の名前や簡単なメモを入力しておきます。

転送設定の名前が決まったら、「転送元の設定」内の「接続情報を追加」ボタンを押し、S3の接続情報の設定を行います。

接続設定の名前・AWSのアクセスキーIDEA・シークレットアクセスキーを入力して保存します。

再度転送設定画面に戻り、「接続情報を読み込む」ボタンを押すと、作成した接続情報が選択できるかと思います。

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

これでS3との連携は完了です。

次にS3の取得データを設定します。

まずは必須項目の「リージョン」、「バケット」をセレクトボックスの中から選択します。

次に、パスプレフィックスやファイル形式などの項目を埋めていきます。

最後に接続確認が通るか確認して完了です。

2-4. 転送先Redshiftの設定

基本的には転送元と同じ要領で設定を進めていきます。

「接続情報を追加」ボタンからRedshiftの接続設定を行い、データベース・スキーマ・テーブルを入力します。

trocco®では一時データの保存にS3を利用するため、S3パケット・S3キープレフィックス・転送モードも必須項目です。これらも入力します。

最後に、接続確認が問題なく通るか確認します。

これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。

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

少し待つと転送元のデータがプレビューされ、S3から取り込んだデータが表示されているのが確認できると思います。

プレビューの内容に問題がなければ「設定を完了する」を押して、スケジュールや通知設定に進みます。

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

「スケジュール・トリガー設定」タブを開きます。

このようなモーダルが出るので、データの更新頻度や最新値の必要性に応じてスケジュールを設定します。そうすると以後はtrocco®が転送を自動で実行してくれます。

2-7. 通知設定

必須の設定ではないですが、必要に応じてEmailやSlackに対して通知を行うことが出来ます。

転送ジョブが失敗した際はもちろん、ジョブに時間がかかりすぎている場合や転送は成功したもののデータの件数が少なすぎる場合などもアラート通知を行うことが可能です。

今回はスケジュール機能を使わず転送設定詳細の「実行」ボタンを押して手動で転送を実行します。

転送が完了しました。

3. Redshiftの設定

Redshift側で特に設定することはありませんが、S3側でデータをプレビューしてみると確かにデータが転送されていることが確認出来ます。

画像に alt 属性が指定されていません。ファイル名: 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3637333136382f61336365626261632d633034632d653833342d303537622d6433643136363266363530662e706e67

4. Lookerで可視化

最後にこれらのデータをLookerで分析してみます。

まずはRedshiftとLookerを接続します。

管理タブを開いて「Database」の「Connections」を開きます。

接続しているデータベース一覧が表示されています。

ここで「Add Connection」 → 「Database Connection」から接続するデータベース情報を入力します。

Redshiftのデータベースに接続できたら、次はデータを可視化するために必要なLookMLプロジェクトを作成します。

開発タブを開いて「LookMLプロジェクトの管理」に移動します。

「New LookML Project」からLookMLプロジェクトを作成します。

「Create Project」を押したら、エディタでmodelとviewを定義します。

後々必要になるので、modelの中ではexploreを設定しておきましょう。

(書き方が分からない場合はLookerの公式ドキュメントを参照してください)

これで下準備が整いました。

トップページに戻って「New」から「Dashoboard」を作成します。

白紙のダッシュボードができました。ここに各種グラフを追加していきます。「新しいTILE」を選択します。

先ほどのmodel内で定義したExploreを選択します。

DIMENSIONSとMEASURESを設定し、Tileに表示したいデータをプロットします。ここではキャンペーンごとのクリック数を分析しています。

これで一つTileが完成しました。同様にTileも作成すると今回のゴールであるデータダッシュボード完成します。

image.png

まとめ

いかがでしたでしょうか。trocco®を使うとコーディングや煩雑な環境構築をせずにS3のデータをDWH(Redshift)へ統合することが出来ました。
またデータの転送も自動化し、運用が容易なデータ分析基盤を構築することが出来ました。
実際に弊社サービスのtrocco®においても、マーケティングKPI等をこのような流れで収集・分析しています。
ぜひ広告データ分析の際にはご活用ください。

試してみたい場合は、無料トライアルを実施しているので、この機会にぜひ一度お試しください。
(申し込みの際に、こちらの記事を見たという旨を記載して頂ければスムーズにご案内できます)

データ分析基盤構築サービスtrocco
hirokazu.kobayashi

慶應義塾大学卒業後、2014年より株式会社リブセンスへ入社し、データエンジニアとして同社分析基盤立ち上げをリード。2017年より現職に入社し。自社プロダクト「systemN」におけるSpark/Redshift活用等のデータエンジニアリング業務を行うかたわら、データ統合業務における工数削減が課題だと感じ、データ統合を自動化するサービス「trocco®」を立ち上げる。