SlideShare a Scribd company logo
EmbulkとDigdagとデータ分析基盤と
〜第5回 ゲームサーバ勉強会〜
2016.06.18
Toru Takahashi
Support Engineering Manager, Treasure Data, Inc.
WHO AM I ?
• Toru Takahashi (@nora96o)
• Treasure Data, Inc.
• Support Engineering Manager
• メールにチャットに、ブログ書いたり、コードを書いたり、
• http://qiita.com/toru-takahashi
• 気づくと、社会人4年目に突入・・・
2
質問です!
• Treasure Data を 知っている人は ?
• Fluentd を 知っている人は ?
• Embulkを知っている人は?
• Digdagを聞いたことがある人は?
• インフラ / 分析基盤 を普段から運用や開発をしている人は?
• iOS / Android / Unity / フロントエンドの人は?
3
目次
対象:データ分析基盤を普段触っていない人向け。
1. はじめに 〜 データ分析基盤について 〜
2. Embulk 〜 Bulk Data Loader 〜
3. Digdag 〜 Workflow Automation System 〜
4
1. はじめに 〜 データ分析基盤について 〜
5
オンラインゲームシステムとデータ分析基盤の関わり
6
Client
Server
DB
オンラインゲームシステム
オンラインゲームシステムとデータ分析基盤の関わり
7
Client
Server
DB
オンラインゲームシステム
バッチ処理サーバ
ストリーミング
処理サーバ
SaaS
データ分析処理エンジン BIツール
データ分析基盤
データ分析基盤をなぜ必要なのか?
• 現状を知る
• アクセスUU数や、継続率、課金額、課金率等の基本的なKPI
• イベント参加率や達成状況
• ガチャやアイテムの売れ行き
• ステータスの上位層・中位層・下位層の推移
• データ分析の流れをスムーズに行う
• 顧客を特徴別に分類
• ターゲットの決定
• ターゲットの行動を見る
• 行動から要因について仮説を立てる
• 仮説を統計的に検証
• データの民主化
8
データ分析基盤への更なる期待:3rd Partyとの連携
9
バッチ処理サーバ
ストリーミング
処理サーバ
SaaS
データ分析処理エンジン
BIツール
データ分析基盤
データ分析基盤への更なる期待:3rd Partyとの連携
10
バッチ処理サーバ
ストリーミング
処理サーバ
SaaS
データ分析処理エンジン
BIツール
データ分析基盤
データ分析基盤を支えるOSS
Digdag
ワークフロー
オートメーションシステム
Embulk
バルクデータローダ
Fluentd
ストリーミングログコレクタ
注: 画像はイメージです
お知らせ)Fluentd、ロゴかわるってよ
12
#924 Fluentd new logo proposal
データ分析基盤を支えるOSS
13
Client
Server
DB
オンラインゲームシステム
バッチ処理サーバ
ストリーミング
処理サーバ
SaaS
データ分析処理エンジン BIツール
データ分析基盤
データ分析基盤を支えるOSS
14
Client
Server
DB
オンラインゲームシステム
バッチ処理サーバ
ストリーミング
処理サーバ
SaaS
データ分析処理エンジン BIツール
データ分析基盤
データ分析基盤を支えるOSS
15
Client
Server
DB
オンラインゲームシステム
バッチ処理サーバ
ストリーミング
処理サーバ
SaaS
データ分析処理エンジン BIツール
データ分析基盤
データ分析基盤を支えるOSS
16
Client
Server
DB
オンラインゲームシステム
バッチ処理サーバ
ストリーミング
処理サーバ
SaaS
データ分析処理エンジン BIツール
データ分析基盤
Digdag
データ分析基盤を支えるOSS
17
Client
Server
DB
オンラインゲームシステム
バッチ処理サーバ
ストリーミング
処理サーバ
SaaS
データ分析処理エンジン BIツール
データ分析基盤
Digdag
TreasureData: データ分析基盤を一気通貫で提供
https://www.treasuredata.com/jp/contact_us
18
2. Embulk 〜 Bulk Data Loader 〜
19
Embulkとは?- http://embulk.org/
• オープンソースのバルク転送ツール
• “A”から”B”へレコード転送
• プラグイン機構
• 多様な”A”と”B”の組み合わせ
• データ連携を容易に
• システム構築の頭痛の種の一つ
20
broken records,
error recovery,
maintenance,
performance, …
Storage, RDBMS,
NoSQL, Cloud Service,
…
バルクデータ転送の難しさ
1. 入力データの正規化
2. エラー処理
3. メンテナンス
4. パフォーマンス
21
1. 入力データ正規化の難しさ
データエンコーディングのバリエーション
• null, 時刻, 浮動小数点
• 改行, エスケープ, レコード/カラム区切り
• 文字コード, 圧縮有無
→ 試行錯誤をしてデータ正規化
22
2. エラー処理の難しさ
• 例外値の扱い
• ネットワークエラーからの復旧
• ディスクフルからの復旧
• 重複データ転送の回避
→ データバリデーション, リトライ, リジューム
23
3. メンテナンスの難しさ
• 継続的な動作の確保
• データ転送要件変更への対応
→ ドキュメント, 汎用化, OSS化
24
4. 性能の問題
• 転送データ量は通常増えていく
• 対象レコードも増えたりする
→ 並列・分散処理
25
バルクデータ転送の例(1/3)
指定された 10GB CSV file をPostgreSQLにロード
1. コマンド叩いてみる → 失敗
2. データを正規化するスクリプトを作成
”20150127T190500Z” → “2015-01-27 19:05:00 UTC”に
“null” → “N”に変換
元データを見ながら気付く限り…
3. 再度チャレンジ → 取り込まれたが元データと合わない
“Inf” → “Infinity”に変換
4. ひたすら繰り返す
5. うっかりレコードが重複して取り込まれた...
26
バルクデータ転送の例(2/3)
指定された 10GB CSV file をPostgreSQLにロード
6. スクリプトが完成
7. cronに登録して毎日バルクデータロードするよう登録
8. ある日、別の原因でエラーに…
不正なUTF-8 byte sequenceをU+FFFDに変換
27
バルクデータ転送の例(3/3)
過去の日次 10GB CSV file を 730個 を取り込む(2年分)
1. たいていのスクリプトは遅い
最適化している暇がない
1ファイル1時間、エラーが発生しなくても1ヶ月必要
2. 並列データロードするようにスクリプト変更
3. ある日、ディスクフル / ネットワークエラーで失敗
どこまで読み込まれた?
4. 障害後に再開し易いよう、データロード単位を調整
5. 安全な再開機能をスクリプトに追加
28
システム構築の頭痛の種
様々な転送データ、データストレージ
• CSV, TSV, JSON, XML, MessagePack,
SequenceFile, RCFile
• AWS S3, Salesforce.com, Google Cloud Storage,
Elasticsearch
• MySQL, PostgreSQL, Oracle, MS SQL Server, Amazon Redshift,
Redis, MongoDB, BigQuery
29
30
31
Embulkのアプローチ
• プラグインアーキテクチャ
• 入力データ正規化支援: guess, preview
• 並列・分散実行
• 繰り返し実行
• トランザクション制御
32
33
34
プラグインアーキテクチャ
• フレームワークによる恩恵
• 並列処理、繰り返し実行、エラー処理、リカバリ
• RubyGemとして配布(http://www.embulk.org/plugins/)
• DB
• Oracle, MySQL, PostgreSQL, Amazon Redshift, …
• SaaS
• Salesforce.com, Amazon S3, Google Cloud Storage, Google BigQuery, …
• File Format
• CSV, TSV, JSON, XML, …
• gzip, bzip2, zip, tar, …
35
DEMO - Embulk
Local の CSV file を PostgreSQL にロード
(ネットワークに問題があると悲しい気持ちになるので、ローカルで全て済ませてます。)
1. guessとpreview
2. 実行
3. 繰り返し実行
36
Embulkプラグインアーキテクチャ概要
• 4種のプラグインとそれを組み上げるフレームワーク
1. Executor: 実行
2. Input: バルクデータのレコード群を取り込み
• FileInput, Decoder, Parser: ファイル操作
3. Filter: レコードに対するデータ操作
4. Output: バルクデータのレコード群を出力
• FileOutput, Encoder, Formatter: ファイル操作
37
38
39
TreasureDataでのEmbulkのユースケース
40
https://docs.treasuredata.com/categories/result
https://docs.treasuredata.com/categories/data-connector
Embulkで解決できないこと
1. YAML管理
2. 単体処理フレームワーク
• 事前処理・事後処理
3. ジョブキュー
4. 並列数制御
5. 続きから実行
• 処理間の依存関係
41
参考: Embulkに足りない5つのこと
https://speakerdeck.com/civitaspo/embulknizu-rinai5tufalsekoto
Embulkで解決できないこと
1. YAML管理
2. 単体処理フレームワーク
• 事前処理・事後処理
3. ジョブキュー
4. 並列数制御
5. 続きから実行
• 処理間の依存関係
42
参考: Embulkに足りない5つのこと
https://speakerdeck.com/civitaspo/embulknizu-rinai5tufalsekoto
処理の一連の流れを管理する
ところで解決すべきこと
3. Digdag 〜 Workflow Automation System 〜
43
Workflow Automationとは?
• あらゆる手作業の自動化
• 例えば…
• データ解析の自動化
• データロード → 前処理 → 複数テーブルの結合 → 集計 → レポート生成 → 通知
• テスト・デプロイの自動化(CI: 継続的インテグレーション)
• メール一斉通知
• メールアドレス抽出→条件ごとにフィルタ→メール送信
44
Workflow Automation Systemに求められる機能
• 基本機能
• タスクの順次実行
• 定期的な実行
• イベントに反応して実行
• エラー処理
• 失敗したらリトライ
• 失敗したらアラート
• 実行時間が長ければアラート
• 途中からリジューム
• 冪等なリトライ
• 状態監視
• タスクの依存関係の可視化
• タスクの実行ログの収集
45
• 高速化
• タスクの並列実行
• 複数サーバの分散実行
• 同時実行数の制限 / フェアスケジューラ / プリエンプション
• ワークフロー開発
• GUIベースのワークフロー定義
• ソースコードベースのワークフロー定義
• ワークフローのバージョン管理
• 多数のシステムを制御する為のプラグイン / ライブラリシステ
ム
• どこでも同じ動作をする再現性・仮想環境内でのタスク実行
既存のWorkflow Automation System
• OSS
• Makefile
• Jenkins
• Luigi
• Airflow
• Rundeck
• Azkaban
• …
• 商用
• JP1 / AJS3
• …
46
• ETLツールも類似のツール
• Talend
• DataSpidar
• …
Digdagとは?
Digdag is a simple tool that helps you to build, run, schedule, and monitor
complex pipelines of tasks. It handles dependency resolution so that tasks
run in order or in parallel.
Digdag fits simple replacement of cron, IT operations automation, data
analytics batch jobs, machine learning pipelines, and many more by using
Directed Acyclic Graphs (DAG) as the infrastructure.
47
http://www.digdag.io/index.html
ワークフローエンジンに求められる機能
= Digdagでユーザがシンプルに実現できるようにしたい機能
• 基本機能
• タスクの順次実行
• 定期的な実行
• イベントに反応して実行
• エラー処理
• 失敗したらリトライ
• 失敗したらアラート
• 実行時間が長ければアラート
• 途中からリジューム
• 冪等なリトライ
• 状態監視
• タスクの依存関係の可視化
• タスクの実行ログの収集
48
• 高速化
• タスクの並列実行
• 複数サーバの分散実行
• 同時実行数の制限 / フェアスケジューラ / プリエンプション
• ワークフロー開発
• GUIベースのワークフロー定義
• ソースコードベースのワークフロー定義
• ワークフローのバージョン管理
• 多数のシステムを制御する為のプラグイン / ライブラリシステ
ム
• どこでも同じ動作をする再現性・仮想環境内でのタスク実行
DEMO: DIGDAG (LOCAL MODE)
Local の CSV file を PostgreSQL にロードし、
SQLで集計した結果をslackで通知。
(+ローカルでスケジューリング)
49
Digdag *画像はイメージです
timezone: UTC
_export:
rb:
require: 'tasks/myworkflow'
+dataload:
embulk>: demo/config.yml
+counting:
rb>: MyWorkflow.pg_calc
+notify:
py>: tasks.MyWorkflow.slack
50
mydag.dig
タスク
timezone: UTC
_export:
rb:
require: ‘tasks/myworkflow'
+dataload:
embulk>: demo/config.yml
+calculation:
_parallel: true
_export: ….
+counting:
rb>: MyWorkflow.count
+summarizing:
rb>: MyWorkflow.summary
+slack:
py>: tasks.MyWorkflow.slack
51
mydag.dig - Parallel
並列実行
タスクの中にタスクを作ってグループ化
timezone: UTC
_export:
rb:
require: ‘tasks/myworkflow'
+dataload:
embulk>: demo/config.yml
+calculation:
_parallel: true
_export: ….
+counting:
rb>: MyWorkflow.count
+summarizing:
rb>: MyWorkflow.summary
+slack:
py>: tasks.MyWorkflow.slack
52
mydag.dig - Parallel
並列実行
タスク内だけで適用される設定
Operators
• call>: Calls another workflow
• require>: Depends on another workflow
• py>: Python scripts
• rb>: Ruby scripts
• sh>: Shell scripts
• loop>: Repeat tasks
• for_each>: Repeat tasks
• if>: Conditional execution
• fail>: make the workflow failed
• mail>: Sending email
• embulk>: Embulk data transfer
53
• td>: Treasure Data queries
• td_run>: Treasure Data saved queries
• td_load>: Treasure Data bulk loading
• td_ddl>: Treasure Data operations
• td_table_export>: Treasure Data table export to S3
Commands and Mode
• Local-mode commands
• new
• run
• check
• scheduler
• selfupdate
54
• Server-mode commands
• server
• Client-mode commands
• start
• retry
• log
• kill
• workflows
• schedules
• backfill
• reschedule
• sessions
• attempts
• tasks
• push
TreasureDataでのユースケース(Privateβ)
55
TreasureDataでのユースケース(Privateβ)
56
57
まとめ
• オンラインゲーム・ソーシャルゲームに、データ分析基盤の存在が当たり前に!
• 分析だけじゃない役割も求められるようになってきた。
• データ分析基盤にはデータの流れを作るOSSが大事!
• Fluentd
• Embulk
• Digdag
• Embulkはバッチでデータ転送の役割をもち、プラグインで色んなデータソースに対応できる
!
• Digdagはバッチ処理のワークフローを簡単に扱うためのオートメーションシステム!
• リンク集はこちら。
• Fluentdのバッチ版Embulk(エンバルク)のまとめ
• ワークフローエンジンDigdagのまとめ
58
Q&A
(あとで質問を思いついたら、お気軽に@nora96oまでmentionしてください。)
59

More Related Content

What's hot

TensorFlow計算グラフ最適化処理
TensorFlow計算グラフ最適化処理TensorFlow計算グラフ最適化処理
TensorFlow計算グラフ最適化処理
Atsushi Nukariya
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
 
型安全性入門
型安全性入門型安全性入門
型安全性入門
Akinori Abe
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
 
BERTology のススメ
BERTology のススメBERTology のススメ
BERTology のススメ
University of Tsukuba
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
 
論理回路シミュレータ Logisim の使い方
論理回路シミュレータ Logisim の使い方論理回路シミュレータ Logisim の使い方
論理回路シミュレータ Logisim の使い方
Takashi Kawanami
 
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyoMLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
Yahoo!デベロッパーネットワーク
 
自己紹介LT(公開版)
自己紹介LT(公開版)自己紹介LT(公開版)
自己紹介LT(公開版)
Ken Muryoi
 
情報アクセス技術のためのテストコレクション作成
情報アクセス技術のためのテストコレクション作成情報アクセス技術のためのテストコレクション作成
情報アクセス技術のためのテストコレクション作成
kt.mako
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
BrainPad Inc.
 
オントロジーとは?
オントロジーとは?オントロジーとは?
オントロジーとは?
Kouji Kozaki
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
Takahiro Kubo
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
Takahiro Kubo
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Preferred Networks
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
Takeshi Mikami
 

What's hot (20)

TensorFlow計算グラフ最適化処理
TensorFlow計算グラフ最適化処理TensorFlow計算グラフ最適化処理
TensorFlow計算グラフ最適化処理
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
 
型安全性入門
型安全性入門型安全性入門
型安全性入門
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
BERTology のススメ
BERTology のススメBERTology のススメ
BERTology のススメ
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
論理回路シミュレータ Logisim の使い方
論理回路シミュレータ Logisim の使い方論理回路シミュレータ Logisim の使い方
論理回路シミュレータ Logisim の使い方
 
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyoMLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
 
自己紹介LT(公開版)
自己紹介LT(公開版)自己紹介LT(公開版)
自己紹介LT(公開版)
 
情報アクセス技術のためのテストコレクション作成
情報アクセス技術のためのテストコレクション作成情報アクセス技術のためのテストコレクション作成
情報アクセス技術のためのテストコレクション作成
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
 
オントロジーとは?
オントロジーとは?オントロジーとは?
オントロジーとは?
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
 

Viewers also liked

Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
N Masahiro
 
Hivemall meetup vol2 oisix
Hivemall meetup vol2 oisixHivemall meetup vol2 oisix
Hivemall meetup vol2 oisix
Taisuke Fukawa
 
2nd Hivemall meetup 20151020
2nd Hivemall meetup 201510202nd Hivemall meetup 20151020
2nd Hivemall meetup 20151020
Makoto Yui
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービス
Kentaro Yoshida
 
Imprementation of realtime_networkgame
Imprementation of realtime_networkgameImprementation of realtime_networkgame
Imprementation of realtime_networkgame
Satoshi Yamafuji
 
負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)
Yohei Hamada
 
サーバーのおしごと
サーバーのおしごとサーバーのおしごと
サーバーのおしごと
Yugo Shimizu
 
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
Satoshi Yamafuji
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦う
Yugo Shimizu
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Youichiro Miyake
 
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
johgus johgus
 
Embulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loaderEmbulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loader
Sadayuki Furuhashi
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
光晶 上原
 
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方Daisaku Mochizuki
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
Manabu Koga
 

Viewers also liked (16)

Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
 
Hivemall meetup vol2 oisix
Hivemall meetup vol2 oisixHivemall meetup vol2 oisix
Hivemall meetup vol2 oisix
 
2nd Hivemall meetup 20151020
2nd Hivemall meetup 201510202nd Hivemall meetup 20151020
2nd Hivemall meetup 20151020
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービス
 
Imprementation of realtime_networkgame
Imprementation of realtime_networkgameImprementation of realtime_networkgame
Imprementation of realtime_networkgame
 
負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)
 
サーバーのおしごと
サーバーのおしごとサーバーのおしごと
サーバーのおしごと
 
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦う
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
 
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
 
Embulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loaderEmbulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loader
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
 
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
 

Similar to EmbulkとDigdagとデータ分析基盤と

Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
You&I
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
Taro L. Saito
 
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 TokyoYoshiyuki Asaba
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
Insight Technology, Inc.
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
 
hbstudy#06
hbstudy#06hbstudy#06
hbstudy#06
tsakaguchi
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
Satoru Ishikawa
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
Kenta Suzuki
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysVOYAGE GROUP
 
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
Daisuke Masubuchi
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
Sotaro Kimura
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
Takahiro Iwase
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
 
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
gree_tech
 
JiraとConfluenceのTips集
JiraとConfluenceのTips集JiraとConfluenceのTips集
JiraとConfluenceのTips集
Hiroshi Ohnuki
 
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようPPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
Daisuke Masubuchi
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.Japan
Kohei KaiGai
 

Similar to EmbulkとDigdagとデータ分析基盤と (20)

Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
 
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
 
hbstudy#06
hbstudy#06hbstudy#06
hbstudy#06
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
 
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
 
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
 
JiraとConfluenceのTips集
JiraとConfluenceのTips集JiraとConfluenceのTips集
JiraとConfluenceのTips集
 
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようPPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.Japan
 

EmbulkとDigdagとデータ分析基盤と

Editor's Notes

  1. Demo: $ embulk guess embulk-example/seed.yml -o config.yml $ embulk preview config.yml $ embulk run config.yml -c config_diff.yml
  2. $ digdag run $ digdag —rerun $ digdag check $ digdag scheduler --project . $ digdag schedules -e http://127.0.0.1:65432