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

リブセンスのデータ分析基盤を支えるRedshiftとAirflow

 リブセンスのデータ分析基盤を支えるRedshiftとAirflow

2018-04-06 BigData-JAWS勉強会 #12

Livesense Inc.

April 10, 2018
Tweet

More Decks by Livesense Inc.

Other Decks in Technology

Transcript

  1. w ೥ೖࣾ w σʔλ෼ੳج൫ʮ-JWFTFOTF"OBMZUJDTʯͷ ։ൃɺӡ༻Λ΍ͬͯ·͢ w झຯ+Ϧʔά؍ઓ w ޷͖ͳ"84αʔϏε3FETIJGU 4

    ٢෢ਖ਼࢙ !UBLF@N  גࣜձࣾϦϒηϯεςΫϊϩδΧϧϚʔέςΟϯά෦ σʔλϓϥοτϑΥʔϜάϧʔϓ ࣗݾ঺հ
  2. w σʔλऩू w ϩάσʔλ ΞΫηεϩάɺΠϕϯτϩάɺΠϯϓϨογϣϯϩά  w σʔλಉظ ࣄۀͷ8FCαʔϏε 

    w ֎෦σʔλ ޿ࠂɺ4&0  w σʔλ෼ੳɺ׆༻ w ΞυϗοΫ෼ੳ w ,1*νΣοΫ w μογϡϘʔυ w σʔλιʔε w Ϩίϝϯυ w ޿ࠂΞτϦϏϡʔγϣϯ෼ੳ Ϧϒηϯεͷσʔλ෼ੳج൫
  3. Ϧϒηϯεͷσʔλ෼ੳج൫ 3 F E T I J G U E

    D    Y M B S H F  º   ς ʔϒϧ ਺    Ϩί ʔ υ ਺    ԯ Ϩί ʔ υ ར ༻ ༰ ྔ  5 # ΞΫ ςΟ ϒϢʔ β    ໊ ΞυϗοΫɾΫΤϦ EBZ # *    δϣϒ ɾ Ϋ Τ Ϧ        E B Z Ϧ Ϧ ʔε     ೥   ݄
  4. w ݩʑɺόονॲཧΛ3VCZͷSBLFͰॻ͍͍ͯͨ ࠓ΋  w ౰࣌ͷεέδϡʔϧ؅ཧ͸DSPO w XIFOFWFSͱ͍͏HFNΛ࢖ͬͯɺλεΫεέδϡʔϧͷ όʔδϣϯ؅ཧ͸͍ͯͨ͠ w

    ͚ͲݟͮΒ͍ͷͰTQSFBETIFFUͰ࣮ߦ࣌ؒͷ؅ཧΛͯ͠ ͍ͨ w ͔͠͠ஈʑλεΫɺόονͷྔ͕૿͖͑ͯͯʜ w ґଘؔ܎΋ෳࡶʹͳ͖ͬͯͯʜ w ఘΊͯɺδϣϒϚωδϝϯτπʔϧͷಋೖΛܾΊͨ   "JSGMPXΛಋೖͨ͠ܦҢ
  5. w "JSGMPXಋೖ౰࣌ɺൺֱͨ͠΋ͷ w -VJHJ w %JHEBH w 3VOEFDL w ਖ਼௚ɺͲΕ΋Ұ௕Ұ୹ͰܾΊख͸ͳ͔ͬͨʜ

    w ໰୊͕͋ͬͨ࣌ʹҰ൪ʮӡ༻ͰΧόʔʯग़དྷͦ͏ͩͬͨͷ ͕"JSGMPXͩͬͨ ଞͷδϣϒϚωδϝϯτπʔϧͱͷൺֱ
  6. w 1ZUIPOͷίʔυͰهड़ w 0QFSBUPSͰλεΫΛͭͣͭهड़ w CBTIίϚϯυΛ࣮ߦ͢Δ#BTI0QFSBUPSͷྫ λεΫͷهड़ # DAG dag

    = DAG(‘test_dag’, start_date=datetime(2018, 4, 6) # bashίϚϯυλεΫͷྫ test_task = BashOperator( task_id='test_task', bash_command='ls -al’, dag=dag)
  7. w λεΫؒͷґଘؔ܎ΛϏοτγϑτԋࢉࢠΛ࢖ͬͯهड़ λεΫؒͷґଘؔ܎ # DAG dag = DAG(‘test_dag’, start_date=datetime(2018, 4,

    6) # bashίϚϯυλεΫͷྫ task_ls = BashOperator( task_id='task_ls', bash_command='ls -al', dag=dag) task_echo = BashOperator( task_id='task_echo', bash_command='echo "hoge"', dag=dag) task_date = BashOperator( task_id='task_date', bash_command='date "+%F %T"', dag=dag) # λεΫؒͷґଘؔ܎ΛϏοτԋࢉࢠͰهड़ task_ls >> task_echo task_ls >> task_date
  8. &YFDVUPS w εέδϡʔϦϯάɺ΍λεΫͷ࣮ߦͷฒྻɺ෼ࢄॲཧΛͲͷ Α͏ͳ࢓૊ΈͰ࣮ߦ͢Δ͔Λܾఆ w 4FRVFOUJBM&YFDVUPS w -PDBM&YFDVUPS w $FMFSZ&YFDVUPS

    w %BTL&YFDVUPS w .FTPT&YFDVUPS w &YFDVUPSʹΑͬͯɺTDIFEVMFS΍XPSLFSͷڍಈ͕มΘΔ w 4FRVFOUJBM&YFDVUPSͷ৔߹ɺXPSLFS͕ෆཁʹͳΔ
  9. w 3FETIJGUʹର͢ΔఆظతͳΫΤϦ࣮ߦ w αϚϦςʔϒϧͷੜ੒ͱ͔ɺ7"$66.ͷ࣮ߦ؅ཧͱ͔ w ϔϧενΣοΫܥΫΤϦͷ࣮ߦ w &.3ͷىಈτϦΨ w &.3࣮ߦલͷલॲཧɺޙॲཧΛهड़

    w લॲཧऴྃޙɺ&.3ىಈɺTUFQ௥Ճɺॲཧऴྃ଴ͪɺΫϥε λఀࢭɺޙॲཧͷྲྀΕΛ%"(Ͱهड़ w 3FETIJGUͷΫΤϦͰॻ͘͜ͱ͕ࠔ೉ͳෳࡶͳॲཧΛ&.3Ͱॲ ཧ w (MVFىಈτϦΨ w 3FETIJGU4QFDUSVN༻ʹ1BSRVFUม׵͢Δॲཧ w &.3ಉ༷ɺ(MVF࣮ߦલͷલॲཧɺޙॲཧΛهड़ ͲͷΑ͏ʹ"JSGMPXΛ׆༻͍ͯ͠Δ͔
  10. w λεΫͷεέδϡʔϧ΍ґଘؔ܎͕੔ཧͰ͖ͨ w (6*ͰҰ໨ྎવ w ίʔυϕʔεͰ%"(؅ཧ͕Ͱ͖ΔΑ͏ʹͳͬͨ w ࣮ߦ݁Ռɺ࣮ߦ࣌ؒ΋؅ཧͰ͖ΔΑ͏ʹͳͬͨ w ࣮ߦ݁Ռͷϩάͷ؅ཧָ͕ʹͳͬͨ

    w ࠓ·Ͱ͸όοναʔόʹೖͬͯɺ௚઀ϩάϑΝΠϧΛݟ Δ͔͠ͳ͔ͬͨ w (6*্Ͱ֬ೝͰ͖ɺো֐ͷݪҼͷௐࠪ΋ָʹͳͬͨ w 8PSLFS͕εέʔϧͰ͖ΔΑ͏ʹͳͬͨ w ͕ɺࠓͷͱ͜Ζؒʹ߹͍ͬͯΔͷͰɺ·ͩͯ͠ͳ͍ "JSGMPXΛಋೖͯ͠Α͔ͬͨ͜ͱ
  11. w ఀࢭޙͷ෮چ͕݁ߏ໘౗ w 3FETIJGUͷϊʔυ௥ՃͳͲɺҰ࣌తʹఀࢭ͢Δඞཁ͕͋Δͱ͖ w ෮چޙɺཷ·͍ͬͯͨεέδϡʔϧ͕·ͱΊ࣮ͯߦ͞ΕΔ໰୊ w ϔϧενΣοΫΫΤϦͳͲ୹͍पظͰ࣮ߦ͞ΕΔ%"(ͱ͔ w ҰؾʹΫΤϦΛ౤͛ͯ͘ΔͷͰ%P4ঢ়ଶʹ

    w όʔδϣϯͰ$BUDIVQΛແޮʹ͢Δઃఆ͕ग़དྷͨͷͰɺղফ w &YFDVUJPO%BUFͱ࣮ࡍͷ࣮ߦ͕࣌ؒͣΕͯΔ w &YFDVUJPO%BUF͕ͳͷʹɺ࣮ࡍʹ͸ ʹ࣮ߦ͞ΕͯͨΓ w ଟ෼λΠϜκʔϯॲཧʹ໰୊͕͋ΔΜ͡Όͳ͍͔ͱਪଌ "JSGMPXӡ༻Ͱۤ࿑ͨ͜͠ͱ
  12. w λεΫࣦഊޙͷ࠶࣮ߦ w %"(ͷ్தͰࣦഊͨ͠৔߹ɺ͋ͱͰࣦഊͨ͠ͱ͜Ζ͔Β࠶࣮ߦ ग़དྷΔ͕ɺࠓ͸खಈͰSBLFΛ௚઀࣮ߦ͍ͯ͠Δ w ࠶։ΦϖϨʔγϣϯΛ΋͏গָ͠ʹͰ͖ΔΑ͏ݟ௚͍ͨ͠ w λεΫ࣮૷ํ๏ w

    Ҏલͷӡ༻Ͱ࢖͍ͬͯͨ3VCZ3BLFλεΫΛͦͷ··࢖͍ͬͯ Δ͕1ZUIPOʹஔ͖׵͍͑ͯͬͨ΄͏͕͍͍͔Ͳ͏͔໎͍தʜ w "JSGMPX"1*ͷ0QFSBUPSΛ௚઀ୟ͚ΔϝϦοτ͸େ͖͍ w ͕ɺ%"(ͱϩδοΫ͸෼཭͍ͨ͠ w %PDLFSԽ w &$4΍&,4Ͱӡ༻Ͱ͖ΔΑ͏ʹ͍ͨ͠ʜ ࠓޙͷ՝୊