Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hive 集計テクニック

Hive 集計テクニック

2019.04.19 中国地方DB勉強会 in 沖縄

Avatar for Yuki Ishikawa

Yuki Ishikawa

April 19, 2019
Tweet

More Decks by Yuki Ishikawa

Other Decks in Technology

Transcript

  1. Apache Hive • Hadoop ͷ෼ࢄετϨʔδ (HDFS) ্ͷ
 σʔλΛ SQL ϥΠΫʹૢ࡞Ͱ͖Δݴޠ

    • େن໛σʔλ෼ੳج൫ͳͲʹΑ͘࢖ΘΕΔ • PostgreSQL ͱ͔ͱಉ͡ϊϦͰॻ͘ͱࢮ͵ • Map Reduce ͷ͓ؾ࣋ͪΛ࡯ͯ͠
  2. ΍Γ͍ͨ͜ͱ 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ສ Α͋͘ΔΦʔσΟΤϯεσʔλ
  3. ΍Γ͍ͨ͜ͱ 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 Ͱ΋ଐੑσʔλ (ਪఆ஋) ͕ ͦΕͧΕҧ͏
  4. ΍Γ͍ͨ͜ͱ 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ߦ͚ͩ࢒ͯ͠ଞ͸શͯআ֎͍ͨ͠
  5. 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
  6. ଎͞ͷݕূ • Treasure Data ͷαϯϓϧσʔληοτͰ͋Δ
 NASDAQ ͷגՁσʔλ (໿880ສߦ) Λର৅ •

    ֤໏ฑ͝ͱͷ࠷৽ͷגՁΛऔಘ͢ΔΫΤϦΛ
 ROW_NUMBER ͱ EACH_TOP_K Ͱॻ͖ɺ
 ࣮ߦ࣌ؒΛܭଌ͢Δ
  7. ͳͥ଎͍͔ʁ 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 ͸ શͯͷߦʹ൪߸Λ
 ৼ͔ͬͯΒߜΓࠐΉ
  8. ͳͥ଎͍͔ʁ 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 ͸ ඞཁͳ෼͚ͩऔಘͨ͠Β ͋ͱ͸ॲཧ͠ͳ͍
  9. Φν͕ͳ͍ (·ͱΊ) • Hive Ͱʮάϧʔϓ͝ͱʹτοϓ N ݅Λऔಘʯ
 ͍ͨ͠৔߹͸ ROW_NUMBER ͕࢖͑Δ

    • Hivemall ͕࢖͑Δ৔߹͸ EACH_TOP_K Λ
 ࢖͏ͱΑΓ଎͘ͳΔ͔΋͠Εͳ͍