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
Hive 集計テクニック
Search
Yuki Ishikawa
April 19, 2019
Technology
0
510
Hive 集計テクニック
2019.04.19 中国地方DB勉強会 in 沖縄
Yuki Ishikawa
April 19, 2019
Tweet
Share
More Decks by Yuki Ishikawa
See All by Yuki Ishikawa
Snowflake Openflow さわってみた
hoto17296
0
140
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
1k
ORM と向き合う
hoto17296
14
11k
明日業務で役立たない Web 開発 TIPS
hoto17296
0
190
クソ bot 実装ライブコーディング
hoto17296
0
230
DeepGBM 論文の紹介
hoto17296
0
600
試行錯誤のための Docker 活用術
hoto17296
4
3.1k
データ分析と Docker / Data Analysis with Docker
hoto17296
0
370
DeepCluster 論文の紹介
hoto17296
7
2.6k
Other Decks in Technology
See All in Technology
SREのキャリアから経営に近づく - Enterprise Risk Managementを基に -
shonansurvivors
1
700
戦えるAIエージェントの作り方
iwiwi
20
9.7k
2025/10/27 JJUGナイトセミナー WildFlyとQuarkusの 始め方
megascus
0
110
Amazon Q Developer CLIをClaude Codeから使うためのベストプラクティスを考えてみた
dar_kuma_san
0
310
datadog-incident-management-intro
tetsuya28
0
120
Okta Identity Governanceで実現する最小権限の原則
demaecan
0
240
251029 JAWS-UG AI/ML 退屈なことはQDevにやらせよう
otakensh
0
160
20251027_findyさん_音声エージェントLT
almondo_event
2
530
[re:Inent2025事前勉強会(有志で開催)] re:Inventで見つけた人生をちょっと変えるコツ
sh_fk2
1
1.2k
Raycast AI APIを使ってちょっと便利なAI拡張機能を作ってみた
kawamataryo
0
230
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
220
GTC 2025 : 가속되고 있는 미래
inureyes
PRO
0
150
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Making Projects Easy
brettharned
120
6.4k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Six Lessons from altMBA
skipperchong
29
4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Code Reviewing Like a Champion
maltzj
526
40k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
Hive ूܭςΫχοΫ 2019.04.19 தࠃํDBษڧձ in ԭೄ @hoto17296
RDB ͚͕ͩ DB Ͱͳ͍ ʂʂʂʂʂ
@hoto17296 • ͪΎΒσʔλגࣜձࣾ σʔλΞφϦετ • ԭೄͷडୗσʔλੳձࣾ • ࠓͷΠϕϯτʹԿਓ͔ࣾһ͍Δ
খωλͰ͢
Apache Hive • Hadoop ͷࢄετϨʔδ (HDFS) ্ͷ σʔλΛ SQL ϥΠΫʹૢ࡞Ͱ͖Δݴޠ
• େنσʔλੳج൫ͳͲʹΑ͘ΘΕΔ • PostgreSQL ͱ͔ͱಉ͡ϊϦͰॻ͘ͱࢮ͵ • Map Reduce ͷ͓ؾ࣋ͪΛͯ͠
Γ͍ͨ͜ͱ time ࠂID ੑผ طࠗ ऩ 1555664019 253678c9 உ
20-24 ະࠗ 500ສ 1555664020 2baf1f40 ঁ 35-38 طࠗ 400ສ 1555664022 105d9501 உ 25-29 ະࠗ 500ສ 1555664022 fe319a8e உ 30-34 طࠗ 600ສ 1555664024 c463fdf4 ঁ 20-24 طࠗ 400ສ 1555664027 325a2a5d உ 40-44 طࠗ 800ສ 1555664029 f445adf3 ঁ 25-29 ະࠗ 500ສ 1555664034 fe319a8e உ 35-38 طࠗ 600ສ 1555664034 f572f626 ঁ 25-29 ະࠗ 400ສ Α͋͘ΔΦʔσΟΤϯεσʔλ
Γ͍ͨ͜ͱ time ࠂID ੑผ طࠗ ऩ 1555664019 253678c9 உ
20-24 ະࠗ 500ສ 1555664020 2baf1f40 ঁ 35-38 طࠗ 400ສ 1555664022 105d9501 உ 25-29 ະࠗ 500ສ 1555664022 fe319a8e உ 30-34 طࠗ 600ສ 1555664024 c463fdf4 ঁ 20-24 طࠗ 400ສ 1555664027 325a2a5d உ 40-44 طࠗ 800ສ 1555664029 f445adf3 ঁ 25-29 ະࠗ 500ສ 1555664034 fe319a8e உ 35-38 طࠗ 600ສ 1555664034 f572f626 ঁ 25-29 ະࠗ 400ສ ࠂ ID ϢχʔΫ͔ͱࢥ͍͖ ΊͪΌͪ͘Όॏෳ͍ͯ͠Δ ಉ͡ ID Ͱଐੑσʔλ (ਪఆ) ͕ ͦΕͧΕҧ͏
Γ͍ͨ͜ͱ time ࠂID ੑผ طࠗ ऩ 1555664019 253678c9 உ
20-24 ະࠗ 500ສ 1555664020 2baf1f40 ঁ 35-38 طࠗ 400ສ 1555664022 105d9501 உ 25-29 ະࠗ 500ສ 1555664022 fe319a8e உ 30-34 طࠗ 600ສ 1555664024 c463fdf4 ঁ 20-24 طࠗ 400ສ 1555664027 325a2a5d உ 40-44 طࠗ 800ສ 1555664029 f445adf3 ঁ 25-29 ະࠗ 500ສ 1555664034 fe319a8e உ 35-38 طࠗ 600ສ 1555664034 f572f626 ঁ 25-29 ະࠗ 400ສ time ͕࠷৽͍͠1ߦ͚ͩͯ͠ଞશͯআ֎͍ͨ͠
1. ·ͣࢥ͍ͭͭ͘
Ϛονϣա͗Δ • શΧϥϜॻ͔ͳ͍ͱ͍͚ͳ͍ • ༻్͕ຊདྷͷ MAX Ͱͳ͍ • จࣈྻΧϥϜʹ MAX
͢Δͷؾ͕Ҿ͚Δ • ࠷৽ͷσʔλ͕औΕΔΘ͚Ͱͳ͍
2. ΟϯυؔΛ͏ͭ
ROW_NUMBER Πϝʔδ time ࠂID ੑผ طࠗ ऩ rank 1555664019
253678c9 உ 20-24 ະࠗ 500ສ 1 1555664020 2baf1f40 ঁ 35-38 طࠗ 400ສ 1 1555664022 105d9501 உ 25-29 ະࠗ 500ສ 1 1555664022 fe319a8e உ 30-34 طࠗ 600ສ 2 1555664024 c463fdf4 ঁ 20-24 طࠗ 400ສ 1 1555664027 325a2a5d உ 40-44 طࠗ 800ສ 1 1555664029 f445adf3 ঁ 25-29 ະࠗ 500ສ 1 1555664034 fe319a8e உ 35-38 طࠗ 600ສ 1 1555664034 f572f626 ঁ 25-29 ະࠗ 400ສ 1 PARTITION BY ORDER BY
ROW_NUMBER ศར • ͱͯΘ͔Γ͍͢ • ͔֬ PostgreSQL Ͱ͑Δ • ൚༻ੑ
(ʁ) ͕͋ͬͯྑ͍
3. Hivemall Λ͏ͭ
Hivemall • Hive ্Ͱػցֶश͢ΔͨΊͷϥΠϒϥϦ • SQL ͰػցֶशͰ͖Δ • Apache Incubation
Project ʹબΕͨ • ͍͢͝ (খฒײ)
EACH_TOP_K ؔ • Hivemall ʹؚ·Ε͍ͯΔؔ • Ϋϥελʔ͝ͱʹ K ݸͷσʔλΛऔಘͰ͖Δ •
(ϢʔεέʔεʹΑͬͯ) ROW_NUMBER ΑΓ͍
͞ͷݕূ • Treasure Data ͷαϯϓϧσʔληοτͰ͋Δ NASDAQ ͷגՁσʔλ (880ສߦ) Λର •
֤ฑ͝ͱͷ࠷৽ͷגՁΛऔಘ͢ΔΫΤϦΛ ROW_NUMBER ͱ EACH_TOP_K Ͱॻ͖ɺ ࣮ߦ࣌ؒΛܭଌ͢Δ
ݕূ݁Ռ 1.46 ഒ͘Β͍ EACH_TOP_K ͷํ͕ ͔ͬͨ ROW_NUMBER EACH_TOP_K 85 ඵ
124 ඵ
ͳ͍͔ͥʁ time symbol volume rank 1555102800 APPL 198.87 1 1555016400
APPL 198.95 2 1554930000 APPL 200.62 3 1554843600 APPL 199.50 4 1555102800 MSFT 120.95 1 1555016400 MSFT 120.33 2 1554930000 MSFT 120.19 3 1554843600 MSFT 119.28 4 ROW_NUMBER શͯͷߦʹ൪߸Λ ৼ͔ͬͯΒߜΓࠐΉ
ͳ͍͔ͥʁ time symbol volume 1555102800 APPL 198.87 1555016400 APPL 198.95
1554930000 APPL 200.62 1554843600 APPL 199.50 1555102800 MSFT 120.95 1555016400 MSFT 120.33 1554930000 MSFT 120.19 1554843600 MSFT 119.28 EACH_TOP_K ඞཁͳ͚ͩऔಘͨ͠Β ͋ͱॲཧ͠ͳ͍
Φν͕ͳ͍ (·ͱΊ) • Hive Ͱʮάϧʔϓ͝ͱʹτοϓ N ݅Λऔಘʯ ͍ͨ͠߹ ROW_NUMBER ͕͑Δ
• Hivemall ͕͑Δ߹ EACH_TOP_K Λ ͏ͱΑΓ͘ͳΔ͔͠Εͳ͍
ʲPRʳ