Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
自由と統制のバランス 分析基盤のアプローチ
Search
rhase
June 27, 2019
Technology
2
1.7k
自由と統制のバランス 分析基盤のアプローチ
@Data Pipeline Casual Talk Vol.3
https://dpct.connpass.com/event/130109/
rhase
June 27, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
1
120
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.2k
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
170
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.3k
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
140
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
200
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
190
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
260
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
430
Six Lessons from altMBA
skipperchong
27
3.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
What's new in Ruby 2.0
geeforr
343
31k
Unsuck your backbone
ammeep
668
57k
Making Projects Easy
brettharned
115
5.9k
Code Review Best Practice
trishagee
64
17k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
What's in a price? How to price your products and services
michaelherold
243
12k
Transcript
ࣗ༝ͱ౷੍ͷόϥϯε ڞ௨ੳج൫ͷΞϓϩʔν %BUB1JQFMJOF$BTVBM5BMLVol.3 ୩ྃࣔ άϧʔϓϚωʔδϟʔ γεςϜຊ෦ੳਪਐ෦ΤϯδχΞϦϯάάϧʔϓ גࣜձࣾσΟʔɾΤψɾΤʔ
%F/"ͷੳ৫ͱΤϯδχΞϦϯάάϧʔϓʹ͍ͭͯ ήʔϜɾΤϯλʔςΠϯϝϯτࣄۀຊ෦ εϙʔπࣄۀຊ෦ ΦʔτϞʔςΟϒࣄۀຊ෦ ϔϧεέΞࣄۀຊ෦ ωοταʔϏεࣄۀຊ෦ ੳ୲ऀ γ ε
ς Ϝ ຊ ෦ ੳ ਪ ਐ ෦ Τ ϯ δ χ Ξ Ϧ ϯ ά ̜ • 共通分析基盤の構築/運⽤ • 分析ツール開発 • 共通集計構築/運⽤ • AIシステム基盤 ੳ୲ऀ ੳ୲ऀ ੳ୲ऀ ੳ୲ऀ "*ຊ෦
ݱࡏͷڞ௨ੳج൫ -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# ・ ・ ・
ڞ௨ੳج൫ͷ৽Λਐߦத "QQ4FSWFS %# MPH #JH2VFSZ EJHEBH ($4 ($11SPKFDU" 4FSWJDF"
4FSWJDF# ($11SPKFDU# サービス基盤 ・ ・ ・ ・ ・ ・ 分析基盤 ($1 (,& Argus 内製BIツール) .FEKFE 内製ETLツール ($11SPKFDU9 • ݱࡏɺੳج൫ͷ৽ΛஅߦதɻzQSPKFDUQPMZNPSQIz • %8)Λશͯ#JH2VFSZʹҠߦ͠ɺपลͷπʔϧ($1্ʹߏɻ • ৄࡉΛ͓͢ΔͱͰΓͳ͘ͳΔͷͰɺڵຯ͋Δํ࠙ձͰ͓͠·͠ΐ͏ʂ
ࠓͷτϐοΫ • zQPMZNPSQIzʹͯղܾ͠Α͏ͱ͍ͯ͠Δ՝ͷҰͭʹϑΥʔΧεͯ͠͝հ͠·͢ɻ • ʮࣗ༝ͱ౷੍ͷόϥϯεΛͲ͏ͱΔ͔ʁʯͱ͍͏՝ʹର͢ΔҰͭͷΞϓϩʔνɻ • ͝հ͢ΔΞϓϩʔνɺࠓ·͞ʹಋೖΛ։࢝ͨ͠ͱ͜ΖͰɺ͜Ε͔Βຏ͖Λ͔͚ͭͭશࣾ ల։ΛਐΊΑ͏ͱ͍ͯ͠Δঢ়گͰ͢ɻ
͜Ε·Ͱ%F/"ͷੳج൫ར༻ऀʹߴ͍Ϩϕϧͷࣗ༝Λ༩͖͑ͯͨ • ֤αʔϏεͰσʔλʹج͖ͮҙࢥܾఆ͢ΔจԽ͕͍͍ࠜͯΔɻ • ͦͷͨΊɺར༻ऀ෯͍ɻ • ྫ͑ɺ#*πʔϧz"SHVTzͷ."6 ۙ͘ɻ࿈݁ͷશࣾһͷ͓Αׂͦɻ • εϐʔυײΛଛͳΘͣੳΛਪਐ͢ΔͨΊɺར༻ऀʹۃྗɺࣗ׆ͯ͠Β͏ํΛબΜͩɻ
• աʹ౷੍Λ͔͚Δ͜ͱͰج൫Λཧ͢Δଆ͕ϘτϧωοΫͱͳΔ͜ͱΛආ͚ͨɻ ήʔϜɾΤϯλʔςΠϯϝϯτࣄۀຊ෦ εϙʔπࣄۀຊ෦ ΦʔτϞʔςΟϒࣄۀຊ෦ ϔϧεέΞࣄۀຊ෦ ωοταʔϏεࣄۀຊ෦ ੳ୲ऀ ੳ୲ऀ ੳ୲ऀ ੳ୲ऀ ੳ୲ऀ ଟ͘ͷࣄۀ͕ڞ௨ੳج൫Λར༻͠ ͍ͯΔɻ
͜Ε·Ͱ%F/"ͷੳج൫ར༻ऀʹߴ͍Ϩϕϧͷࣗ༝Λ༩͖͑ͯͨ • 42-ΫΤϦ࡞ • Ϩϙʔτ࡞ )BEPPQ 7FSUJDB #JH2VFSZ "SHVT
#*πʔϧ +FOLJOT #BUDI4FSWFS • ूܭɾੳεΫϦϓτ࡞ • ΞυϗοΫੳ • ͜ΕΒΛར༻ऀ͕όοναʔόʹ TTI ͰϩάΠϯͯ͠࡞ۀ • όονδϣϒઃఆ • ΤϥʔରԠ • (6*ΛͬͨੳɾϨϙʔςΟϯά͚ͩͰͳ͘ɺόονઃఆόοναʔόͷϩάΠϯ·Ͱ ͍ͤͯΔ ར༻ऀ͕ߦ͏࡞ۀ
͔͠͠౷੍͕؇͘ͳΓա͗ɺࠞཚ͕ੜ͡Δέʔε͕Ͱ͖ͯͨʜ ߏཧʹؔ͢ΔࢧԉɾΈԽ͕ෆेͩͬͨɻ ར༻ऀ͕ΤϯδχΞͰͳ͍έʔεଟ͍ͷͰɺͳ͓͞Βࠞཚʹܨ͕ͬͨɻ ͲΜͲΜ์͠ʹͳ͍ͬͯ͘ڥ όʔδϣϯཧ͞Ε͍ͯͳ͍εΫϦϓτ͕ΘΜ͔͞ग़͖ͯͨΓʜ 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 ͕͍ͭͷؒʹ͔ॻ͖͑ΒΕͨΓʜ
Ұํɺ·ͩ·ͩࣗ༝͕Γͳ͍έʔεग़͖ͯͨʜ • Ψνʹ"*.-ʹऔΓΉҊ݅Ͱઐ༻ͷڥΛΨοπϦΉɻ • αʔϏεͷίΞʹ"*.-ΛऔΓೖΕΔલఏͰɺ૬ԠͷࢿΛ͢ΔΑ͏ͳέʔεɻ • Ҋ݅ຖʹݸผʹڥΛઃܭɾߏங͢Δɻ • ͔͠͠ɺεϞʔϧελʔτͰࢼ͍ͨ͠ɺͱ͍ͬͨχʔζग़͖͓ͯͯΓɺͳ͔ͳ͔ॊೈʹର ԠͰ͖ͳ͍ɻ
• ઐ༻ͷڥΛΉʹʢओʹ໘ͷʣίετ͕େ͖ա͗Δɻ • ʮڞ௨ੳج൫Λ͑ͳ͍͔ʁʯͱ૬ஊ͞ΕΔέʔε͕Α͋͘Δ͕ɺશαʔϏε͕ಉډ ͍ͯ͠Δ͜ͱ͋ΓԠ͑ͮΒ͍ɻ • ҆қʹߏม͑ͨΓ04.8ΞοϓάϨʔυ͠ɺͲ͔͜ͰσάϨ͢ΔϦεΫɻ • ҆қʹॏ͍ॲཧͿͬࠐ·Εͯશମ͕Ԇ͢ΔϦεΫɻ
ղܾࡦ ߏཧ ίϯςφ
ࣗ༝ΛอͪͭͭߏཧΛڧ੍͢ΔΈͷߏங • Πϯϑϥ*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 する タスクを⽤意しておく。
ίϯςφͰڥΛִࣗ͠༝VQ • ج൫ଆͰఏڙ͢ΔαʔϏεʢEJHEBHʣίϯςφͰಈ͔͢ɻ • ར༻ऀଆͰڥΛΧελϚΠζ͍ͨ͠߹ίϯςφΛͬͯΒ͏ɻ • ʮQZUIPOͰ.-Λ࣮ߦ͍ͨ͠ɻͦͷͨΊʹɺઐ༻ͷϥΠϒϥϦ͕ඞཁʯΈ͍ͨͳέʔεɻ • EJHEBH ͷλεΫͰ
LTBQJ ୟ͍ͯผͳίϯςφ LTKPC Λىಈɻ • ར༻ऀଆͰίϯςφΛ༻ҙͯ͠Β͑ΕɺλεΫͷ࣮ߦڥΛΧελϚΠζՄೳɻ LT"1*4FSWFS EJHEBH QPE CBUDIKPC QPE apiVersion: batch/v1 kind: Job metadata: name: some-job ... LVCFDUM BQQMZ ίϯςφ͕ɺੳج൫ͷཧऀͱϔϰΟϢʔβͷ͍͍ײ͡ͷքͱͳΔɻ • ϢʔβࣗΈʹίϯςφΛ࡞ΓࠐΊΔҰํɺίϯςφ֎ʹӨڹΛٴ΅͢͜ͱͳ͍ɻ • ଞͷίϯςφͷӨڹΛؾʹ͢Δ͜ͱͳ͘ɺॏ͍ͨॲཧͲΜͲΜͿΜճͤΔɻ
(,&ΦʔτεέʔϧΛ׆༻͠ɺϦιʔε໘Ͱࣗ༝VQ • $MVTUFS"VUPTDBMJOH $" Λ׆༻͍ͯ͠Δɻ • ίετʹ༏͍͠ɻ • ॳظϊʔυθϩͰ BVUPTDBMF
ઃఆͨ͠ OPEFQPPM HDFͷΫϥελΈ͍ͨͳͷ Λఆٛɻ • Ϧιʔε͕Γͳ͘ͳΔͱɺউखʹϊʔυΛىಈͯ͘͠ΕΔɻ༨ͳϊʔυ͕͋ͬͨΒམͱ ͯ͘͠ΕΔɻ • ͚͓͔͔ͬͨͩۚΔͷͰศརʂ • Ϧιʔεͷཁٻʹ͋ΔఔॊೈʹରԠՄೳɻ • ʮ(16͍͍ͨʯʮ͜ͷॲཧϝϞϦͨ͘͞Μ͍͍ͨʯFUDɻ • ͍ͦ͏ͳεϖοΫͷෳछྨͷ OPEFQPPMΛఆ͓͚ٛͯ͠Α͍ɻ • /PEF"VUP1SPWJTJPOJOH /"1 ͱ͍͏ػೳ͋Δ͕ • ༧Ί OPEFQPPMΛఆ͓͔ٛͯ͠ͳͯ͘ɺQPEͷཁٻʹରͯͪ͠ΐ͏Ͳ͍͍εϖοΫͷ /PEFΛݟસͬͯ͘ΕΔɻ • ݱঢ়ɺPBVUI TDPQFͷࢦఆ͕Ͱ͖ͳ͍ͷͰஅ೦ PS[ • CR ʹΞΫηεͤ͞ΔͨΊʹɺೝূ伴ΛࣗલͰཧ͢Δඞཁ͕ग़ͯ͘Δɻ • ·ͩЌͳͷͰࠓޙʹظɻ • ઌЌϦϦʔε͞Εͨz8PSLMPBE*EFOUJUZzΛ͑伴ཧෆཁʹͳΔ͔ʁ
·ͱΊ • Πϯϑϥ͚ͩͰͳ͘ɺར༻ऀʹߏཧΛΈͰڧ੍͢Δ͜ͱͰɺࣗ༝Λอͪͭͭ౷ ੍Λ͔͚Δɻ • ίϯςφΛքͱͯ͠ɺίϯςφͷதͰར༻ऀʹࣗ༝ʹͬͯΒ͍ɺཧऀத Λؾʹ͢Δ͜ͱͳ͘ӡ༻ɻ
࠷ޙʹ • ࠓճ͓ͨ͠Ҏ֎ʹɺ͍ΖΜͳΈʹʑ໘͍ͯͯ͠ɺQPMZNPSQIͰղܾʹऔΓΜͰ͍·͢ɻ • ."ɺ৫มߋ͕ͭΒ͍ʜ • ྺ࢙ͷॏΈ͕ͭΒ͍ʜ • ·ͨ%F/"Ͱ •
ࣄۀͷ࠷લઢʹ͓͚ΔϢʔβαʔϏεੳ • "*ͷࣾձ࣮ • σʔλαΠΤϯεʹΑΔࣄۀ՝ͷղܾ • ͜ΕΒΛࢧ͑Δ.-0QTɺπʔϧ։ൃɺσʔλඋͷΤϯδχΞϦϯά ͳͲͳͲ༷ʑͳऔΓΈΛߦ͍ͬͯ·͢ɻ ڵຯͷ͋Δํɺ࠙ձͰ͓͠·͠ΐ͏ʂ • ڞ௨ੳج൫ͷҰ൪ͷར༻෦Ͱ͋ΔήʔϜࣄۀ෦ੳ෦ͷϝϯό͕ (PPHMF$MPVE/FYU5PLZPͰ ొஃ͠·͢ɻ͝ڵຯ͕͋Δํੋඇͪ͜ΒνΣοΫͯ͠Լ͍͞ʂ • IUUQTDMPVEXJUIHPPHMFDPNOFYUUPLZPTFTTJPOT TFTTJPO%4