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
New Cache Hierarchy for Container Images and OCI Artifacts in Kubernetes Clusters using Containerd / KubeCon + CloudNativeCon Japan
pfn
PRO
0
170
Javalinの紹介
notoh
0
110
(新URLに移行しました)FASTと向き合うことで見えた、大規模アジャイルの難しさと楽しさ
wooootack
0
740
kubellが挑むBPaaSにおける、人とAIエージェントによるサービス開発の最前線と技術展望
kubell_hr
1
320
Definition of Done
kawaguti
PRO
5
320
Long journey of Continuous Delivery at Mercari
hisaharu
1
220
Tenstorrent HW/SW 概要説明
tenstorrent_japan
0
400
Agentic DevOps時代の生存戦略
kkamegawa
0
470
AWS全冠したので振りかえってみる
tajimon
0
150
Whats_new_in_Podman_and_CRI-O_2025-06
orimanabu
3
180
kotlin-lsp を Emacs で使えるようにしてみた / use kotlin-lsp in Emacs
nabeo
0
160
Amazon Q Developer for GitHubとAmplify Hosting でサクッとデジタル名刺を作ってみた
kmiya84377
0
3.5k
Featured
See All Featured
KATA
mclloyd
29
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
660
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Unsuck your backbone
ammeep
671
58k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
It's Worth the Effort
3n
184
28k
Building Applications with DynamoDB
mza
95
6.4k
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