Slide 1

Slide 1 text

Hive ूܭςΫχοΫ 2019.04.19 தࠃ஍ํDBษڧձ in ԭೄ @hoto17296

Slide 2

Slide 2 text

RDB ͚͕ͩ DB Ͱ͸ͳ͍
 ʂʂʂʂʂ

Slide 3

Slide 3 text

@hoto17296 • ͪΎΒσʔλגࣜձࣾ σʔλΞφϦετ • ԭೄͷडୗσʔλ෼ੳձࣾ • ࠓ೔ͷΠϕϯτʹԿਓ͔ࣾһ͍Δ

Slide 4

Slide 4 text

খωλͰ͢

Slide 5

Slide 5 text

Apache Hive • Hadoop ͷ෼ࢄετϨʔδ (HDFS) ্ͷ
 σʔλΛ SQL ϥΠΫʹૢ࡞Ͱ͖Δݴޠ • େن໛σʔλ෼ੳج൫ͳͲʹΑ͘࢖ΘΕΔ • PostgreSQL ͱ͔ͱಉ͡ϊϦͰॻ͘ͱࢮ͵ • Map Reduce ͷ͓ؾ࣋ͪΛ࡯ͯ͠

Slide 6

Slide 6 text

΍Γ͍ͨ͜ͱ 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ສ Α͋͘ΔΦʔσΟΤϯεσʔλ

Slide 7

Slide 7 text

΍Γ͍ͨ͜ͱ 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 Ͱ΋ଐੑσʔλ (ਪఆ஋) ͕ ͦΕͧΕҧ͏

Slide 8

Slide 8 text

΍Γ͍ͨ͜ͱ 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ߦ͚ͩ࢒ͯ͠ଞ͸શͯআ֎͍ͨ͠

Slide 9

Slide 9 text

1. ·ͣࢥ͍ͭ͘΍ͭ

Slide 10

Slide 10 text

Ϛονϣա͗Δ • શΧϥϜ෼ॻ͔ͳ͍ͱ͍͚ͳ͍ • ༻్͕ຊདྷͷ MAX Ͱ͸ͳ͍ • จࣈྻΧϥϜʹ΋ MAX ͢Δͷؾ͕Ҿ͚Δ • ࠷৽ͷσʔλ͕औΕΔΘ͚Ͱ͸ͳ͍

Slide 11

Slide 11 text

2. ΢Οϯυ΢ؔ਺Λ࢖͏΍ͭ

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

ROW_NUMBER ศར • ͱͯ΋Θ͔Γ΍͍͢ • ͔֬ PostgreSQL Ͱ΋࢖͑Δ • ൚༻ੑ (ʁ) ͕͋ͬͯྑ͍

Slide 14

Slide 14 text

3. Hivemall Λ࢖͏΍ͭ

Slide 15

Slide 15 text

Hivemall • Hive ্Ͱػցֶश͢ΔͨΊͷϥΠϒϥϦ • SQL ͰػցֶशͰ͖Δ • Apache Incubation Project ʹબ͹Εͨ • ͍͢͝ (খฒײ)

Slide 16

Slide 16 text

EACH_TOP_K ؔ਺ • Hivemall ʹؚ·Ε͍ͯΔؔ਺ • Ϋϥελʔ͝ͱʹ K ݸͷσʔλΛऔಘͰ͖Δ • (ϢʔεέʔεʹΑͬͯ͸)
 ROW_NUMBER ΑΓ଎͍

Slide 17

Slide 17 text

଎͞ͷݕূ • Treasure Data ͷαϯϓϧσʔληοτͰ͋Δ
 NASDAQ ͷגՁσʔλ (໿880ສߦ) Λର৅ • ֤໏ฑ͝ͱͷ࠷৽ͷגՁΛऔಘ͢ΔΫΤϦΛ
 ROW_NUMBER ͱ EACH_TOP_K Ͱॻ͖ɺ
 ࣮ߦ࣌ؒΛܭଌ͢Δ

Slide 18

Slide 18 text

ݕূ݁Ռ 1.46 ഒ͘Β͍
 EACH_TOP_K ͷํ͕
 ଎͔ͬͨ ROW_NUMBER EACH_TOP_K 85 ඵ 124 ඵ

Slide 19

Slide 19 text

ͳͥ଎͍͔ʁ 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 ͸ શͯͷߦʹ൪߸Λ
 ৼ͔ͬͯΒߜΓࠐΉ

Slide 20

Slide 20 text

ͳͥ଎͍͔ʁ 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 ͸ ඞཁͳ෼͚ͩऔಘͨ͠Β ͋ͱ͸ॲཧ͠ͳ͍

Slide 21

Slide 21 text

Φν͕ͳ͍ (·ͱΊ) • Hive Ͱʮάϧʔϓ͝ͱʹτοϓ N ݅Λऔಘʯ
 ͍ͨ͠৔߹͸ ROW_NUMBER ͕࢖͑Δ • Hivemall ͕࢖͑Δ৔߹͸ EACH_TOP_K Λ
 ࢖͏ͱΑΓ଎͘ͳΔ͔΋͠Εͳ͍

Slide 22

Slide 22 text

ʲPRʳ