Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

AMoAdでのRedShift導入事例(AWS_7/16 ビッグデータセミナー資料)

No description
by

Shuichiro Nakamura

on 12 December 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of AMoAdでのRedShift導入事例(AWS_7/16 ビッグデータセミナー資料)

Goal
ビックなデータの処理を全部EMRからRedShiftに乗り換えちゃったんだけど(2013年春)

自己紹介
氏名 : 中村 州一朗
好きな技術 :

AWS全般(特にRedShift♡)
リアルタイム集計関係
Here we go !!
集計処理での問題
分析処理での問題
運用・調査の問題
  
Developer
対してデータ量もないのに、
バッチの実行時間が
20分超えるものもあるなぁ。

なんとか、もっと短くできないものかなぁ。
また単体テストがないって
怒られた(涙)
(HiveってUTしづらいなぁ。方法はあるだろうけど)
  そもそも、この処理ってMapReduceである必要はない気がする。

大きなデータに対して簡単なクエリ実行
したいだけなんけど~
DataMiner
分析用のログや集計の用意を
してもらうの面倒だな。
時間もかかるし。。
分析に集中したい!
全サーバにログ探しに
いくなんて。。
マジ無理!
RedShiftを利用する
以前の課題
  イライラしている人々
解決するにはどうすれば?
最後:マネージャにおねだり
その2:ちょっとゴネる
その1:RedShiftの存在を知る
AWSでRedShiftってサービスが始まったようだよ。調べてみたら?
え?また新しいサービス?(AWSやEMRが分かり始めて、集計自体は安定し始めたのに、、)
その3:一応確認してみた
まぁ、一応見ておくか。
調べてないのに
反対も賛成もできないし。
ん?ん?ん?こ、これは、、、
Redshiftの世界へ(※注:背景全く関係ないす)
Redshift移行前
まず始めにやったこと
とにかく対象のログをログをS3にUpLoad
RedShiftにそのログを
ロードする
乱暴だけど大体
そんなかんじね!
これだけ!
※注意というか、言い訳

テーブル定義でのキー設定(distkey,sortkeyなど)が肝とか、障害時のリカバリしやすいようにdaily単位でテーブルを作成しているなどいろいろ考慮すべき点はあります
今回はざっくりとしたイメージを持ってもらえたらと思い、ややこしいところは割愛しております(汗)

とりあえず、なにも考えずにでもS3にUploadして
ログ定義の通りのテーブルを作成しておいて、
そこにloadしてみてから難しいことは考えてみたという感じです。
ロードの性能に関して
毎時全部で10G超えのファイルをロード
実行時間は40sec以内で終了される
※圧縮していたり、一度にロードできるようにファイル名を
 連番にしたりなんかはしていますが、、
早いなオイ!
集計はどうなった?
分析はどうなった?

調査はどうなった?

なんか褒めてばかりだけど、
問題点とか
困った点とかないの?
困った点、悪い点
RedShift移行後
まとめ
ご清聴ありがとうございました!

今後テーブル設計の勘所や
システムの構成など
AMoAdのエンジニアブログにて
公開していく予定なので
よかったら見てください!

編集長:Shuco
用意したクラスタのノード構成
一日に300G*60(日)= 18Tとバッファを考えて(60日以前のものは削除する前提で)

8XLを2つ(32T)使用
AWSのコンソールから数クリックで準備完了
簡単だな、オイ
コーディング
Redshift自体はPostgreSQLベース
だからコーディングが簡単。
(JDBC等のコーディングができる人
ならサクッと実装できます。)
JDBCでコーディングしたので
UTクラスも割と簡単に作成。
(ただ、Redshift側にしかない
仕様があるので罠も)
UT
EMR版からのリプレイス作業

2週間で完了
!
実行時間
20分が1分以内に!
(クエリが速いのはもちろん、
EMRの準備時間がないのが大きい)
必要な情報(ログ)はすべて
RedShiftに存在する状態に!
(足りないものは随時追加
している)
その結果
ログの取得や、
分析用に加工したデータの用意をする
工数を削減
dataminerは
自分の分析用クエリを
思いのまま実行したり
分析結果用TBをRedShift上
に用意し利用したりと、
分析に集中する環境
に!
これで、ガンガン
分析できます!
基本的に2ヶ月分のログは
全部あがっているので、
サーバに探しに行く手間が
なくなり助かりました!

RedShiftがあるとなし
では大違いです!
そりゃあるさ
週に1度30分
メンテナンスがある
構造体のデータはそのまま入らない
あくまでPostgresqlベース
であってPostgresqlではない
(結構使えないコマンドや関数がある。
 カラムの属性変更ができなくて少し困った。)
最近知って驚いた
(自分がドキュメントをちゃんと読んでなかっただけだが(汗))
毎時複数のバッチが動いているが
早い時間でスケジューリングしていたので、
たまたま事故らなかった。
事前にパースが必要
Hiveにあるカスタムのフォーマットしていみたいなことが
できるとうれしいなぁと。
EMRをやめたのに、ログをロードするための事前準備でまた登場しそう(そういった使い方は正しい使い方ではあるけど)。
安いんだけど、高い
自前でDWHを持つことを考えたら、
考えられないほど
安い
DWHをよく知らない人からすると、毎月まとまった固定金額が上乗せされるので、使う理由や良さをちゃんと説明しないと驚かれる可能性あり(弊社では32Tで毎月100万前後)。

※リザーブなど利用すればもっと安くなりますし、みなさんがどんどん利用すれば全体の価格も下がると思うので、使ってください!
RedShiftは

構築簡単、
開発簡単、
運用簡単、

そして、パワフルで実際導入していいことのほうが多いです。

大概の集計、分析はビッグデータに対して簡単なクエリを実行することで解決するかと思います。
そのような用途であれば絶対に効果を発揮してくれます。

もし、特に用途を決めていなくてもとりあえずログをS3にUploadして、RedShiftに取り込んでおくことだけ
始めても、何かいい意味で気付きがあるのではと思います。
RedShift移行への道
その4:適当なクラスタ作成
して動作確認してみる
え、こんな簡単にできるの?
500万レコードを試しに突っ込んでクエリを叩くと2分くらいで戻る(テーブル定義でkey指定なし)。

うちは全部ログをS3にUploadしているし、
postgresqlベースってことなら、
すぐにリプレイスできるんじゃ。。

RedShiftの有用性と検証結果を
切々と訴えた結果
EMRの箇所を全部RedShiftへ
リプレースすること決定
詳細は次へ
経歴・職種 :
 
医療系、金融系のシステムを開発・運用して身も心もヘトヘトになっていたところ、サイバーエジェントに拾ってもらい、現在 株式会社AMoAdで海外向けサービスの集計周り全般担当
hadoop歴は2年、AWSは1年未満と未熟者なのでお手柔らかに(汗)
Full transcript