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
月額コーヒー3.34杯分のコストでオオタニサンの活躍を見守るデータ基盤のはなし / Pyhac...
Search
Shinichi Nakagawa
PRO
June 17, 2023
Technology
2
500
月額コーヒー3.34杯分のコストでオオタニサンの活躍を見守るデータ基盤のはなし / Pyhack Con
#pyhack conference 2023/06/17
Shinichi Nakagawa
PRO
June 17, 2023
Tweet
Share
More Decks by Shinichi Nakagawa
See All by Shinichi Nakagawa
AI・LLM事業部のSREとタスクの自動運転
shinyorke
PRO
0
290
実践Dash - 手を抜きながら本気で作るデータApplicationの基本と応用 / Dash for Python and Baseball
shinyorke
PRO
2
2.4k
Terraform, GitHub Actions, Cloud Buildでデータ基盤をProvisioningする / Data Platform provisioning for Google Cloud and Terraform
shinyorke
PRO
2
3.1k
Cloud RunとCloud PubSubでサーバレスなデータ基盤2024 with Terraform / Cloud Run and PubSub with Terraform
shinyorke
PRO
9
3.7k
自らを強いエンジニアにするための3つの習慣 / I need to be myself, I can't be no one else
shinyorke
PRO
82
83k
阪神タイガース優勝のひみつ - Pythonでシュッと調べた件 / SABRmetrics for Python
shinyorke
PRO
1
1.4k
Pythonとクラウドと野球の推し活. / Baseball Data Platform for Python and Google Cloud
shinyorke
PRO
2
2.8k
俺のDXを実現するためのサーバレスなデータ基盤開発と運用 / Serverless Data Platform and Baseball
shinyorke
PRO
5
12k
機械学習エンジニアが目指すキャリアパスとその実話 / My Journey to Become a ML Engineer
shinyorke
PRO
10
18k
Other Decks in Technology
See All in Technology
IAMのマニアックな話 2025 ~40分バージョン ~
nrinetcom
PRO
7
830
Cline、めっちゃ便利、お金が飛ぶ💸
iwamot
19
18k
コード品質向上で得られる効果と実践的取り組み
ham0215
1
200
バクラクでのSystem Risk Records導入による変化と改善の取り組み/Changes and Improvement Initiatives Resulting from the Implementation of System Risk Records
taddy_919
0
200
Dapr For Java Developers SouJava 25
salaboy
1
130
SSH公開鍵認証による接続 / Connecting with SSH Public Key Authentication
kaityo256
PRO
2
210
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
620
[CATS]Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
130
職種に名前が付く、ということ/The fact that a job title has a name
bitkey
1
230
PHPでアクターモデルを活用したSagaパターンの実践法 / php-saga-pattern-with-actor-model
ytake
0
990
View Transition API
shirakaba
1
910
SLI/SLO・ラプソディあるいは組織への適用の旅
nwiizo
4
1.2k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
176
52k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
GitHub's CSS Performance
jonrohan
1030
460k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
7
610
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Facilitating Awesome Meetings
lara
53
6.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.6k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
Typedesign – Prime Four
hannesfritz
41
2.6k
Transcript
ίʔώʔ3.34ഋͷֹ݄ྉۚͰ σʔλج൫Λ࡞ͬͯ͏ Google Cloudͷ͋Ε͜ΕͱࣆJAPANͷͦͷޙ. @shinyorke 2023/06/17 Python mini Hack-a-thon Conference
Who am I?(ࣗݾհ) • Shinichi Nakagawa@shinyorke • େख֎ࢿITίϯαϧاۀϚωʔδϟʔʢݱ৬ʣ • #Pyhack
ॳࢀՃ: 2013/02/16ʢ#28ʣ, ଟৗ࿈ʢͱ͍͏ೝࣝʣ • ٿ͕Ұ൪ͷझຯͱݟ͔͚ͤͯͦ͏Ͱͳ͍ਓ. • ωλͱͯ͠ͷʮٿͷਓʯطʹଔۀ͍ͯ͠·͢. ͨ·ͨ·ݸਓ։ൃωλ͕ٿʹدͬͯΔ͚ͩͰ͢.
ࠓͷ͓ • #PyHack #148ʢ2023/02/04ʣͰൃද࿅शͨ͠σϒαϛ2023ొஃωλ …ͷμΠδΣετ൛ʢ10Ver.ʣΛ͓൸࿐͠·͢. • ొஃͨ͠ͷ͕2݄Ͱࠓ4݄ͳͷͰΞοϓσʔτগ͋͠Γ·͢. • σϒαϛຊฤͷಈըʢ40ʣެ։͞Ε͍ͯ·͢.
https://codezine.jp/devonline/archive/session/131
σϒαϛͰͨ͜͠ͱʢཁʣ • ΫϥυͱσʔλΤϯδχΞϦϯάͰ࣮ݱ͢ΔԶͷDX • αʔόϨεͳΞʔΩςΫνϟͰ࣮ݱ͢Δʮ͍͍ײ͡ͳσʔλج൫ʯ • ʮਪ͠ͷٿબखʯͷʮਪ࣌͠ʯͲ͜ͳͷ͔ΛݟۃΊΔ⽁
͜͏͍͏ϞϊΛͬͯ… ※σϒαϛࢿྉΑΓൈਮ
ϥʔζɾψʔτόʔ ʢࣆJAPANʣ • ࣆJAPANॳͷΞϝϦΧग़બख • ଧ͍ͷͷग़ྥͱଧ ͦͯ͠ଧٿ͕͘, 3ϙδγϣϯ
ͦͭͳ͘कΕΔ֎कඋ˕ • Ωϟϥཱ͍͍ͪͯͯ͠Ϡπͱ͍͏ᷚ, ࣆδϟύϯͷηϯλʔͱͯ͠ظʂ ※σϒαϛࢿྉΑΓൈਮ
ϥʔζɾψʔτόʔ ʢࣆJAPANʣ • ࣆJAPANॳͷΞϝϦΧग़બख • ଧ͍ͷͷग़ྥͱଧ ͦͯ͠ଧٿ͕͘, 3ϙδγϣϯ
ͦͭͳ͘कΕΔ֎कඋ˕ • Ωϟϥཱ͍͍ͪͯͯ͠Ϡπͱ͍͏ᷚ, ࣆδϟύϯͷηϯλʔͱͯ͠ظʂ 8#$͕։ນ͢Δલʢʣ ͜ͷ࣌Ͱψʔτόʔͷ׆༂Λ༧ݴ͢Δ͜ͱʹޭʂ ˞*5ۀքΤϯδχΞք۾࠷ͷൃදʢଟʣ Ұ൪όολʔͱͯ͠ͷ׆༂༧֎͕ͩͬͨͦΕ͓͖ͯ͞স
ࠓͷ10LTͰશ෦৮ΕΔͷແཧ. Google CloudͱٿͷΛগʑ.
͓͠ͳ͕͖ • DashͱCloud RunͰσʔλɾμογϡϘʔυΛ࡞ͬͯಈ͔͢ • WBCઓ࢜ͨͪͷͦͷޙ⽁ • ͦͯ͠ؾʹͳΔ͓ஈ?
࡞ͬͨσʔλɾμογϡϘʔυʢͬ͘͟Γʣ •DashΛͬͯʮPythonॻ͚μογϡϘʔυ࡞ΕΔʯΑ͏ʹ͠·ͨ͠. •σʔλຊମBigQuery, σʔλͷΞΫηεRESTful APIʢGoʣܦ༝. •ೝূతͰAPI Gateway, Cacheͱͯ͠StorageΛར༻ʢ͜ΕϚετ͡Όͳ͍ʣ.
Dash is Կऀ🤔 • PlotlyΛLow-codeπʔϧͱͯ͠ ͑ΔΑ͏ʹ͍͍ͨ͠ײ͡ͷౕ. • ϓϩτλΠϓͰੳɾՄࢹԽʹ
Jupyter LabͱPlotlyΛ͓ͬͯΓ, ͜ΕΛͦͷ··Ҡ২Ͱ͖ΔखஈͰ ࣮͔ͨͬͨ͠. • https://dash.plotly.com/
ࠓճ࡞ͬͨίʔυ ʢҰ෦ൈਮʣ • Python͚ͩͰॻ͚ΔͷΊͬͪΌศརͩͬͨ. • HTMLʹͨ͠ίϯϙʔωϯτΛPythonͰ ΰϦͬͱॻ͍ͯ࡞͢Δͱ͍͍ײ͡ʹಈ͘. •
ΠϕϯτۦಈͰͷॻ͖͑Callbackͳ σίϨʔλʔͰ࣮. • ReactͬΆ͋ͬͯ͞ݸਓతʹେ͖͕ͩ, ςετ͕ॻ͖ʹ͍͘ҹ… ※গͳ͘ͱUI ίϯϙʔωϯτʹؔͯ͠
Cloud RunΛબͨ͠ʢPythonicͳʣཧ༝ • μογϡϘʔυΞϓϦͷґଘϥΠϒϥϦతʹApp EngineͰಈ͔͘ո͔ͬͨͨ͠Ί • PandasʹDashʢPlotlyʣͱσʔλܥͷϥΠϒϥϦ͕Γͩ͘͞ΜͷWebΞϓϦ • ͜ͷ࣌ͰͪΌΜͱͨ͠ContainerܥͰಈ͔͞ͳ͍ͱବͩͳͬͯஅˠͦͷ௨Γͩͬͨ •
બ͢Δ·Ͱͷࢥߟͱͯ͠… 1.ґଘϥΠϒϥϦͳͲͷ߹Ͱ΄΅PythonʢҰ෦GoʣͰͷ։ൃ -> Firebase͕ީิ͔Βফ͑Δ 2.Cloud FunctionsͰಈ͔͢ʹඍົͳ༷ͱͳͬͨͨΊબࢶͱͯ͠ফڈ 3.App EngineʢStandardʣContainer͡Όͳ͍ -> Cloud Runʹܾఆ ※ContainerͰಈ͔ͤΔApp EngineʢFlexibleʣΛΘͳ͔ͬͨཧ༝…ͦΜͳબࢶΛೖΕͨ͘ͳ͔͔ͬͨΒͰ͢ʢٿʣ
WBC2023ࣆδϟύϯઓ࢜ͷͦͷޙ • ೋྲྀͷ͋ͷํ • ϕετφΠϯʹબΕͨMLB৽ਓԦʢީิʣ
େ୩ᠳฏʢϩαϯθϧεɾΤϯδΣϧε, TWPʢTwo Way Playerʣʣ ϗʔϜϥϯྔ࢈ͷൿີ͕໌Β͔ʹ
େ୩ᠳฏʢϩαϯθϧεɾΤϯδΣϧε, TWPʣ ӈʹࠨʹଧ͚͍ͪͯΔͷ͍͍ײ͡
େ୩ᠳฏʢϩαϯθϧεɾΤϯδΣϧε, TWPʣ खͱͯ͜͠Μͳײ͡
٢ాਖ਼ঘʢϘετϯɾϨουιοΫε, LFʣ ώοτྔ࢈ͷൿີ͕໌Β͔ʹ
ʁʁʁʮσʔλج൫ࣗͰ࣋ͭͱ͓ߴ͍ͷͰʁʯ
ʲʳ͏αʔϏεΛͯ͠ίετ੍ • ʮ͏ͱ্ཱ͖͚͕ͩͪΕ͍͍ʯલఏͰશαʔϏεΛίʔϧυελϯόΠʹ. • ͯ͢ͷΞϓϦɾػೳΛαʔόϨεͳΫϥυʢCloud RunͳͲʣΛར༻. • ʮಈ͍͍ͯͳ͍͓͕͔͔࣌ۚΔʯͷBigQueryͱετϨʔδͷΈʢ͘͝গ ֹʣ •
σʔλอ͍ํΛ͠ίετΛ͑Δ • ແྉͷϧʔϧΛཧղ͠, ͦͷൣᙝͰۃྗ͏ʢ㲈ඞཁͳͷʹ͓ۚΛ͏ʣ • BigQueryCloud StorageແྉΛΊͬͪΌ׆༻
Ұϲ݄Ͱ$3ະຬ, ίʔώʔ3.34ഋఔͰӡ༻͍ͯ͠·͢🐯 ※σʔλج൫ϓϩδΣΫτͷ࣮ίετΑΓࢉग़ʢίʔώʔίϯϏχίʔώʔج४ʣ, υϝΠϯऔಘྉ֎෦ίετΛআ͘
͓͠ͳ͕͖ • DashΛGoogle CloudͰಈ͔͢ͳΒCloud Run • ΦΦλχαϯϚονϣ͞Μ৭ʑͱΤά͍ • ࣗͰσʔλج൫Λ࣋ͬͯର͔͔ͯۚ͠Βͳ͍ ※AWS,
ଞͷΫϥυαʔϏεͰಉ͜͡ͱ͕Ͱ͖·͢Αʂ ʢGoogle Cloudʹ͍ͯ͠ΔͷࢲͷΈͰ͢ʣ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠⽁ @shinyorke