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
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1.1k
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
240
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
360
Data-centric AI入門第6章:Data-centric AIの実践例
x_ttyszk
1
400
CZII - CryoET Object Identification 参加振り返り・解法共有
tattaka
0
350
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
130
ホワイトボードチャレンジ 説明&実行資料
ichimichi
0
130
Datadogとともにオブザーバビリティを布教しよう
mego2221
0
140
AndroidデバイスにFTPサーバを建立する
e10dokup
0
250
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
2k
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.3k
レビューを増やしつつ 高評価維持するテクニック
tsuzuki817
1
690
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Adopting Sorbet at Scale
ufuk
74
9.2k
Gamification - CAS2011
davidbonilla
80
5.1k
A Tale of Four Properties
chriscoyier
158
23k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Practical Orchestrator
shlominoach
186
10k
Documentation Writing (for coders)
carmenintech
67
4.6k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
Visualization
eitanlees
146
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Scaling GitHub
holman
459
140k
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