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

カラムナフォーマットのきほん

 カラムナフォーマットのきほん

2017/05/18 BigData-JAWS 勉強会での発表資料です。
Explanation of Columnar format such as Parquet and ORC in japanese.

chie8842

May 18, 2017
Tweet

More Decks by chie8842

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ $IJF)BZBTIJEB  !DIJF 3FUUZ*OD 4PGUXBSF&OHJOFFS%BUB4DJFOUJTU   "84ྺ͸೥΄Ͳɻ 4QBSL΍;FQQFMJOͳͲʹίϯτϦϏϡʔτɻ

      ػցֶश)BEPPQ4QBSL4DBMB1ZUIPO%#WJN ম೑ϐΞϊςχεεϊϘ  機械学習& 分析基盤構築やってます!
  2. •  ߦࢦ޲ϑΥʔϚοτ ߦࢦ޲ϑΥʔϚοτͱྻࢦ޲ϑΥʔϚοτ •  ྻࢦ޲ϑΥʔϚοτ colA colB colC 1 aaa

    2017-04-01 2 bbb 2017-04-02 3 ccc 2017-04-03 4 ddd 2017-04-04 5 eee 2017-04-05 colA colB colC 1 aaa 2017-04-01 2 bbb 2017-04-02 3 ccc 2017-04-03 4 aaa 2017-04-04 5 ccc 2017-04-05 行方向に連続してデータを保持 ・ 行単位でデータを操作することの多い OLTP処理に有利 列方向に連続してデータを保持 ・ 特定の列のみ取得する分析用途に有利 ・ 列のカーディナリティが低い場合、 圧縮率が高くなる σʔλ֨ೲ୯Ґ 一般的に分析用途のビッグデータ基盤はこっちが向いている
  3. •  03$ —  "QBDIF)JWFͷͨΊʹ࡞ΒΕͨϑΥʔϚοτ —  "QBDIFͷτοϓϓϩδΣΫτ —  )JWF1SFTUP4QBSLͳͲ͕αϙʔτ •  1BSRVFU

    —  5XJUUFS͕ࣾ։ൃɺ$MPVEFSB΋։ൃʹେ͖ؔ͘ΘΔ —  "QBDIFͷτοϓϓϩδΣΫτ —  4QBSL1SFTUP%SJMM*NQBSB)JWFͳͲ͕αϙʔτ ओཁͳ044ͷྻࢦ޲ϑΥʔϚοτ ࠓճ͸1BSRVFUΛϕʔεʹઆ໌͠·͢
  4. ωετ͞Εͨσʔλͷ࣋ͪํ SFDPSEPSJFOUFE DPMVNOPSJFOUFE S S " # $ % &

    S S Ұ෦ΛಡΈग़ͨ͢Ίʹωετ͞Εͨ σʔλશͯΛಡΈग़͢ඞཁ͕͋Δ ඞཁͳσʔλʹͷΈΞΫηε͢Δ ͜ͱ͕Ͱ͖Δ
  5. ωετ͞Εͨσʔλͷ࣋ͪํ SFDPSEPSJFOUFE DPMVNOPSJFOUFE S S " # $ % &

    S S ωετ͞Εͨσʔλ͢΂ͯΛ ಡΈग़͢ඞཁ͕͋Δ ඞཁͳσʔλͷΈΛಡΈग़͢ ͜ͱ͕Ͱ͖Δ σʔλߏ଄ͷ৘ใΛอ࣋ͭͭ͠αϒηοτ͝ͱʹ σʔλΛอଘ͍ͨ͠
  6. ܕεϖγϑΟοΫͳΤϯίʔυํࣜ •  1MBJO –  γϯϓϧʹ஋Λ࿈ଓͯ͠อଘ͢Δํ๏ •  %JDUJPOBSZ&ODPEJOH –  ࣙॻ৘ใΛ࡞੒ͯͦ͠ͷ৘ใΛ༻͍ͯΤϯίʔυ͢Δํ๏ – 

    ΧʔσΟφϦςΟ͕௿͍৔߹ʹ༗ޮ •  3VO-FOHUI&ODPEJOH –  ܁Γฦ͕͠ଓ͘஋Λޮ཰తʹอଘ͢Δํ๏ •  %FMUB&ODPEJOHT –  ιʔτ͞Εͨσʔλͷࠩ෼Λه࿥͢Δํ๏ –  5JNF4UBNQͳͲͷΠϯΫϦϝϯλϧͳσʔλͳͲ •  1SFpY&ODPEJOH –  %JDUJPOBSZ&ODPEJOH͕࢖͑ͳ͍ͱ͖ʹར༻͢Δ
  7. %JDUJPOBSZ&ODPEJOH *% 'SVJUT  "QQMF  0SBOHF  -FNPO 

    8BUFSNFMPO  .FMPO  #BOBOB "QQMF 0SBOHF 0SBOHF -FNPO "QQMF 8BUFS .FMPO .FMPO #BOBOB "QQMF .FMPO           &ODPEFE%BUB %JDUJPOBSZ
  8. %FMUB&ODPEJOH 100 101 101 102 101 101 102 101 99

    100 105 107 114 116 119 120 121 101 101 102 101 101 102 101 99 100 105 107 114 116 119 120 121  CMPDL CMPDL SFGFSFODF 1 0 1 -1 0 1 -1 -2 1 5 2 7 2 3 1 1 ͭલͷ஋͔Βͷࠩ෼  3 2 3 1 2 3 1 0 0 4 1 6 1 2 0 0    NJO EFMUB NJO EFMUB 11 10 11 01 10 11 01 00 000 100 001 110 001 010 000 000      Ϗοτ਺ Ϗοτ਺ CJU CJU CJU  CJU CJU σʔλྔ͕ଟ͘ͳΔͱߋʹѹॖ཰͸্͕Δ
  9. ΦϓςΟϚΠβʹΑΔ࠷దԽ 4&-&$5DPM'30.NZUBCMFXIFSFDPM col1 col2 col3 a1 0 c1 a2 10

    c2 a3 10 c3 a4 30 c4 a5 50 c5 •  QSPKFDUJPOQVTIEPXO ඞཁͳྻͷΈΛऔΓग़͢   •  QSFEJDBUFQVTIEPXO ඞཁͳߦͷΈΛऔΓग़͢  col1 col2 col3 a1 0 c1 a2 10 c2 a3 10 c3 a4 30 c4 a5 50 c5
  10. 03$WT1BSRVFU •  ΞʔΩςΫνϟͷҧ͍   03$͸ωετ͞ΕͨσʔλΛͦΕͧΕผͷྻͱͯ͠ѻ͏   03$͸ϒϧʔϜϑΟϧλͷػೳ͕͋Δ   1BSRVFUʹ͸4DIFNBNFSHJOHͷػೳ͕͋Δ 

    •  ϓϩμΫτ͝ͱʹɺ֤ϑΥʔϚοτ΁ͷରԠͷҧ͍ ʢϑΥʔϚοτ͸͋͘·Ͱ࠷దԽ͠΍͍͢σʔλܗࣜͰ͋ͬͯɺ࣮ࡍʹ ॲཧΛϓϩμΫτଆ͕ରԠ͍ͯ͠ͳ͍ͱҙຯ͕ͳ͍ʣ •  σʔλͷಛੑ΍ར༻͢ΔϓϩμΫτɺ࣮ߦ͢ΔΫΤϦͷύλʔϯʹΑͬͯɺ ࢖͍෼͚Δͷ͕େ੾ •  ৔߹ʹΑͬͯ͸03$΍1BSRVFUΑΓ΋4FRVFODF'JMFͳͲͷ΄͏͕ εϧʔϓοτ͕ྑ͍৔߹΋͋Δ •  Ұ൪͍͍ͷ͸ɺݕূͰεϧʔϓοτ΍σʔλαΠζΛ֬ೝ͢Δ͜ͱ
  11. ࢀߟࢿྉ •  %SFNFM࿦จ –  IUUQTTUBUJDHPPHMFVTFSDPOUFOUDPNNFEJBSFTFBSDIHPPHMFDPNKBQVCT BSDIJWFQEG  •  "QBDIF1BSRVFUυΩϡϝϯτ – 

    IUUQTQBSRVFUBQBDIFPSH •  (JU)VC –  IUUQTHJUIVCDPN1BSRVFU –  IUUQTHJUIVCDPNBQBDIFPSD  •  "QBDIF03$υΩϡϝϯτ –  IUUQTPSDBQBDIFPSH •  &GpDJFOU%BUB4UPSBHFGPS"OBMZUJDTXJUI"QBDIF1BSRVFU –  IUUQTXXXTMJEFTIBSFOFUDMPVEFSBIBEPPQTVNNJU SFGIUUQT QBSRVFUBQBDIFPSHQSFTFOUBUJPOT •  +*3" –  IUUQTJTTVFTBQBDIFPSHKJSBJTTVFT