Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kiba ETLで小さく始めるデータ分析基盤構築
Search
Hiroto Fukui
November 28, 2018
Programming
3
240
kiba ETLで小さく始めるデータ分析基盤構築
Hiroto Fukui
November 28, 2018
Tweet
Share
More Decks by Hiroto Fukui
See All by Hiroto Fukui
Deploy from slack
bary822
0
52
メールアドレスを深堀りする
bary822
2
1.1k
AR_migrationの例外.pdf
bary822
0
49
GraphQLを_Rubyで気軽に試す.pdf
bary822
0
260
Other Decks in Programming
See All in Programming
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
37
14k
Ruby on cygwin 2025-02
fd0
0
140
SwiftUI Viewの責務分離
elmetal
PRO
1
240
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
210
Open source software: how to live long and go far
gaelvaroquaux
0
630
GoとPHPのインターフェイスの違い
shimabox
2
190
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
110
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
9
2.2k
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
740
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
47
17k
Pythonでもちょっとリッチな見た目のアプリを設計してみる
ueponx
1
560
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1k
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Embracing the Ebb and Flow
colly
84
4.6k
The Cult of Friendly URLs
andyhume
78
6.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Gamification - CAS2011
davidbonilla
80
5.1k
Bash Introduction
62gerente
611
210k
Statistics for Hackers
jakevdp
797
220k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Transcript
kiba ETLで小さく始めるデー タ分析基盤構築 @bary822
self self.name => Hiroto Fukui self.sns => @bary822 self.titles =>
[‘app engineer’, ‘data engineer’] self.companies => [‘rakuten’, ‘grooves’] self.likes => [‘dog’, ‘camping’, ‘ruby]
Osaka Tokyo
None
本題
kiba ETL
kiba ETL gem データ分析で使える フレームワーク
E - Extract T - Transform L - Load
.csv height >= 100 weight >= 30 LargeDog table Extract
Transform Load
kiba https://github.com/thbar/kiba https://youtu.be/fxVtbog7pIQ
kiba - 全体像
kiba - Extract(Source)
kiba - Transform
kiba - Load(Destination)
Pros • CRubyだけで気軽に始められる ◦ DSL記法を覚えなくていい • シンプルな設計思想 ◦ 新しいメンバーも理解しやすい •
ドキュメントも(そこそこ)揃っている ◦ https://github.com/thbar/kiba/wiki
Cons • E、T、Lの単独実行が出来ない ◦ ETLのレールに乗っからない便利タスクとかは定義できない • シンプルゆえに安全に運用するための整備は自分でやる気 概が必要 ◦ エラー検知、多重起動防止、秘匿情報の管理とか
分析基盤構築のためにやったこと (より実践的な話)
Data Warehouse • Data Warehouse(DWH) = データ分析に特化したDB • 列指向データベースが望ましい •
ETLのLoad先になるイメージ
Data Warehouse https://en.wikipedia.org/wiki/Data_warehouse
Actionlog • ユーザーの行動ログ • url, http method, referrer, ip address
… • Rackレベルで取れる系のやつ • 35k行/h 位の量
Actionlog + 独自拡張フィールド • ユーザーの行動ログ • url, http method, referrer,
ip address … • Rackレベルで取れる系のやつ • 35k行/h 位の量 • ユーザーID • bot(スクレイピングなど)によるアクセスかどうか
つくったもの • アプリDBをDWHにコピーして同期 ◦ 重いクエリで負荷掛け放題(掛け放題ではない) • この求人を見ている他のユーザーが見ている求人をリコメンド • 変化点検出アルゴリズムの実装 ◦
CUSUM ◦ Change Finder • 外れ値検出アルゴリズムの実装 ◦ DBSCAN
!dev
None
None
ITリテラシー問題 • SQL書けない • それが何の役に立つのかわからない • 何をどうやって分析していいのか分からない
データの民主化
data dev sales marketing execs
None
None
Biz Dev • ビジネスメンバーを含めたdaily huddle • データ分析で解決したい課題を募集 • クエリをまとめたダッシュボード •
DWHに分析用のテーブル/Viewを作成 • 分析用アルゴリズムをライブラリ化
None
None
[WIP] 教育
https://www.fusioncharts.com/blog/data-education-democratization/
これからの計画 • SQL勉強会でもしようかな • BIツールの導入検討 ◦ SQL書かなくてもいいやつ • セルフサービスで勝手に分析してくれるようになったら最高で は
EOF