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
460
Hive 集計テクニック
2019.04.19 中国地方DB勉強会 in 沖縄
Yuki Ishikawa
April 19, 2019
Tweet
Share
More Decks by Yuki Ishikawa
See All by Yuki Ishikawa
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
580
ORM と向き合う
hoto17296
8
7.9k
明日業務で役立たない Web 開発 TIPS
hoto17296
0
140
クソ bot 実装ライブコーディング
hoto17296
0
200
DeepGBM 論文の紹介
hoto17296
0
530
試行錯誤のための Docker 活用術
hoto17296
4
2.9k
データ分析と Docker / Data Analysis with Docker
hoto17296
0
340
DeepCluster 論文の紹介
hoto17296
7
2.5k
最新論文を追う技術 / Technology to follow the latest paper
hoto17296
2
250
Other Decks in Technology
See All in Technology
銀行でDevOpsを進める理由と実践例 / 20250317 Masaki Iwama
shift_evolve
1
110
ルートユーザーの活用と管理を徹底的に深掘る
yuobayashi
6
720
RAGの基礎から実践運用まで:AWS BedrockとLangfuseで実現する構築・監視・評価
sonoda_mj
0
430
KCD Brazil '25: Enabling Developers with Dapr & Backstage
salaboy
1
120
OPENLOGI Company Profile
hr01
0
61k
Redefine_Possible
upsider_tech
0
250
Riverpod & Riverpod Generatorを利用して状態管理部分の処理を書き換えてみる簡単な事例紹介
fumiyasac0921
0
100
技術好きなエンジニアが _リーダーへの進化_ によって得たものと失ったもの / The Gains and Losses of a Tech-Enthusiast Engineer’s “Evolution into Leadership”
kaminashi
0
200
Compose MultiplatformにおけるiOSネイティブ実装のベストプラクティス
enomotok
1
210
OPENLOGI Company Profile for engineer
hr01
1
22k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
20k
Amazon Q Developer 他⽣成AIと⽐較してみた
takano0131
1
120
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.3k
Designing Experiences People Love
moore
141
23k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
177
52k
What's in a price? How to price your products and services
michaelherold
245
12k
How to Think Like a Performance Engineer
csswizardry
22
1.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
118
51k
Facilitating Awesome Meetings
lara
53
6.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Done Done
chrislema
183
16k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
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ʳ