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

Hive 集計テクニック

Hive 集計テクニック

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

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 Λ
 ࢖͏ͱΑΓ଎͘ͳΔ͔΋͠Εͳ͍