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
Агрегация и обработка статистики
Search
Yehor Nazarkin
August 12, 2013
Programming
0
5.7k
Агрегация и обработка статистики
Доклад Валерия Змиевского, kharkivpy #8
Yehor Nazarkin
August 12, 2013
Tweet
Share
More Decks by Yehor Nazarkin
See All by Yehor Nazarkin
Flask, гордость и предубеждения
nimnull
0
290
Python non-mainstream web
nimnull
0
130
Write once, run everywhere
nimnull
0
6.2k
GPU Computing in Python
nimnull
1
5.6k
To Flask or not to Flask
nimnull
5
620
MongoDB Без ORM
nimnull
0
270
REST in Flask (And small client-side intro)
nimnull
10
1.7k
Other Decks in Programming
See All in Programming
Swiftコードバトル必勝法
toshi0383
0
170
マイグレーションコード自作して File-Based Routing に自動移行!! ~250 ページの歴史的経緯を添えて~
cut0
1
260
Jakarta EE meets AI
ivargrimstad
1
500
ドメイン駆動設計を実践するために必要なもの
bikisuke
4
330
Prolog入門
qnighy
4
1k
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
390
Hono・Prisma・AWSでGeoなAPI開発
nokonoko1203
5
680
意外とフォントが大事だった話 / Font Issues on Internationalization
fumi23
0
110
[DroidKaigi 2024] Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜 / From Android View to Jetpack Compose: A Guide to Migration
syarihu
1
630
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
0
400
Modular Monolith Go Server with GraphQL Federation + gRPC
110y
1
580
GraphQLの魅力を引き出すAndroidクライアント実装
morux2
3
660
Featured
See All Featured
Designing for Performance
lara
604
68k
Optimizing for Happiness
mojombo
375
69k
VelocityConf: Rendering Performance Case Studies
addyosmani
322
23k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Practical Orchestrator
shlominoach
185
10k
No one is an island. Learnings from fostering a developers community.
thoeni
18
2.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
The Cult of Friendly URLs
andyhume
76
6k
Typedesign – Prime Four
hannesfritz
39
2.3k
Thoughts on Productivity
jonyablonski
66
4.2k
Writing Fast Ruby
sferik
623
60k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.1k
Transcript
Агрегация и обработка статистики реального времени Валерий Змиевской
Что нам нужно? • База данных • Отказаться от запросов:
group by keyfield … order by sum(datafield) desc • Upsert MongoDB, MySQL - есть нативный синтаксис
Как хранить данные Хранить данные для каждого ключа группировки в
отдельной таблице: user : [last_login, orders, coupons_used, …] category, date : [orders_amount, items_sold] region, date : [orders_amount, items_sold] ….
OLAP-куб на одной таблице Ключи : данные [region, category, year,
month] : [ord, isold] [<all>, 12, 2013, 01] : [100, 665] [<all>, <all>, 2013, 01] : [1600, 5200] ….
Срезы [region, category, year, month] [0, 0, 1, 0], [0,
0, 1, 1], [1, 0, 1, 0], [1, 0, 1, 1] [0, 1, 1, 0], [0, 1, 1, 1], [1, 1, 1, 0], [1, 1, 1, 1] [0, 1, 0, 0], [1, 1, 0, 0] Не нужны срезы: [*, *, 0, 1] и [*, 0, 0, 0]
Показываем: category, графики по месяцам Сортируем: ord, isold Индексы: •
region, category, year, month - unique|Charts • region, year, month, ord - Orders/Category • region, year, month, isold - It. sold/Category Индексы
Запросы: Категории: region=<all>, year=<all>, month=<all> region=EU, year=<all>, month=<all> region=EU, year=2013,
month=<all> График по категории Goods за 2013 год region=EU, year=2013, category=’Goods’