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

リブセンスのデータ分析基盤とAirflow

 リブセンスのデータ分析基盤とAirflow

2019/2/13
Data Pipeline Casual Talk
https://dpct.connpass.com/event/114040/

Avatar for Livesense Inc.

Livesense Inc.

February 13, 2019
Tweet

More Decks by Livesense Inc.

Other Decks in Technology

Transcript

  1. w ೥ೖࣾ w σʔλ෼ੳج൫ʮ-JWFTFOTF"OBMZUJDTʯͷ ։ൃɺӡ༻Λ΍ͬͯ·͢ w झຯ+Ϧʔά؍ઓ ٢෢ਖ਼࢙ !UBLF@N 

    גࣜձࣾϦϒηϯεςΫϊϩδΧϧϚʔέςΟϯά෦ σʔλϓϥοτϑΥʔϜάϧʔϓ ࣗݾ঺հ
  2. w -JWFTFOTF"OBMZUJDT w Ϧϒηϯεͷσʔλ෼ੳج൫ w "84্ʹߏங w ֤ϝσΟΞͷϩάσʔλͳͲΛऩूɺՃ޻͠3FETIJGU্ʹσʔλΛू໿ w ,1*νΣοΫͷμογϡϘʔυΛ࡞੒ͨ͠ΓΞυϗοΫ෼ੳͷͨΊͷΫ

    ΤϦΛ࣮ߦ w ػցֶशج൫΍ΞτϦϏϡʔγϣϯ෼ੳͷσʔλιʔε w ࣾһ͸୭Ͱ΋42-Λୟ͍ͯ෼ੳͰ͖Δ w -JWFTFOTF#SBJO w Ϧϒηϯεͷػցֶशج൫ w ($1্ʹߏங w -JWFTFOTF"OBMZUJDTͷσʔλΛݩʹɺϞσϧΛੜ੒ w Ϩίϝϯυ΍"#ςετɺଟ࿹όϯσΟοτͳͲϝσΟΞڞ௨Ͱར༻Ͱ͖ ΔػցֶशγεςϜ -JWFTFOTF"OBMZUJDTͱ-JWFTFOTF#SBJO
  3. w ج൫γεςϜͷઃܭɺ࣮૷ɺӡ༻Λߦ͏σʔλΤϯδχΞ w ػցֶशγεςϜͷઃܭɺ࣮૷΍ػցֶशΞϧΰϦζϜͷ࣮૷Λ ߦ͏ɺػցֶशΤϯδχΞ w σʔλूܭ΍෼ੳΛߦ͍ɺ֤ϝσΟΞͷ໰୊ղܾΛਐΊ͍ͯ͘ σʔλΞφϦετ ͱ͸͍͑ɺ͖ͬͪΓͱઢҾ͖͍ͯ͠ΔΘ͚Ͱ͸ͳ͘ʜ w

    σʔλΤϯδχΞ΍ػցֶशΤϯδχΞ΋ूܭ΍෼ੳ΋͢Δ͠ w σʔλΞφϦετ΋ϩδοΫͷ࣮૷΋͢Δ -JWFTFOTF"OBMZUJDTͱ-JWFTFOTF#SBJOʹΑͬͯɺ ࣮૷ɺ෼ੳɺӡ༻ʹ֞ࠜΛ࡞Βͳ͍ɺγʔϜϨεͳ׆༻ ͕࣮ݱͰ͖͍ͯΔ ϝϯόʔߏ੒
  4. -JWFTFOTF"OBMZUJDTʹ͍ͭͯ 3 F E T I J G U E

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

    ͚ͲݟͮΒ͍ͷͰTQSFBETIFFUͰ࣮ߦ࣌ؒͷ؅ཧΛͯ͠ ͍ͨ w ͔͠͠ஈʑλεΫɺόονͷྔ͕૿͖͑ͯͯʜ w ґଘؔ܎΋ෳࡶʹͳ͖ͬͯͯʜ w ఘΊͯɺδϣϒϚωδϝϯτπʔϧͷಋೖΛܾΊͨ   "JSGMPXΛಋೖͨ͠ܦҢ
  6. w 1ZUIPOͷίʔυͰهड़ w 0QFSBUPSͰλεΫΛͭͣͭهड़ w CBTIίϚϯυΛ࣮ߦ͢Δ#BTI0QFSBUPSͷྫ λεΫͷهड़ # DAG dag

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

    13) # 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. w 3FETIJGUʹର͢ΔఆظతͳΫΤϦ࣮ߦ w EBJMZͷूܭ࡞ۀͱ͔ w αϚϦςʔϒϧͷੜ੒ͱ͔ w &.3ͷىಈτϦΨ w &.3࣮ߦલͷલॲཧɺޙॲཧΛهड़

    w લॲཧऴྃޙɺ&.3ىಈɺTUFQ௥Ճɺॲཧऴྃ଴ͪɺΫϥε λఀࢭɺޙॲཧͷྲྀΕΛ%"(Ͱهड़ w 3FETIJGUͷΫΤϦͰॻ͘͜ͱ͕ࠔ೉ͳෳࡶͳॲཧΛ&.3Ͱॲ ཧ w (MVFىಈτϦΨ w 3FETIJGU4QFDUSVN༻ʹ1BSRVFUม׵͢Δॲཧ w &.3ಉ༷ɺ(MVF࣮ߦલͷલॲཧɺޙॲཧΛهड़ ͲͷΑ͏ʹ"JSGMPXΛ׆༻͍ͯ͠Δ͔
  9. w Τϥʔൃੜ࣌ w ϩδοΫଆΤϥʔൃੜ࣌͸4FOUSZͰΞϥʔτ௨஌ w Πϯϑϥ؂ࢹ͸.BDLFSFM EBUBEPH $MPVE8BUDIΛซ༻ w ҟৗσʔλݕ஌͸SFEBTIͷΞϥʔτػೳ

    w Ξϥʔτ௨஌ઌ͸4MBDLʹू໿ w CPUΛ࢖ͬͯɺSFEBTIͷάϥϑͷεΫϦʔϯγϣοτΛ ग़ྗͰ͖ΔΑ͏ʹͳͬͯΔ ϞχλϦϯά
  10. w λεΫͷεέδϡʔϧ΍ґଘؔ܎͕੔ཧͰ͖ͨ w (6*ͰҰ໨ྎવ w ίʔυϕʔεͰ%"(؅ཧ͕Ͱ͖ΔΑ͏ʹͳͬͨ w ࣮ߦ݁Ռɺ࣮ߦ࣌ؒ΋؅ཧͰ͖ΔΑ͏ʹͳͬͨ w DSPOͩͱදݱ͖͠Εͳ͍ෳࡶͳґଘؔ܎΋؅ཧͰ͖ΔΑ͏ʹͳͬͨ

    w λεΫಉ࣮࣌ߦ਺ͷ੍ޚ΋Ͱ͖ΔͷͰɺ3FETIJGUͷෛՙΛߟྀͨ͠ӡ ༻͕Ͱ͖ΔΑ͏ʹͳͬͨ w ࣮ߦ݁Ռͷϩάͷ؅ཧָ͕ʹͳͬͨ w ࠓ·Ͱ͸όοναʔόʹೖͬͯɺ௚઀ϩάϑΝΠϧΛݟΔ͔͠ͳ͔ͬͨ w (6*্Ͱ֬ೝͰ͖ɺো֐ͷݪҼͷௐࠪ΋ָʹͳͬͨ w 8PSLFS͕εέʔϧͰ͖ΔΑ͏ʹͳͬͨ w ͕ɺࠓͷͱ͜Ζؒʹ߹͍ͬͯΔͷͰɺ·ͩͯ͠ͳ͍ "JSGMPXΛಋೖͯ͠Α͔ͬͨ͜ͱ
  11. w όʔδϣϯΞοϓ͕݁ߏ໘౗ w ୯७ʹஔ͖׵͑Ε͹ಈ͘ɺͱ͸͍͔ͳ͍ w ઃఆϑΝΠϧͷ࢓༷͕มΘͬͨΓɺ%#ͷΞοϓσʔτ͕ඞཁͩͬͨΓɺ 0QFSBUPSͷ࢓༷͕มΘͬͨΓʜ w &YFDVUJPO%BUFͱ࣮ࡍͷ࣮ߦ͕࣌ؒͣΕͯΔ w

    &YFDVUJPO%BUF͕ͳͷʹɺ࣮ࡍʹ͸ʹ࣮ߦ ͞ΕͯͨΓ w ଟ෼λΠϜκʔϯॲཧʹ໰୊͕͋ΔΜ͡Όͳ͍͔ͱਪଌ w ͰλΠϜκʔϯ໰୊ղܾͨ͠  w δϣϒͷεέδϡʔϧ؅ཧ͕͢΂ͯղܾͨ͠Θ͚Ͱ͸ͳ͍ w ॏ͍ΫΤϦ͕࣮ߦ͞Ε͕͔͔࣌ؒΔͱɺผͷ%"(ͷ࣮ߦ࣌ؒͱඃΓɺ 3FETIJGUʹෛՙ͕͔͔ΓɺλΠϜΞ΢τ 3FETIJGUͷઃఆ ʹͳͬͯ͠ ·͏͜ͱ΋͋Δ "JSGMPXӡ༻Ͱۤ࿑ͨ͜͠ͱ