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
Norikraを非リアルタイムなデータ集計に使う試み
Search
yunazuno
July 09, 2014
Technology
6.7k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Norikraを非リアルタイムなデータ集計に使う試み
yunazuno
July 09, 2014
More Decks by yunazuno
See All by yunazuno
eXpress Data Path (XDP) の概要とLINEにおける利活用 / Brief summary of XDP and use-case at LINE
yunazuno
10
3.4k
自作ロードバランサ開発 / JANOG40 SP6LB
yunazuno
0
190
Other Decks in Technology
See All in Technology
Guerilla InnerSource in enterprises, during the AI hype
onenashev
PRO
0
130
いま好きなこと 最初はそんなに好きじゃなかった #tamagawadev
nishiuma
1
200
AI駆動開発を組織で促すために
lycorptech_jp
PRO
7
9.2k
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
140
Level Up Your CDK DX: 5 Tools I’ve Been Building
gotok365
2
180
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
110
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
220
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
1
1.4k
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
1
1.7k
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
220
[RSJ26] Flow as Flow: Modeling Robot Velocity Fields as Probability Velocity Fields
keio_smilab
PRO
0
180
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.2k
Prompt Engineering for Job Search
mfonobong
0
430
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
KATA
mclloyd
PRO
35
15k
Visualization
eitanlees
152
17k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
480
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Mobile First: as difficult as doing things right
swwweet
225
10k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
510
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Transcript
Norikraを非リアルタイムな データ集計に使う試み Norikra meetup #1 Yohei KANEMARU @yunazuno
誰? • 金丸 洋平 (かねまる ようへい) • @yunazuno • ネットワークまわり担当
at LINE Corp. – BGP, CDN, DNS, ロードバランサ周辺 – たまにツール書いたり • 主にPython 2
非リアルタイム ログ集計 + 3
ユースケース: トラフィック集計 4 R1 R2 R3 R4 R5 R6 NW
A NW B • NW A → Bのトラフィックが, R3-5のどれにどのくらい流れ ているか知りたい • ログはR1,R2で個別にCSVで エクスポート可能
「CSVでエクスポート」 • 割とスキーマレス • 外部サービスやアプライアンスが絡むと, 唯一のログ取得手段な場合も – API欲しいけども... • サービスや機器を跨いだ集計は自分で
頑張る 5
6
他の手段を考えてみた 1. スクリプトで全部頑張る? – CSVパース + ひたすら足し算 – 書く手間はそんなに無さそう 2.
DBに入れてから集計? – CSVパース + insert + select – クエリ書くのつらい 7
他の手段を考えてみた 1. スクリプトで全部頑張る? – CSVパース + ひたすら足し算 – 書く手間はそんなに無さそう 2.
DBに入れてから集計? – CSVパース + insert + select – クエリ書くのつらい 3. Norikraで集計! 8
9 From http://norikra.github.io/query.html
win:time_batch 10 “Publisher” Norikra Internal time Wall-clock time Norikraがeventを受け取った時刻を基準に処理 send
send send send send [{name: …, value: …, …}]
win:ext_time_batch 11 “Publisher” Norikra Internal time Wall-clock time eventに含まれるタイムスタンプを基準に処理 send
send send send send Buffer (Delay) [{timestamp: 1396278060000, name: …, value: …, …}]
全体像 12 csv2json.py … traffic_stats.py norikra- client-python 1. CSVをタイムスタンプ順に JSONに詰める
CSVファイルはタイムスタンプで ソートされている ASSUMPTION 2. クエリ登録 3. send 4. fetch 5. クエリとtargetを削除 6. CSVに出力 Query 1: aggregate Query 2: max/avg
Query 1: 複数ファイルの集約 13 input = [{timestamp:1400511600, src_nw: “NW_A”, dst_nw:
“NW_B”, traffic_out: 10.0}] timestamp (in msec) time window time reference 後段のクエリの targetを指定
Query 2: MAX/AVG集計 14 output = [{timestamp:1400511000, traffic_out_daily_avg: 42.34, traffic_out_daily_max:
130.25}]
Q. 「それNorikraじゃなくても いいよね?」 15
A. Yes. 16
あえてNorikraな理由 • 意外と気軽に使える – 入力フォーマットや対象メトリックが変わる たびにスクリプトやDBに手を加えるのは割と 辛い – クエリ編集だけで大抵事足りる >
Norikra – hoge2json部分だけ用意すればよい • xml2json, rrd2json, … 17
まとめ • Excelで開けない辛いデータも割と気軽に 扱えるようになる – 気軽さ大事 • 最近fluent-plugin-netflowとかいう素敵 なものが登場した –
ネットワーク+リアルタイムな話は#2で? 18