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
実践的データ基盤への処方箋_2-9_2-12
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tomoya Koike
February 03, 2022
Programming
240
0
Share
実践的データ基盤への処方箋_2-9_2-12
Tomoya Koike
February 03, 2022
More Decks by Tomoya Koike
See All by Tomoya Koike
CDLE youth LT会 #1
koikeya
0
99
Other Decks in Programming
See All in Programming
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.2k
RTSPクライアントを自作してみた話
simotin13
0
260
分析エージェント精度向上における データアナリストの役割
oura_shoya
0
130
AI時代だからこそ「Bloc」を採用する価値があるのかもしれない
takuroabe
0
240
デフォルト運用のCodeRabbit、1年で何が変わったか / How CodeRabbit Changed Our Code Review in 1 Year
bake0937
1
110
Swiftのレキシカルスコープ管理
kntkymt
0
200
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
400
GitHub Copilot CLIのいいところ
htkym
2
1.1k
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
200
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
2
420
AI時代になぜ書くのか
mutsumix
0
460
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
5
700
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.7k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
240
A Tale of Four Properties
chriscoyier
163
24k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
110
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.6k
The Language of Interfaces
destraynor
162
26k
WENDY [Excerpt]
tessaabrams
10
37k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
130
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
370
BBQ
matthewcrist
89
10k
Transcript
࣮ફత デ ʔλج൫ͷॲํᝦ ྠಡձ 2-9 ~ 2-12 খஐ࠸
2−9 ϩάऩूΤʔδΣϯτͷΩϟύγςΟʹҙ
ϩάͱ 3 Α͘ੳ͞ΕΔϩά 1. WebαʔόͷΞΫηεϩά 2. ΞϓϦέʔγϣϯͷϩά WebαʔόͷΞΫηεϩάͷྫ • ΞΫηεͨ࣌ؒ͠ɺURL
• ΞΫηεݩͷIPΞυϨε • ΞΫηεʹ༻͍ͨใ • Web App͕ઃఆͨ͠ɺϢʔβࣝผใ
ϩάϩάऩूΤʔδΣϯτͰऩू͢Δ 4 ϩάऩूΤʔδΣϯτ • όοϑΝʹΑΓϩάऩूϚωʔδϟͷෛՙΛҰఆʹͰ͖Δ • όοϑΝ͕ᷓΕͳ͍Α͏ʹαΠζΛ֬อ͢Δ͜ͱʹҙ͕ඞཁ
ϩάऩू͕Ͱ͖Δ 5 ໊ ఏڙํ๏ ఏڙɾαϙʔτ ͍ͯ͠Δձࣾ fluentd, fluent-bit OSS Treasure
Data Logstash OSS Elastic CloudWatch Cloud AWS Cloud Logging Agent Cloud GCP
2−10 σʔλͷऩूқ͕ߴ͍ͨΊ Ͱ͖Δ͚ͩΛར༻͠ແཧͳΒࣗ࡞͢Δ
σʔλେྔ͕ͩ༗༻ 7 දతͳσʔλ ϒϥβΠϕϯτ εϚϗΞϓϦΠϕϯτ IoTσόΠεσʔλ ը໘ͷεΫϩʔϧϚεͷيɺϢʔβͷϒϥβ্Ͱͷૢ࡞σʔλ εϚϗΞϓϦ্ͰͷϢʔβͷૢ࡞σʔλ ंࡌηϯαʔͷσʔλɺڥηϯαɺΤΞϥϒϧσόΠε
ϒϥβΠϕϯτεϚϗΞϓϦΠϕϯτσʔλऩूΛར༻ 8 ཉ͍͠σʔλΛऩूͰ͖Δ͕ͳ͍͔Λ୳͢ Ϣʔβͷ্ͷߦಈੳπʔϧଟ͘ଘࡏ͢Δ ϒϥβΠϕϯτ εϚϗΞϓϦΠϕϯτ Adobe AnalyticsGoogle Analytics
Google Analytics For Firebase
ࣗ࡞͢Δ߹ࢄϝοηʔδΩϡʔΛ͏ 9 ϩάऩूπʔϧΛࣗ࡞͢Δ໘ • IoTσόΠεͷσʔλͰɺΫϥυαʔϏεʹ͍͍ͷ͕ͳ͍ͱ͖ • ΞΫηεղੳπʔϧͰेͳσʔλ͕ಘΒΕͳ͍߹ • ϩά༰ΛϦΞϧλΠϜʹ׆༻͢Δඞཁ͕͋Δͱ͖I ࢄϝοηʔδΩϡʔʹϩάΛૹ৴͢Δ
ࣗ࡞͢Δ߹ࢄϝοηʔδΩϡʔΛ͏ 10 ࢄϝοηʔδΩϡʔ ΩϡʔͱɺઌೖΕઌग़͠ͷσʔλߏͷ͜ͱɻ ΩϡʔΠϯά͢Δϓϩσϡʔαͱɺpop͢ΔίϯγϡʔϚͷ2ͭͷׂ͕͋Δɻ
ࢄϝοηʔδΩϡʔͷҙ͖͢ಛͱӡ༻ͷίπ 11 ࢄϝοηʔδΩϡʔͷҙ͖͢ಛ 1. ॱংੑอূͷ༗ແ…ॱং͕ඞཁͳ߹λΠϜελϯϓΛೖΕͯฒͼସ͑Δ͕ඞཁ 2. ϝοηʔδͷॏෳ༗ແ…ॲཧΛႈʹ͢Δ͔ɺॲཧ༗ແͷஅϩδοΫΛೖΕΔ 3. ՄࢹੑλΠϜΞτ…ॲཧ࣌ؒΑΓ͍ͱɺॲཧ͕2ճҎ্Δ ӡ༻ͷίπ
• ίϯγϡʔϚ͕ॲཧʹࣦഊ͠ଓ͚ͨσουϨλʔΛઐ༻ͷΩϡʔʹೖΕΔ • ϓϩσϡʔαʔ͕ੜྔΛ੍͢ΔόοΫϓϨογϟʔͱ͍͏ΈΛೖΕΔ
۩ମతͳγεςϜͷ࡞Γํ 12 ࢄϝοηʔδΩϡʔ
2−11 ETLΛબͿϙΠϯτར༻͢Δ ίωΫλͷػೳੑͱσόοάͷ͢͠͞
ETLͱ 14 ఏڙܗଶͷҧ͍ ETL…Extract Transform LoadͷུͰɺσʔλͷநग़ɺՃɺϩʔυΛҙຯ͢Δɻ ෳࡶͳՃ͕Ͱ͖Δ͔Ͳ͏͔ ҟͳΔσʔλιʔε͔ΒͷσʔλΛՃɺ݁߹ͯ͠ϩʔυ͢Δɻ Apache Nifi,
DataSpider, Glue, Cloud Data Fusion OSSɺ༗ঈɺΫϥυͷ3छྨɻ OSS…embulkfluentd, Apache Sqoop, ༗ঈͱͯ͠DataSpider, ASTERIAͳͲɻ ΫϥυͰAWSͷGlueGCPͷCloud Data Fusion, ྆αʔϏεͷDMS, embulkͷϚωʔδυαʔϏεͰ͋ΔtroccoͳͲɻ ※DMS…Database Migration Service
͏ίωΫλͷػೳΛॏࢹ͢Δ 15 MySQLίωΫλͰ͋ΕɺWHERE۟ࠩͷΈऩू͕Ͱ͖Δ͔ɻ ϏοάσʔλͰ͋ΕɺࢄॲཧͰ͖Δ͔ʹҙ͢Δɻ
ιʔείʔυϨϕϧͰσόοά͍͢͠ͷΛར༻͢Δ 16 όά͕ى͖ͨͱ͖ɺσʔλιʔεɾ֨ೲઌɾऩू͠Α͏ͱ͢ΔσʔλͷΈ߹ ΘͤʹΑͬͯ࠶ݱྫ͕ͳ͍͜ͱɻ ίωΫλͷιʔείʔυΛݟʹߦ͚Δͷ͕େࣄɻ ETLͷαϙʔτʹௐࠪͯ͠Β͏ͱ͖ɺσʔλج൫ʹೖͬͯΒ͏Α͏४උɻ σʔλʹґଘͯ͠ى͖Δόά ఆ͍ͯ͠ͳ͍จࣈίʔυ੍ޚจࣈɺվߦίʔυ nullΛظ͢Δͱ͜Ζʹۭจࣈྻ
ΤϯδχΞ͕͍ͳ͚ΕϓϩάϥϛϯάϨεͷETLબࢶͷ1ͭ 17 ઐ༻ͷը໘্Ͱσʔλιʔε֨ ೲઌͷΞΠίϯΛͭͳ͛ͯETLॲ ཧΛఆٛɺσϓϩΠͰ͖Δɻ Apache Nifi, Talend, DataSpider, ASTERIA,
Glue, Cloud Data Fusion ͳͲɻ
2−12 σʔλϨΠΫͰऩूͨ͠σʔλ Λͳ͘͞ͳ͍Α͏ʹ͢Δ
ऩूͨ͠σʔλΛݪଇͦͷ··ੵ͢Δ 19 σʔλϨΠΫʹऩूͨ͠σʔλΛՃͤͣʹ֨ೲ͢Δ σʔλϨΠΫʹԽͰ͖༰ྔ͕֦ுͰ͖ΔΛબͿ ऩूͨ͠σʔλΛͳ͘͞ͳ͍ͨΊʹԽ͢Δ͜ͱɺ σʔλ༰ྔΛ૿ͤΔΑ͏ʹ͓ͯ͘͜͠ͱ͕ॏཁɻ ϑΝΠϧJSONܗࣜɺςʔϒϧߏͳͲΛͦͷ··อଘɻ Ճʹࣦഊͯ͠σʔλଛࣦ͢Δ͜ͱΛ͙ͨΊɻ ػີใݸਓใಗ໊ԽΛߦͬͯੵ͢Δɻ
ϑΝΠϧΦϒδΣΫτετϨʔδʹੵ͢Δ 20 ෳͷσʔληϯλʔͰෳσόΠεʹ Խͯ͠อଘ͢Δ͜ͱͰɺ ΠϨϒϯφΠϯͷݎ࿚ੑͱ 99.99%ͷՄ༻ੑΛ࣮ݱ͍ͯ͠Δɻ σʔλΛʮΦϒδΣΫτʯͱ͍͏୯ҐͰѻ͏هԱஔɻ ΫϥυαʔϏεͱͯ͠S3Cloud StorageͳͲ͕͋Δɻ ΦϒδΣΫτετϨʔδ
ΦϯϓϨͷ߹ࢄετϨʔδΛར༻ɻ OSSͱͯ͠HDFSͳͲɻ
CSVJSONσʔλσʔλϕʔεʹೖΕͯOK 21 CSVJSONσʔλΛDWH༻ੳDBʹೖΕΔ ੳ༻DBͷதͰɺੜͷσʔλ Λ֨ೲ͢ΔσʔλϨΠΫͱ Ճ͞ΕͨσʔλΛ࣋ͭDWH ʹ͚Δ JSONʹ͍ͭͯɺจࣈྻܕ·ͨJSONܕͱͯ֨͠ೲ͢Δ
σʔλ͕ΦϯϓϨϛεʹ͋ͬͯσʔλϨΠΫΫϥυʹ͢Δ 22 3ͭͷཧ༝ ैྔ՝ۚͰར༻Ͱ͖ΔͨΊ ٱੑ͕ߴ͍ͨΊ ӡ༻ਓ݅අ͕͍҆ ج൫ߏங࣌ʹσʔλྔΛਖ਼֬ʹݟੵΔͷࠔͳͨΊ AWS S3ͷٱੑΠϨϒϯφΠϯͰ͋ΓɺΦϯϓϨͰఢΘͳ͍ αʔόͷߏΛؾʹ͠ͳͯ͘Α͍ͷͰɺඞཁͳٕज़ྗ͕Լ͕Δ
σϝϦοτͱͯ͠ɺࡉ҆͘ఆ͠ͳ͍ωοτճઢ͔ɺߴ͍ઐ༻ઢ͔Λ༻͍Δඞཁ͕͋Δ