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
83
メールアドレスを深堀りする
bary822
2
1.2k
AR_migrationの例外.pdf
bary822
0
76
GraphQLを_Rubyで気軽に試す.pdf
bary822
0
350
Other Decks in Programming
See All in Programming
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.8k
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
130
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
490
VibeCodingからAgenticWorkflowへ
starfish719
0
870
Cloudflare is Agents
chimame
0
180
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
120
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
180
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
220
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
Hono + Inertia + React で LP を構築した話
oukayuka
2
170
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.1k
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
The Cult of Friendly URLs
andyhume
79
7k
How to Talk to Developers About Accessibility
jct
2
530
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
480
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
390
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Accessibility Awareness
sabderemane
1
180
Speed Design
sergeychernyshev
33
2k
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