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
470
月額コーヒー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
実践Dash - 手を抜きながら本気で作るデータApplicationの基本と応用 / Dash for Python and Baseball
shinyorke
PRO
2
1.8k
Terraform, GitHub Actions, Cloud Buildでデータ基盤をProvisioningする / Data Platform provisioning for Google Cloud and Terraform
shinyorke
PRO
2
2.9k
Cloud RunとCloud PubSubでサーバレスなデータ基盤2024 with Terraform / Cloud Run and PubSub with Terraform
shinyorke
PRO
9
3.3k
自らを強いエンジニアにするための3つの習慣 / I need to be myself, I can't be no one else
shinyorke
PRO
79
79k
阪神タイガース優勝のひみつ - Pythonでシュッと調べた件 / SABRmetrics for Python
shinyorke
PRO
1
1.3k
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
9
17k
一人でも小さく始められるGoogle Cloudで実現するほぼサーバレスなデータ基盤 / Serverless Dataplatform for Google Cloud
shinyorke
PRO
0
550
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
54k
カップ麺の待ち時間(3分)でわかるPartyRockアップデート
ryutakondo
0
130
.NET 最新アップデート ~ AI とクラウド時代のアプリモダナイゼーション
chack411
0
190
AWSサービスアップデート 2024/12 Part3
nrinetcom
PRO
0
140
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
200
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
460
Formal Development of Operating Systems in Rust
riru
1
420
デジタルアイデンティティ人材育成推進ワーキンググループ 翻訳サブワーキンググループ 活動報告 / 20250114-OIDF-J-EduWG-TranslationSWG
oidfj
0
390
2025年に挑戦したいこと
molmolken
0
150
OPENLOGI Company Profile
hr01
0
58k
Kotlin Multiplatformのポテンシャル
recruitengineers
PRO
2
150
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
130
Featured
See All Featured
Designing for Performance
lara
604
68k
Into the Great Unknown - MozCon
thekraken
34
1.6k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
KATA
mclloyd
29
14k
Become a Pro
speakerdeck
PRO
26
5.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
The Language of Interfaces
destraynor
155
24k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
Building Your Own Lightsaber
phodgson
104
6.2k
Practical Orchestrator
shlominoach
186
10k
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