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
Sparkを活用した推薦基盤のバッチフレームワーク / Spark
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
CyberAgent
PRO
June 28, 2019
Technology
0
2.1k
Sparkを活用した推薦基盤のバッチフレームワーク / Spark
内藤 遥
Jun 28, 2019
Data Engineering & Data Analysis WS#8
CyberAgent
PRO
June 28, 2019
Tweet
Share
More Decks by CyberAgent
See All by CyberAgent
マッチングアプリにおけるユーザー構成の変化は、事業KPIにどう影響しているのか
cyberagentdevelopers
PRO
1
33
Geo-Experiments : ABEMAはなぜ新しい宣伝の効果検証にチャレンジするのか
cyberagentdevelopers
PRO
1
30
ABEMA NEWSにおける PoCをAIプロダクト化する ビジネスリードエンジニアリング
cyberagentdevelopers
PRO
0
300
チーム開発の基礎_研究を事業につなげるために
cyberagentdevelopers
PRO
8
4.8k
生成AIの研究活用_AILab2025研修
cyberagentdevelopers
PRO
12
7k
生成AIを活用したデータ分析でいまできること
cyberagentdevelopers
PRO
2
440
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
480
2025年度 生成AI 実践編
cyberagentdevelopers
PRO
8
1k
LLMを用いたメタデータベースレコメンド検証
cyberagentdevelopers
PRO
6
2.2k
Other Decks in Technology
See All in Technology
データマネジメント戦略Night - 4社のリアルを語る会
ktatsuya
1
230
FastMCP OAuth Proxy with Cognito
hironobuiga
3
190
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
240
スピンアウト講座04_ルーティン処理
overflowinc
0
1.2k
新規事業×QAの挑戦:不確実性を乗りこなす!フェーズごとに求められるQAの役割変革
hacomono
PRO
0
180
Laravelで学ぶOAuthとOpenID Connectの基礎と実装
kyoshidaxx
4
1.8k
Datadog で実現するセキュリティ対策 ~オブザーバビリティとセキュリティを 一緒にやると何がいいのか~
a2ush
0
120
品質を経営にどう語るか #jassttokyo / Communicating the Strategic Value of Quality to Executive Leadership
kyonmm
PRO
3
1.2k
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
24
12k
Phase12_総括_自走化
overflowinc
0
1.4k
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
360
スピンアウト講座03_CLAUDE-MDとSKILL-MD
overflowinc
0
1.2k
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Faster Mobile Websites
deanohume
310
31k
Side Projects
sachag
455
43k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
200
Fireside Chat
paigeccino
42
3.8k
Test your architecture with Archunit
thirion
1
2.2k
Paper Plane (Part 1)
katiecoart
PRO
0
5.8k
The SEO Collaboration Effect
kristinabergwall1
0
400
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
650
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Transcript
4QBSLΛ׆༻ͨ͠ਪનج൫ͷόονϑϨʔϜϫʔΫ ౻ ང +VO %BUB&OHJOFFSJOH%BUB"OBMZTJT84
ࣗݾհ ˔ ౻ ང ͳ͍ͱ͏ Α͏ ˔ ৽ଔೖࣾ ˔
ٕज़ຊ෦ ळ༿ݪϥϘॴଐ ˔ ͍ͬͯΔ͜ͱਪનγεςϜɺݕࡧγεςϜͷ։ൃɺӡ༻ ˔ ͖ͳϥʔϝϯ·ͥͦ ˔ ͖ͳ͓স͍ܳਓͳ͔·͖Μʹ܅
ϝσΟΞαʔϏεͱ ਪનج൫ͷόονϑϨʔϜϫʔΫ ਪનδϣϒʹ͍ͭͯ .BUSJY'BDUPSJ[BUJPO Ϩγϐ 5JQT ·ͱΊͱࠓޙͷల
ϝσΟΞαʔϏεͱ ਪનج൫ͷόονϑϨʔϜϫʔΫ ਪનδϣϒʹ͍ͭͯ .BUSJY'BDUPSJ[BUJPO Ϩγϐ 5JQT ·ͱΊͱࠓޙͷల
ϝσΟΞαʔϏεʹ͓͚Δਪન ˔ "CFNB57ɺ"NFCBϒϩάΛ͡Ίͱ͢Δ ༷ʑͳϝσΟΞαʔϏεͷڞ௨ج൫ͷػೳͱͯ͠ఏڙ
ਪનج൫ͷશମ૾ʹ͍ͭͯ ͜͜ͷ෦ʹ͍ͭͯ ͓͠·͢ ( ストリーム処理基盤 )
σʔλղੳج൫ 1BUSJPU ˔ )BEPPQϕʔεͷσʔλղੳج൫ ˓ )%'4ɺ:"3/ɺ)JWFɺ)#BTFɺ'MVNFɺ4QBSLɺFUD ˔ ϝσΟΞαʔϏεͷσʔλΛू ύοέʔδʹΑΔ)BEPPQσʔλղੳج൫ͷߏஙͱӡ༻ IUUQTXXXTMJEFTIBSFOFUDZCFSBHFOUIBEPPQ
όονϑϨʔϜϫʔΫʹ͍ͭͯ ˔ ਪનγεςϜͷόονॲཧఆܕతͳॲཧ͕ଟ͍ ˓ ֶश༻σʔλͷऔಘɺܗ ˓ Ϟσϧͷֶशɺਪન݁Ռͷ࡞ ˓ ਪન݁Ռͷॻ͖ग़͠ͳͲ
˔ ৽نαʔϏεͷಋೖίετӡ༻ίετΛݮ͍ͨ͠ όονϑϨʔϜϫʔΫ։ൃͷඞཁੑ
όονϑϨʔϜϫʔΫʹ͍ͭͯ ˔ 4QBSLΛར༻લఏͰ։ൃ ˓ "QBDIF#FBNΛͬͯࢄॲཧΤϯδϯΛநԽ͢Δ͜ͱ ݕ౼͕ͨ͠ɺࡉ͔͍ϓϩύςΟͷઃఆෳࡶͳॲཧ͕Ͱ͖ͳͦ͏ͩͬͨ ˔ +BWB 4QSJOH#PPU
˓ %*ͳͲ͍উखͷྑ͞ ˓ ๛ͳ࣮
࣮ͷߏཁૉ ˔ δϣϒ ˓ Ұ࿈ͷॲཧͷྲྀΕ ˓ όον͜ͷ୯ҐͰ࣮ߦ͞ΕΔ ˙ ਪનδϣϒɺϞσϧͷΦϑϥΠϯධՁδϣϒɺʜ
˓ ݸ ͷδϣϒ͕ຊ൪ڥͰՔಇத ˔ λεΫ ˓ δϣϒͷதʹؚ·ΕΔͻͱ·ͱ·Γͷॲཧͷ୯Ґ ˙ σʔλͷಡΈࠐΈɺਪન݁Ռͷॻ͖ग़͠ɺʜ ˓ λεΫ͝ͱʹ࣮Ϋϥε͕ଘࡏ͠ɺઃఆʹΑΔସ͕Ͱ͖Δ
࣮ͷߏཁૉ ˔ Ϩγϐ ˓ ࣮ߦ͢Δδϣϒͷछྨɺδϣϒͷ֤छλεΫͷઃఆͳͲɺ δϣϒͷதΛܗ͢ΔઃఆϑΝΠϧ ˓ :".-ܗࣜͰཧ ޙड़
ϝσΟΞαʔϏεͱ ਪનج൫ͷόονϑϨʔϜϫʔΫ ਪનδϣϒʹ͍ͭͯ .BUSJY'BDUPSJ[BUJPO Ϩγϐ 5JQT ·ͱΊͱࠓޙͷల
ਪનδϣϒσʔλϑϩʔਤ શମ૾ খ͗ͯ͢͞ݟ͑ͳ͍ʂ ˔࣮͕ସՄೳͳλεΫ ˔δϣϒΈࠐΈͷλεΫ
ਪનδϣϒσʔλϑϩʔਤ શମ૾
ਪનδϣϒσʔλϑϩʔਤ લ
ਪનδϣϒσʔλϑϩʔਤ લ ˔ 4QBSL4FTTJPOΛੜ ˓ 4QBSL্ͰΞϓϦέʔγϣϯΛ࣮ߦ͢ΔͨΊͷΤϯτϦʔϙΠϯτ ˓ ࣮ߦڥ ସՄ
˙ :"3/ 1BUSJPU ˙ ϩʔΧϧ
ਪનδϣϒσʔλϑϩʔਤ લ ˔ ֶश༻σʔλͷಡΈࠐΈ ˓ 4QBSL%BUBTFUΛੜ ˓ σʔλιʔε ସՄ
˙ 4QBSL42- ˙ )%'4 ˙ 4 ˙ #JH2VFSZ ˙ ʜ
ਪનδϣϒσʔλϑϩʔਤ લ ˔ αʔϏεґଘͷલॲཧΛద༻ ˓ 4QBSL42-Ͱ͍͠ෳࡶͳॲཧ ˓ αʔϏεͷϚελʔσʔλ ֎෦σʔλ
ͷ+PJOͳͲ ˔ ਪન݁ՌͷΞΠςϜͷϑΟϧλ݅ͷఆٛ ˓ ΞΠςϜͷϑΟϧλ ˙ ৽نʹՃ͞Ε͔ͯΒ̎िؒҎͷΞΠςϜ ˙ 17͕Ҏ্ͷΞΠςϜͳͲ ˓ Ϣʔβ UPΞΠςϜͷϑΟϧλ ˙ ϢʔβͷߪೖཤྺͳͲ ˓ ΞΠςϜ UPΞΠςϜͷϑΟϧλ ˙ ͋ΔΞΠςϜʹର͢ΔಉҰδϟϯϧͷΞΠςϜͳͲ ˓ ޙଓͷਪન݁ՌͷੜͰద༻͞ΕΔ
ਪનδϣϒσʔλϑϩʔਤ લ ඞཁʹԠͯ͡ϨγϐͷઃఆͰ ֎෦σʔλΛऔಘɺՃͰ͖Δ
ਪનδϣϒσʔλϑϩʔਤ લ { "id": "foo", "name": "nameA", "description": "xxx"
}, ... { "id": "foo" }, { "id": "bar" }, { "id": "hoge" }, ... ["foo", "bar", "hoge",...] 例)
ਪનδϣϒσʔλϑϩʔਤ લ ˔ ਪન݁ՌٴͼϞσϧΛੜ ˓ ΞϧΰϦζϜ 4QBSL.-MJCΛόονϑϨʔϜϫʔΫʹ߹Θ͍ͤͯ͘͢͠ ͨͷɺಠ࣮ࣗͨ͠ͷ͋Δ ˓
ΞϧΰϦζϜ ସՄ ˙ .BUSJY'BDUPSJ[BUJPO ޙड़ ˙ 8PSE7FD ˙ *UFNUP*UFN$PMMBCPSBUJWF'JMUFSJOH ˙ ʜ ˔ ඞཁʹԠֶͯ͡शࡁͷϞσϧΛ औಘɾར༻Ͱ͖Δ
ਪનδϣϒσʔλϑϩʔਤ શମ૾
ਪનδϣϒσʔλϑϩʔਤ ޙ
ਪનδϣϒσʔλϑϩʔਤ ޙ ˔ αʔϏεґଘͷޙॲཧΛద༻ ˓ ਪન݁Ռͷ֤ΞΠςϜʹର͢ΔଐੑใͷՃͳͲ
ਪનδϣϒσʔλϑϩʔਤ ޙ ˔ ਪન݁Ռͷॻ͖ग़͠ ˓ σʔλετΞ ସՄ ˙ )#BTF
˙ )%'4 ˙ ϩʔΧϧ %SJWFSɺσόοά༻ ˙ 4 ˙ #JH2VFSZ ˙ ʜ
ਪનδϣϒσʔλϑϩʔਤ ޙ ˔ ϞσϧσʔλΛඞཁͳσʔλετΞʹॻ͖ग़͢͜ͱ͕Ͱ͖Δ ˓ ϑΝΠϧͱͯ͠ॻ͖ग़͠ɺΞΠςϜ͝ͱʹ ,74ͷॻ͖ग़͠Ͱ͖Δ
ਪનδϣϒσʔλϑϩʔਤ ޙ ˔ Ϟσϧɺٴͼਪન݁Ռͷόʔδϣϯͷߋ৽ ˓ ;PP,FFQFS্ͰόʔδϣϯใΛཧ͓ͯ͠Γɺ όʔδϣϯ͕ߋ৽͞Ε࣍ୈɺ࠷৽ͷόʔδϣϯใ͕ "1*ʹ௨͞ΕΔ
ϝσΟΞαʔϏεͱ ਪનج൫ͷόονϑϨʔϜϫʔΫ ਪનδϣϒʹ͍ͭͯ .BUSJY'BDUPSJ[BUJPO Ϩγϐ 5JQT ·ͱΊͱࠓޙͷల
.BUSJY'BDUPSJ[BUJPO ˔ ϢʔβɾΞΠςϜͷධՁߦྻΛߦྻղ͢Δख๏ ˓ ϢʔβɺΞΠςϜͷີϕΫτϧΛಘΔ ˓ ͋ΔϢʔβʹରͯ͠ɺϕΫτϧͷ ੵͷ͕େ͖͍ ॱʹΞΠςϜΛਪન
˓ ͋ΔΞΠςϜʹରͯ͠ɺϕΫτϧͷ ίαΠϯྨࣅͷ͕େ͖͍ ॱʹ ؔ࿈ΞΠςϜͱͯ͠ਪન ˔ ಋೖ͕͘͢͠ɺଟ͘ͷϝσΟΞαʔϏεͰར༻͍ͯ͠Δ
.BUSJY'BDUPSJ[BUJPO ˔ ҉తධՁ Ӿཡཤྺߪೖཤྺ Λར༻͢Δ߹ɺ Ӿཡɺ͓ؾʹೖΓɺߪೖͷΑ͏ʹΞΫγϣϯ͝ͱʹ ධՁΛώϡʔϦεςΟοΫʹܾΊͯΈ߹ΘͤΔ͜ͱ͕͋Δ ˔ ΦϑϥΠϯͷਫ਼ධՁ"#ςετͰͷΦϯϥΠϯͷਫ਼ධՁΛ௨ͯ͠
ྑ͍ͱࢥΘΕΔΈ߹ΘͤΛܾఆ
.BUSJY'BDUPSJ[BUJPO ˔ 4QBSL.--JCͷ "-4.PEFMͰҎԼͷϝιου͕ఏڙ͞Ε͍ͯΔ ˓ SFDPNNFOE'PS"MM6TFST WҎ߱ ˙ ֤Ϣʔβʹ
ࢦఆͨ݅͠ͷΞΠςϜΛਪન͢Δ ˓ SFDPNNFOE'PS6TFS4VCTFU WҎ߱ ˙ ࢦఆͨ͠Ϣʔβ܈ʹରͯ͠ɺࢦఆͨ݅͠ͷΞΠςϜΛਪન͢Δ ͕ɺ͍ͣΕϑΟϧλΛೖΕΔػೳ͕ͳ͍ͨΊɺࣅͨΑ͏ͳॲཧΛ "-4.PEFMͷ֎ଆͰ࣮͠ɺͦͷ෦ͰϑΟϧλΛద༻͍ͯ͠Δ
ϝσΟΞαʔϏεͱ ਪનج൫ͷόονϑϨʔϜϫʔΫ ਪનδϣϒʹ͍ͭͯ .BUSJY'BDUPSJ[BUJPO Ϩγϐ 5JQT ·ͱΊͱࠓޙͷల
Ϩγϐʹ͍ͭͯྫ
Ϩγϐʹ͍֦ͭͯுػೳ ˔ Πϯϙʔτػೳ ˓ @JODMVEF ͷΩʔʹରͯ͠ɺ:".-ϑΝΠϧͷύεΛࢦఆ͢Δ ͜ͱͰɺͦͷϑΝΠϧͷઃఆใΛಡΈࠐΉ͜ͱ͕Ͱ͖Δ
Ϩγϐʹ͍֦ͭͯுػೳ _include: - config/product/recipe/template.yml … launch: id: yarn properties:
<<: *spark_yarn_prop_template SFDPNNFOE@TBNQMFZNM launch: id: yarn properties: spark.executor.memory: 10g spark.executor.instances: 10 … _yarn: _template: _properties: &spark_yarn_prop_template spark.executor.memory: 10g spark.executor.instances: 10 … UFNQMBUFZNM
'SFF.BSLFSʹΑΔςϯϓϨʔτॲཧ ˔ ਪનόονϑϨʔϜϫʔΫͰ 'SFF.BSLFSͷ ςϯϓϨʔτΤϯδϯΛར༻͓ͯ͠Γɺ42-ϑΝΠϧ Ϩγϐʹॻ͔ΕͨมɺΧελϜϝιουʹରͯ͠ Λೖ͢Δ͜ͱ͕Ͱ͖Δ
SELECT * FROM db WHERE dt = '${dtf('-1d', 'yyyy-MM-dd')}' AND
service_id = '${.data_model["service.id.ameblo"]}' SELECT * FROM db WHERE dt = '2019-06-27' AND service_id = 'foo' 'SFF.BSLFSʹΑΔςϯϓϨʔτॲཧ MPBE@TBNQMF@EBUBTRM
5JQT5PQ.݅ͷਪનΞΠςϜͷநग़ ˔ େͳ/݅ͷΞΠςϜྻ͔ΒείΞͷߴ͍5PQ.݅ͷ ΞΠςϜΛநग़͢Δॲཧ ˓ ./ ˓ ԼҐͷΞΠςϜݫີʹιʔτ͢Δඞཁͳ͍ ˔ )FBQ4PSUΛ͏͜ͱͰɺܭࢉྔΛ
0 / ʹۙࣅͰ͖Δ ˓ +BWBͷඪ४ιʔτ 5JN4PSU
5JQT%BUBTFUUP-PDBM*UFSBUPS ʹ͍ͭͯ ˔ %BUBTFUUP-PDBM*UFSBUPS Λ͏ͱɺ ࠷ޙʹ TIVGGMF͕ೖͬͨ͋ͱ͔ΒྻͰॲཧ͞ΕΔ ͨΊɺ લʹ໌ࣔతʹ SFQBSUJUJPOͳͲͷ
TIVGGMFॲཧΛೖΕΔ ඞཁ͕͋Δ
5JQT,SZPͱ GBTUVUJMͷ 0QFO)BTI.BQʹ͍ͭͯ ˔ αΠζͷඇৗʹେ͖͍ 0QFO)BTI.BQΛ ,SZPͰσγϦΞϥΠζ͢Δͱඇৗʹ͘ͳΔ͕͋Δ ˓ ϋογϡςʔϒϧͷিಥ͕සൃ͢ΔͨΊ ˓
࣮ͷͱ͍͏ΑΓ͓ޓ͍ͷ༷ͷ૬ੑͷ ˓ ؆୯ͳରࡦͱͯ͠ඪ४ͷ)BTI.BQ GBTUVUJMͷ -JOLFE0QFO)BTI.BQΛ͏ͳͲɾɾ
ϝσΟΞαʔϏεͱ ਪનج൫ͷόονϑϨʔϜϫʔΫ ਪનδϣϒʹ͍ͭͯ .BUSJY'BDUPSJ[BUJPO Ϩγϐ 5JQT ·ͱΊͱࠓޙͷల
·ͱΊͱࠓޙͷల ˔ 4QBSLΛ׆༻ͨ͠ਪનج൫ͷόονϑϨʔϜϫʔΫʹ͍ͭ ͯɺਪનδϣϒͷσʔλϑϩʔਤͳͲΛ;·͑ͯհͨ͠ ˔ ࠓޙͷల ˓ ΦϑϥΠϯਫ਼ධՁɺٴͼਫ਼ʹؔ͢Δ֤छϝτϦΫεͷ ϨϙʔςΟϯάपΓࣗಈԽ ˓
ਂֶशͷಋೖ ˙ 5FOTPS'MPX0O4QBSL ˙ %FFQMFBSOJOHK0O4QBSLͳͲ͋Δ͕ɾɾ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
ਪનͷछྨ छྨ આ໌ ར༻Օॴɺ༻్ Ϣʔβ UPΞΠςϜ Ϣʔβʹରͯ͠ڵຯͷ͋Γͦ͏ͳ ΞΠςϜΛਪન͢Δ ϚΠϖʔδͳͲ ΞΠςϜ
UPΞΠςϜ ͋ΔΞΠςϜʹରͯؔ͠࿈ͷ͋Δ ΞΠςϜΛਪન͢Δ ΞΠςϜৄࡉϖʔδͳͲ ϥϯΩϯά ԿΒ͔ͷࢦඪʹج͍ͮͯ ΞΠςϜΛϥϯΩϯάԽ͢Δ ϥϯΩϯάϖʔδ ਪન݁Ռ͕ͳ͍ͱ͖ͷ ϑΥʔϧόοΫ༻ͳͲ
छྨ આ໌ 'FUDI σʔλΛऔಘ͠·͢ 'JMUFS σʔλΛϑΟϧλ͠·͢ 5SBOTGPSN σʔλΛม͠·͢ $PMMFDU σʔλΛऩू͠·͢
6QMPBE σʔλΛॻ͖ग़͠·͢ -BVODI 4QBSL4FTTJPOΛ࡞͠·͢ 3FBE 4QBSL%BUBTFUΛ࡞͠·͢ 4FSWJDF1SPDFTTJOH αʔϏεґଘͷલॲཧ ޙॲཧΛద༻͠·͢ 3FDPNNFOE Ϟσϧٴͼਪન݁ՌΛ࡞͠·͢ 8SJUF ਪન݁ՌΛॻ͖ग़͠·͢ λεΫͷछྨ