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
SnowflakeにMySQLとJOINする機能を 実装する
Search
Kurochan
April 04, 2021
Technology
0
680
SnowflakeにMySQLとJOINする機能を 実装する
#SnowVillage LIVE 004
https://www.youtube.com/watch?v=zY7z2IEtqCc
Kurochan
April 04, 2021
Tweet
Share
More Decks by Kurochan
See All by Kurochan
15年入社者に聞く! これまでのCAのキャリアとこれから
kurochan
1
230
入門 電気通信事業者
kurochan
13
5.6k
AWS x さくらのクラウドのハイブリッドクラウドによる安価なフレッツ閉域網接続の実装
kurochan
9
5.7k
GoでTCP Proxyを実装してみよう
kurochan
1
1.1k
サイバーエージェントの広告配信におけるIPoEトラフィックの概況
kurochan
0
490
スケールするというのはどういうことなのか
kurochan
14
4.9k
サイバーエージェントのGitHub Copilot導入と 開発生産性
kurochan
52
46k
Cloudflare Zero Trustを利用したセキュアな開発環境へのアクセス手法の確立
kurochan
10
3.5k
セキュキャンを卒業してその後
kurochan
0
1.4k
Other Decks in Technology
See All in Technology
MUITにおける開発プロセスモダナイズの取り組みと開発生産性可視化の取り組みについて / Modernize the Development Process and Visualize Development Productivity at MUIT
muit
1
15k
AI導入の理想と現実~コストと浸透〜
oprstchn
0
190
Lazy application authentication with Tailscale
bluehatbrit
0
170
生成AI時代 文字コードを学ぶ意義を見出せるか?
hrsued
1
810
OSSのSNSツール「Misskey」をさわってみよう(右下ワイプで私のOSCの20年を振り返ります) / 20250705-osc2025-do
akkiesoft
0
150
AI時代の開発生産性を加速させるアーキテクチャ設計
plaidtech
PRO
3
130
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
2.4k
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
1.9k
KubeCon + CloudNativeCon Japan 2025 Recap
ren510dev
1
370
Flutter向けPDFビューア、pdfrxのpdfium WASM対応について
espresso3389
0
130
本が全く読めなかった過去の自分へ
genshun9
0
930
AI専用のリンターを作る #yumemi_patch
bengo4com
5
4.1k
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
RailsConf 2023
tenderlove
30
1.1k
Why Our Code Smells
bkeepers
PRO
336
57k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
The Cult of Friendly URLs
andyhume
79
6.5k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Facilitating Awesome Meetings
lara
54
6.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
280
Being A Developer After 40
akosma
90
590k
GitHub's CSS Performance
jonrohan
1031
460k
We Have a Design System, Now What?
morganepeng
53
7.7k
Transcript
SnowflakeʹMySQLͱJOIN͢ΔػೳΛ ࣮͢Δ גࣜձࣾαΠόʔΤʔδΣϯτ AIࣄۀຊ෦ ࠇ࡚ ༏ଠ (@kuro_m88)
ࠇ࡚ ༏ଠ • גࣜձࣾαΠόʔΤʔδΣϯτ Dynalyst ։ൃऀ • ࠂ৴γεςϜͷόοΫΤϯυΛ࡞͍ͬͯ·͢ • ීஈAWS
x Scalaͷࣄ͕ଟ͍Ͱ͢ @kuro_m88 @kurochan
Federated QueryΛ࡞Γ͍ͨ
Federated Query • Redshiftʹࡌ͞Ε͍ͯΔͭ • Redshift͔ΒPostgreSQLʹΫΤϦΛ͛Δ͜ͱ͕Ͱ͖Δ • ͜Ε͕Ͱ͖Δͱɺ ϩάσʔλͱϑΝΫτσʔλͷ ݁߹͕Ͱ͖ͨΓͯ͠خ͍͠
• MySQL·ͩbeta
ཁ͢Δʹ͜Ε͕Γ͍ͨ
SnowflakeͰΓ͍ͨ • Snowflakeʹຬ͍ͯ͠Δ͕ɺRedshift͕ત·͍͠ͱࢥ͏ػೳΛͻͱ্ͭ͛ Δͱ͢ΕFederated Query • ݱঢ়ͦͷΑ͏ͳػೳͳ͍͠ɺಉҰVPCʹSnowflakeͱRDS͕ଘࡏ͠ͳ͍ͨ Ί௨৴͢Δͷͦ͠͏… • ત·͍͠ͷͰͳΜͱ͔ͦΕͬΆ͍ͷΛࣗ࡞͍ͨ͠
• ࣮ͯ͠Έ·ͨ͠ • CyberAgent / snowflake-aws-mysql-connector • https://github.com/CyberAgent/snowflake-aws-mysql-connector
Federated QueryΛ ࣮͢Δ
Snowflakeͱ֎෦αʔϏεͷ࿈ܞ • SnowflakeʹExternal Functionͱ͍͏ػೳ͕͋ΓɺSQLͷؔͱͯ͠AWS LambdaͷؔΛݺͼग़͢͜ͱ͕Մೳ • Lambda FunctionͰRDSʹΞΫηεͯ͠ɺͦͷ݁ՌΛProxy͢ΕSnowflake ͔ΒಈతʹΫΤϦ͕͛ΒΕΔͷͰͳ͍͔…ʁ •
ͱΓ͋͑ͣLambda Function + API Gateway
Lambda Function • ΄΄proxyͯ͠Δ͚ͩ • Lambda FunctionͷҾ͔ΒSQLͷจࣈྻΛऔΓग़͢ • DBʹΫΤϦ͢Δ •
ϨεϙϯεΛܗ͢Δ
LambdaͷϨεϙϯεαΠζ੍ݶ • Lambda FunctionͷϨεϙϯε6MB·Ͱ • ༗ݶͳͷͰϨεϙϯεΛѹॖͯ͠Αͦ͞͏ • Ϩεϙϯε͕େ͖ͦ͏ͩͬͨΒѹॖ͢Δ͜ͱʹ (Ϩεϙϯεʹѹॖ͔ͨ͠Ͳ͏͔ͷϑϥάೖΕ͓ͯ͘)
SnowflakeͷUDF • UDF = User Defined Function • UDFSQLͷଞʹJavascript͕ॻ͚Δ •
UDFʮߦʯΛฦؔ͢ • External FunctionʮߦʯΛฦؔ͢ • ࠓճSnowflakeͷςʔϒϧͱRDSͷςʔϒϧΛJOIN͍ͨ͠…
UDTF • User Defined Table Function • ʮςʔϒϧʯΛฦؔ͢ • UDF:
select my_function(); • UDTF: select * from table(my_table_function()); • ͋ͱؔΛςʔϒϧؔʹม͢Δ͕ؔ͋Εɺ External FunctionΛUDTFͰϥοϓ͢Ε͍͍ͣ…ʂ
ؔΛςʔϒϧؔʹม͢Δؔ: flattenؔ
ؔΛςʔϒϧؔʹม͢Δؔ: flattenؔ
API IntegrationΛઃఆ͢Δ • API Gateway(Lambda)Λݺͼग़͢ํ๏Λఆٛ͢Δ
External FunctionΛఆٛ͢Δ • Snowflake͔ΒAPI GateawyΛݺͼग़͢
UDTFΛఆٛ͢Δ • UDTFͷதͰExternal FunctionΛݺΜͰɺ݁ՌΛflatten͢Δ
UDTFͷதͷSQL • ΫΤϦ݁Ռ͕gzipѹॖ͞Ε͍ͯͨΒల։͠ɺ ૉͷJSONͰ͋Εͦͷ··ύʔε͢Δ
͍ํͷΠϝʔδ
͍ํͷΠϝʔδ
None