O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
DynamoDB Streamを使った リアルタイム分析 
クラスメソッド株式会社 
横田 慎介 
classmethod.jp 
1 
DEVIO-MTUP11-TOKYO-009 
2014/12/16
DynamoDB Stream(Preview) 
•テーブルの更新ログ 
–MySQLのbinlogのようなもの 
•更新内容をリアルタイムに取得できる 
classmethod.jp 
2
リアルタイム分析 
classmethod.jp 
3 
Amazon Lambda
DynamoDB 
•NoSQLデータベース 
•スキーマレス 
–ユーザ定義プライマリキー + 任意の項目 
classmethod.jp 
4
DynamoDBテーブル例 
classmethod.jp 
5 
user_id 
created_at 
action 
means 
points 
0 
1418638175 
register 
0 
1418638260 
get_...
DynamoDBテーブル作成 
classmethod.jp 
6
DynamoDB Stream 
classmethod.jp 
7
DynamoDB Stream有効化 
classmethod.jp 
8
DynamoDB Stream 
classmethod.jp 
9
DynamoDBアイテム登録 
classmethod.jp 
10 
{“user_id”: “0”, 
“created_at”:1418638175, 
“action”: “register”}
DynamoDB Streamレコード 
{ 
"Records": [ 
{ 
"awsRegion": "us-east-1", 
"dynamodb": { 
"Keys": 
{ 
"user_id" : { "S": "0" }, 
...
DynamoDB Streamレコード 
"NewImage": 
{ 
"user_id" : { "S": "0" }, 
"created_at" : { "N": "1418638175" }, 
"action" : { "S": "...
LambdaでレコードをNorikraへ 
classmethod.jp 
13 
Amazon Lambda
Lambda(Preview) 
•コード実行サービス 
–イベントを検知し、 
–Lambda Functionを実行する 
•処理すべきイベント数に応じて自動でス ケール 
classmethod.jp 
14
Lambda 
classmethod.jp 
15 
①Lambda Functionの登録 
②DynamoDB Streamをイベントソースと して登録 
① 
②
Lambda Function 
classmethod.jp 
16
Lambda Function作成 
classmethod.jp 
17
Lambda Function内容 
exports.handler = function(event, context) { 
// DynamoDB StreamイベントのデータをNorikraで扱いやすいように整形 
async.seri...
Lambda Function登録 
classmethod.jp 
19
Lambda Function登録 
classmethod.jp 
20
Lambdaへのイベント登録 
classmethod.jp 
21 
①Lambda Functionの登録 
②DynamoDB Streamをイベントソースと して登録 
②
Lambdaへのイベント登録 
classmethod.jp 
22
Lambdaへのイベント登録 
classmethod.jp 
23
Norikra 
•イベントストリームプロセッサ 
•SQLライクな言語でイベントの集計方法 を記述できる 
–例:直近1時間に新規登録したユーザ数 
http://norikra.github.io/index.html 
classmeth...
user_id: 0 action: register 
Norikra 
classmethod.jp 
25 
user_id: 1 
action: register 
user_histor 
user_id: 0 action: ge...
Norikra 
classmethod.jp 
26 
user_histor 
user_id: 0 action: get_point 
new_user: 2 
user_id: 1 
action: register 
SELECT ...
Norikra WebUI 
classmethod.jp 
27
Norikra Target 
classmethod.jp 
28
Norikra Query 
classmethod.jp 
29
Norikra Output 
classmethod.jp 
30 
1418713623, {“new_user” : 3} 
1418713683, {“new_user” : 1}
経路ごとのユーザ登録数 
classmethod.jp 
31 
{“user_id” : 3, “created_at” : 1418713623, 
“action” : “register”, “entry_from” : “ad01”}...
#cmdevio 
ご清聴ありがとうございました。 
このスライドは後日公開いたします。 
reGrowth-001
Terminou este documento.
Transfira e leia offline.
Próximos SlideShares
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Avançar
Próximos SlideShares
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Avançar
Transfira para ler offline e ver em ecrã inteiro.

4

Compartilhar

DynamoDB Streamを使ったリアルタイム分析

Baixar para ler offline

DynamoDBの更新情報をLambdaでNorikraに送り集計します。

DynamoDB Streamを使ったリアルタイム分析

  1. 1. DynamoDB Streamを使った リアルタイム分析 クラスメソッド株式会社 横田 慎介 classmethod.jp 1 DEVIO-MTUP11-TOKYO-009 2014/12/16
  2. 2. DynamoDB Stream(Preview) •テーブルの更新ログ –MySQLのbinlogのようなもの •更新内容をリアルタイムに取得できる classmethod.jp 2
  3. 3. リアルタイム分析 classmethod.jp 3 Amazon Lambda
  4. 4. DynamoDB •NoSQLデータベース •スキーマレス –ユーザ定義プライマリキー + 任意の項目 classmethod.jp 4
  5. 5. DynamoDBテーブル例 classmethod.jp 5 user_id created_at action means points 0 1418638175 register 0 1418638260 get_point tutorial 100 1 1418642914 register user_history
  6. 6. DynamoDBテーブル作成 classmethod.jp 6
  7. 7. DynamoDB Stream classmethod.jp 7
  8. 8. DynamoDB Stream有効化 classmethod.jp 8
  9. 9. DynamoDB Stream classmethod.jp 9
  10. 10. DynamoDBアイテム登録 classmethod.jp 10 {“user_id”: “0”, “created_at”:1418638175, “action”: “register”}
  11. 11. DynamoDB Streamレコード { "Records": [ { "awsRegion": "us-east-1", "dynamodb": { "Keys": { "user_id" : { "S": "0" }, "created_at" : { "N": "1418638175" } }, "NewImage": { "user_id" : { "S": "0" }, "created_at" : { "N": "1418638175" }, "action" : { "S": "register" } }, "SequenceNumber": "3758000000000000010265650", "SizeBytes": 62, "StreamViewType": "NEW_AND_OLD_IMAGES" }, "eventID": ” cae695c863e891e573b710d101d4a72a", "eventName": "INSERT", "eventSource": "aws:dynamodb", "eventVersion": "1.0" } ] } classmethod.jp 11 DynamoDB更新情報 イベント情報
  12. 12. DynamoDB Streamレコード "NewImage": { "user_id" : { "S": "0" }, "created_at" : { "N": "1418638175" }, "action" : { "S": "register" } }, classmethod.jp 12
  13. 13. LambdaでレコードをNorikraへ classmethod.jp 13 Amazon Lambda
  14. 14. Lambda(Preview) •コード実行サービス –イベントを検知し、 –Lambda Functionを実行する •処理すべきイベント数に応じて自動でス ケール classmethod.jp 14
  15. 15. Lambda classmethod.jp 15 ①Lambda Functionの登録 ②DynamoDB Streamをイベントソースと して登録 ① ②
  16. 16. Lambda Function classmethod.jp 16
  17. 17. Lambda Function作成 classmethod.jp 17
  18. 18. Lambda Function内容 exports.handler = function(event, context) { // DynamoDB StreamイベントのデータをNorikraで扱いやすいように整形 async.series( [ function (callback) { Norikraにターゲット作成; callback(null, true);}, function (callback) { Norikraにイベント送信; callback(null, true);} ], function (err, results) { if (err) {context.done('error', err);} else {context.done(null, results);} } ); } classmethod.jp 18 https://github.com/yokota-shinsuke/aws-lambda-dynamodbstream-to-norikra
  19. 19. Lambda Function登録 classmethod.jp 19
  20. 20. Lambda Function登録 classmethod.jp 20
  21. 21. Lambdaへのイベント登録 classmethod.jp 21 ①Lambda Functionの登録 ②DynamoDB Streamをイベントソースと して登録 ②
  22. 22. Lambdaへのイベント登録 classmethod.jp 22
  23. 23. Lambdaへのイベント登録 classmethod.jp 23
  24. 24. Norikra •イベントストリームプロセッサ •SQLライクな言語でイベントの集計方法 を記述できる –例:直近1時間に新規登録したユーザ数 http://norikra.github.io/index.html classmethod.jp 24 SELECT COUNT(*) AS new_users FROM user_history.win:time_batch(1 hour) WHERE action = ‘register’
  25. 25. user_id: 0 action: register Norikra classmethod.jp 25 user_id: 1 action: register user_histor user_id: 0 action: get_point new_user: 1 SELECT COUNT(*) AS new_users FROM user_history.win:time_batch(1 hour) WHERE action = ‘register’
  26. 26. Norikra classmethod.jp 26 user_histor user_id: 0 action: get_point new_user: 2 user_id: 1 action: register SELECT COUNT(*) AS new_users FROM user_history.win:time_batch(1 hour) WHERE action = ‘register’
  27. 27. Norikra WebUI classmethod.jp 27
  28. 28. Norikra Target classmethod.jp 28
  29. 29. Norikra Query classmethod.jp 29
  30. 30. Norikra Output classmethod.jp 30 1418713623, {“new_user” : 3} 1418713683, {“new_user” : 1}
  31. 31. 経路ごとのユーザ登録数 classmethod.jp 31 {“user_id” : 3, “created_at” : 1418713623, “action” : “register”, “entry_from” : “ad01”} SELECT entry_from, COUNT(*) AS new_users FROM user_history.win:time_batch(1 hour) WHERE action = ‘register’ GROUP BY entry_from {“entry_from” : “ad01” ,“new_user” : 3} {“entry_from” : “ad02” ,“new_user” : 1}
  32. 32. #cmdevio ご清聴ありがとうございました。 このスライドは後日公開いたします。 reGrowth-001
  • YoshiS2

    Jan. 16, 2018
  • takashiimura10

    Apr. 17, 2015
  • hiroyasuyamada79

    Dec. 25, 2014
  • newapplesho

    Dec. 25, 2014

DynamoDBの更新情報をLambdaでNorikraに送り集計します。

Vistos

Vistos totais

3.971

No Slideshare

0

De incorporações

0

Número de incorporações

809

Ações

Baixados

6

Compartilhados

0

Comentários

0

Curtir

4

×