自由と統制のバランス 分析基盤のアプローチ

1af957ba61a86796673cc09973afe3a3?s=47 rhase
June 27, 2019

 自由と統制のバランス 分析基盤のアプローチ

@Data Pipeline Casual Talk Vol.3
https://dpct.connpass.com/event/130109/

1af957ba61a86796673cc09973afe3a3?s=128

rhase

June 27, 2019
Tweet

Transcript

  1. 2.

    %F/"ͷ෼ੳ૊৫ͱΤϯδχΞϦϯάάϧʔϓʹ͍ͭͯ  ήʔϜɾΤϯλʔςΠϯϝϯτࣄۀຊ෦ εϙʔπࣄۀຊ෦ ΦʔτϞʔςΟϒࣄۀຊ෦ ϔϧεέΞࣄۀຊ෦ ωοταʔϏεࣄۀຊ෦ ෼ੳ୲౰ऀ γ ε

    ς Ϝ ຊ ෦ ෼ ੳ ਪ ਐ ෦ Τ ϯ δ χ Ξ Ϧ ϯ ά ̜ • 共通分析基盤の構築/運⽤ • 分析ツール開発 • 共通集計構築/運⽤ • AIシステム基盤 ෼ੳ୲౰ऀ ෼ੳ୲౰ऀ ෼ੳ୲౰ऀ ෼ੳ୲౰ऀ "*ຊ෦
  2. 3.

    ݱࡏͷڞ௨෼ੳج൫  -PH $PMMFDUPS )BEPPQ 7FSUJDB Argus 内製BIツール) "QQ 4FSWFS

    %# #JH2VFSZ #BUDI 4FSWFS +FOLJOT )VF MPH サービス基盤 分析基盤 %F/"0O1SFNJTFT ($1 .FEKFE 内製ETLツール • ೥͔Β)BEPPQͷӡ༻Λ։࢝ɻ • ͪͳΈʹ z)BEPPQ5IF%FGJOJUJWF(VJEFz ৅ຊ ͷॳ൛͕ग़൛͞Εͨͷ͕೥ɻ • ͦͷޙɺ༷ʑͳ֦ுΛଓ͚ࠓʹࢸΔɻ • ݱࡏͷن໛ײɿ1# EBUB  OPEFT *NQPSUEC όονδϣϒ؅ཧ ʹར༻ 4FSWJDF" 4FSWJDF# ・ ・ ・
  3. 4.

    ڞ௨෼ੳج൫ͷ࡮৽Λਐߦத  "QQ4FSWFS %# MPH #JH2VFSZ EJHEBH ($4 ($11SPKFDU" 4FSWJDF"

    4FSWJDF# ($11SPKFDU# サービス基盤 ・ ・ ・ ・ ・ ・ 分析基盤 ($1 (,& Argus 内製BIツール) .FEKFE 内製ETLツール ($11SPKFDU9 • ݱࡏɺ෼ੳج൫ͷ࡮৽ΛஅߦதɻzQSPKFDUQPMZNPSQIz • %8)Λશͯ#JH2VFSZʹҠߦ͠ɺपลͷπʔϧ΋($1্ʹߏ੒ɻ • ৄࡉΛ͓࿩͢Δͱ෼Ͱ͸଍Γͳ͘ͳΔͷͰɺڵຯ͋Δํ͸࠙਌ձͰ͓࿩͠·͠ΐ͏ʂ
  4. 6.

    ͜Ε·Ͱ%F/"ͷ෼ੳج൫͸ར༻ऀʹߴ͍Ϩϕϧͷࣗ༝Λ༩͖͑ͯͨ • ֤αʔϏεͰσʔλʹج͖ͮҙࢥܾఆ͢ΔจԽ͕ࠜ෇͍͍ͯΔɻ • ͦͷͨΊɺར༻ऀ΋෯޿͍ɻ • ྫ͑͹ɺ಺੡#*πʔϧz"SHVTzͷ."6͸ ۙ͘ɻ࿈݁ͷશࣾһͷ͓Αׂͦɻ • εϐʔυײΛଛͳΘͣ෼ੳΛਪਐ͢ΔͨΊɺར༻ऀʹۃྗɺࣗ׆ͯ͠΋Β͏ํ਑ΛબΜͩɻ

    • ա౓ʹ౷੍Λ͔͚Δ͜ͱͰج൫Λ؅ཧ͢Δଆ͕ϘτϧωοΫͱͳΔ͜ͱΛආ͚ͨɻ  ήʔϜɾΤϯλʔςΠϯϝϯτࣄۀຊ෦ εϙʔπࣄۀຊ෦ ΦʔτϞʔςΟϒࣄۀຊ෦ ϔϧεέΞࣄۀຊ෦ ωοταʔϏεࣄۀຊ෦ ෼ੳ୲౰ऀ ෼ੳ୲౰ऀ ෼ੳ୲౰ऀ ෼ੳ୲౰ऀ ෼ੳ୲౰ऀ ଟ͘ͷࣄۀ͕ڞ௨෼ੳج൫Λར༻͠ ͍ͯΔɻ
  5. 7.

    ͜Ε·Ͱ%F/"ͷ෼ੳج൫͸ར༻ऀʹߴ͍Ϩϕϧͷࣗ༝Λ༩͖͑ͯͨ • 42-ΫΤϦ࡞੒ • Ϩϙʔτ࡞੒  )BEPPQ 7FSUJDB #JH2VFSZ "SHVT

    ಺੡#*πʔϧ +FOLJOT #BUDI4FSWFS • ूܭɾ෼ੳεΫϦϓτ࡞੒ • ΞυϗοΫ෼ੳ • ͜ΕΒΛར༻ऀ͕όοναʔόʹ TTI ͰϩάΠϯͯ͠࡞ۀ • όονδϣϒઃఆ • ΤϥʔରԠ • (6*Λ࢖ͬͨ෼ੳɾϨϙʔςΟϯά͚ͩͰͳ͘ɺόονઃఆ΍όοναʔό΁ͷϩάΠϯ·Ͱ೚ ͍ͤͯΔ ར༻ऀ͕ߦ͏࡞ۀ
  6. 8.

    ͔͠͠౷੍͕؇͘ͳΓա͗ɺࠞཚ͕ੜ͡Δέʔε͕Ͱ͖ͯͨʜ  ߏ੒؅ཧʹؔ͢Δࢧԉɾ࢓૊ΈԽ͕ෆे෼ͩͬͨɻ ར༻ऀ͕ΤϯδχΞͰ͸ͳ͍έʔε΋ଟ͍ͷͰɺͳ͓͞Βࠞཚʹܨ͕ͬͨɻ ͲΜͲΜ໺์͠ʹͳ͍ͬͯ͘؀ڥ όʔδϣϯ؅ཧ͞Ε͍ͯͳ͍εΫϦϓτ͕ΘΜ͔͞ग़͖ͯͨΓʜ git status ... modified:

    hoge.sh modified: fuga.sql (⼭のような modified) ... Untracked files: some_file.sql other_file.sql (⼭のような Untracked files) ࠷ॳ͸ HJU ؅ཧ͠Α͏ͱͯͨ͠Α͏͕ͩɺ్த Ͱ࠳ંͪ͠Ό༷ͬͨࢠʜ ʢ࣮࿩Ͱ͢ʣ QZFOW Ͱ QZUIPOͷόʔδϣϯ ͕੾ΓସΘΒͳ͍ʜ ... PATH=/usr/bin:$PATH ... CBTISD Ͱ 1"5)্͕ॻ͖͞Εͯͨ… ʢ࣮࿩Ͱ͢ʣ CBTISD ͕͍ͭͷؒʹ͔ॻ͖׵͑ΒΕͨΓʜ
  7. 9.

    Ұํɺ·ͩ·ͩࣗ༝͕଍Γͳ͍έʔε΋ग़͖ͯͨʜ • Ψνʹ"*.-ʹऔΓ૊ΉҊ݅Ͱ͸ઐ༻ͷ؀ڥΛΨοπϦ૊Ήɻ • αʔϏεͷίΞʹ"*.-ΛऔΓೖΕΔલఏͰɺ૬Ԡͷ౤ࢿΛ͢ΔΑ͏ͳέʔεɻ • Ҋ݅ຖʹݸผʹ؀ڥΛઃܭɾߏங͢Δɻ • ͔͠͠ɺεϞʔϧελʔτͰࢼ͍ͨ͠ɺͱ͍ͬͨχʔζ΋ग़͖͓ͯͯΓɺͳ͔ͳ͔ॊೈʹର ԠͰ͖ͳ͍ɻ

    • ઐ༻ͷ؀ڥΛ૊Ήʹ͸ʢओʹ޻਺໘ͷʣίετ͕େ͖ա͗Δɻ • ʮڞ௨෼ੳج൫Λ࢖͑ͳ͍͔ʁʯͱ૬ஊ͞ΕΔέʔε͕Α͋͘Δ͕ɺશαʔϏε͕ಉډ ͍ͯ͠Δ͜ͱ΋͋ΓԠ͑ͮΒ͍ɻ • ҆қʹߏ੒ม͑ͨΓ04.8ΞοϓάϨʔυ͠ɺͲ͔͜ͰσάϨ͢ΔϦεΫɻ • ҆қʹॏ͍ॲཧͿͬࠐ·Εͯશମ͕஗Ԇ͢ΔϦεΫɻ 
  8. 11.

    ࣗ༝౓Λอͪͭͭߏ੒؅ཧΛڧ੍͢Δ࢓૊Έͷߏங • Πϯϑϥ͸*B$Ͱ؅ཧɻ • UFSSBGPSN • LT (,& • ར༻ऀଆʹ͸ɺඞͣόʔδϣϯ؅ཧ

    HJUIVC ͱ࿈ܞ͠ͳ͚Ε͹ͳΒͳ͍࢓૊ΈΛఏڙɻ • όονεΫϦϓτ΍λεΫఆٛ͸ EJHEBH ʹอଘ͢Δɻ EJHEBH QVTI • ֎෦͔Βͷ EJHEBH QVTIΛ࢓૊Έ্ېࢭɻ • HJU DMPOFEJHEBH QVTI͢ΔλεΫΛ EJHEBH ʹ༻ҙ͓͖ͯ͠ɺͦΕΛ࢖ͬͯ΋Β͏ɻ  Digdag Kubernetes Engine digdag DeNA on-premises Github Enterprise 外部からは digdag push できない構成 git clone & digdag push する タスクを⽤意しておく。
  9. 12.

    ίϯςφͰ؀ڥΛִ཭ࣗ͠༝౓VQ • ج൫ଆͰఏڙ͢ΔαʔϏεʢEJHEBH౳ʣ͸ίϯςφͰಈ͔͢ɻ • ར༻ऀଆͰ؀ڥΛΧελϚΠζ͍ͨ͠৔߹΋ίϯςφΛ࢖ͬͯ΋Β͏ɻ • ʮQZUIPOͰ.-Λ࣮ߦ͍ͨ͠ɻͦͷͨΊʹɺઐ༻ͷϥΠϒϥϦ͕ඞཁʯΈ͍ͨͳέʔεɻ • EJHEBH ͷλεΫͰ

    LTBQJ ୟ͍ͯผͳίϯςφ LTKPC Λىಈɻ • ར༻ऀଆͰίϯςφΛ༻ҙͯ͠΋Β͑Ε͹ɺλεΫͷ࣮ߦ؀ڥΛΧελϚΠζՄೳɻ  LT"1*4FSWFS EJHEBH QPE CBUDIKPC QPE apiVersion: batch/v1 kind: Job metadata: name: some-job ... LVCFDUM BQQMZ ίϯςφ͕ɺ෼ੳج൫ͷ؅ཧऀͱϔϰΟϢʔβͷ͍͍ײ͡ͷ੹೚෼ք఺ͱͳΔɻ • Ϣʔβ͸ࣗ෼޷ΈʹίϯςφΛ࡞ΓࠐΊΔҰํɺίϯςφ֎ʹӨڹΛٴ΅͢͜ͱ͸ͳ͍ɻ • ଞͷίϯςφ΁ͷӨڹΛؾʹ͢Δ͜ͱͳ͘ɺॏ͍ͨॲཧ΋ͲΜͲΜͿΜճͤΔɻ
  10. 13.

    (,&ΦʔτεέʔϧΛ׆༻͠ɺϦιʔε໘Ͱ΋ࣗ༝౓VQ • $MVTUFS"VUPTDBMJOH $" Λ׆༻͍ͯ͠Δɻ • ίετʹ༏͍͠ɻ • ॳظϊʔυ਺θϩͰ BVUPTDBMF

    ઃఆͨ͠ OPEFQPPM HDFͷΫϥελΈ͍ͨͳ΋ͷ Λఆٛɻ • Ϧιʔε͕଍Γͳ͘ͳΔͱɺউखʹϊʔυΛىಈͯ͘͠ΕΔɻ༨෼ͳϊʔυ͕͋ͬͨΒམͱ ͯ͘͠ΕΔɻ • ࢖ͬͨ෼͚͓͔͔ͩۚΔͷͰศརʂ • Ϧιʔεͷཁٻʹ͋Δఔ౓ॊೈʹରԠՄೳɻ • ʮ(16࢖͍͍ͨʯʮ͜ͷॲཧ͸ϝϞϦͨ͘͞Μ࢖͍͍ͨʯFUDɻ • ࢖͍ͦ͏ͳεϖοΫͷෳ਺छྨͷ OPEFQPPMΛఆ͓͚ٛͯ͠͹Α͍ɻ • /PEF"VUP1SPWJTJPOJOH /"1 ͱ͍͏ػೳ΋͋Δ͕ • ༧Ί OPEFQPPMΛఆ͓͔ٛͯ͠ͳͯ͘΋ɺQPEͷཁٻʹରͯͪ͠ΐ͏Ͳ͍͍εϖοΫͷ /PEFΛݟસͬͯ͘ΕΔɻ • ݱঢ়ɺPBVUI TDPQFͷࢦఆ͕Ͱ͖ͳ͍ͷͰஅ೦ PS[ • CR ౳ʹΞΫηεͤ͞ΔͨΊʹɺೝূ伴ΛࣗલͰ؅ཧ͢Δඞཁ͕ग़ͯ͘Δɻ • ·ͩЌͳͷͰࠓޙʹظ଴ɻ • ઌ೔ЌϦϦʔε͞Εͨz8PSLMPBE*EFOUJUZzΛ࢖͑͹伴؅ཧෆཁʹͳΔ͔΋ʁ 
  11. 15.

    ࠷ޙʹ • ࠓճ͓࿩ͨ͠Ҏ֎ʹ΋ɺ͍ΖΜͳ೰Έʹ೔ʑ௚໘͍ͯͯ͠ɺQPMZNPSQIͰղܾʹऔΓ૊ΜͰ͍·͢ɻ • ."ɺ૊৫มߋ͕ͭΒ͍ʜ • ྺ࢙ͷॏΈ͕ͭΒ͍ʜ • ·ͨ%F/"Ͱ͸ •

    ࣄۀͷ࠷લઢʹ͓͚ΔϢʔβαʔϏε෼ੳ • "*ͷࣾձ࣮૷ • σʔλαΠΤϯεʹΑΔࣄۀ՝୊ͷղܾ • ͜ΕΒΛࢧ͑Δ.-0QTɺπʔϧ։ൃɺσʔλ੔උ౳ͷΤϯδχΞϦϯά ͳͲͳͲ༷ʑͳऔΓ૊ΈΛߦ͍ͬͯ·͢ɻ ڵຯͷ͋Δํɺ࠙਌ձͰ͓࿩͠·͠ΐ͏ʂ • ڞ௨෼ੳج൫ͷҰ൪ͷར༻෦໳Ͱ͋ΔήʔϜࣄۀ෦෼ੳ෦ͷϝϯό͕ (PPHMF$MPVE/FYU5PLZPͰ ొஃ͠·͢ɻ͝ڵຯ͕͋Δํ͸ੋඇͪ͜Β΋νΣοΫͯ͠Լ͍͞ʂ • IUUQTDMPVEXJUIHPPHMFDPNOFYUUPLZPTFTTJPOT TFTTJPO%4