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
290
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
kiba ETLで小さく始めるデータ分析基盤構築
Hiroto Fukui
November 28, 2018
More Decks by Hiroto Fukui
See All by Hiroto Fukui
Deploy from slack
bary822
0
82
メールアドレスを深堀りする
bary822
2
1.2k
AR_migrationの例外.pdf
bary822
0
73
GraphQLを_Rubyで気軽に試す.pdf
bary822
0
340
Other Decks in Programming
See All in Programming
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
180
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
390
関数型プログラミングのメリットって何だろう?
wanko_it
0
190
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
240
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
110
継続モナドとリアクティブプログラミング
yukikurage
3
630
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
フィードバックで育てるAI開発
kotaminato
1
120
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
150
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
150
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
900
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
260
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Leo the Paperboy
mayatellez
8
1.9k
Paper Plane
katiecoart
PRO
2
52k
Utilizing Notion as your number one productivity tool
mfonobong
4
450
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Building an army of robots
kneath
306
46k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
420
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