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
External Network Accessよもやま話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Gaku TASHIRO
November 12, 2023
690
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
External Network Access よもやま話
2023年11月9日(金)に沖縄SnowVillageにおいて発表したLTの資料です。
Gaku TASHIRO
November 12, 2023
More Decks by Gaku TASHIRO
See All by Gaku TASHIRO
Terragrunt x Snowflake + dbt で作るマルチテナントなデータ基盤構築プラットフォーム
gak_t12
0
640
SWTTokyo25 Community Hub 生FrostyFriday!
gak_t12
1
190
Snowflake Cortex Searchについて
gak_t12
0
430
今さら聞けないdbtの基本LT
gak_t12
8
8.9k
データエンジニアとしてちゅらデータで働くことになった
gak_t12
1
2.8k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.2k
Marketing to machines
jonoalderson
1
5.4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
410
Navigating Weather and Climate Data
rabernat
0
220
Chasing Engaging Ingredients in Design
codingconduct
0
220
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
Building Applications with DynamoDB
mza
96
7.1k
The Spectacular Lies of Maps
axbom
PRO
1
800
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Transcript
External Network Access よもやま話 © 2023 Chura DATA Inc.
⾃⼰紹介 © 2023 Chura DATA Inc. ちゅらデータ株式会社 シニアデータエンジニア 1974年12⽉12⽇⽣まれ(48歳) 現在、埼⽟県川越市在住(フルリモート勤務)
• 2022年9⽉ちゅらデータ株式会社にJoin • Snowflakeやdbtが好き • 2023Snowflakeユーザーグループリーダーの⼀員 2
⾃⼰紹介 © 2023 Chura DATA Inc. ちゅらデータ株式会社 シニアデータエンジニア 1974年12⽉12⽇⽣まれ(48歳) 現在、埼⽟県川越市在住(フルリモート勤務)
• 2022年9⽉ちゅらデータ株式会社にJoin • Snowflakeやdbtが好き • 2023Snowflakeユーザーグループリーダーの⼀員 • 先⽇のDCWTではサイロマンになりました 3
• External Network Accessとは • 以前の⽅式(External Function) • External Network
Access vs External Function • External Network Accsss 使⽤シーン Agenda © 2023 Chura DATA Inc.
External Network Accessとは © 2023 Chura DATA Inc.
External Network Access For Snowparkとは ※2023年11⽉現在 © 2023 Chura DATA
Inc. 6 • Snowfalke Summit 2023@LasVagasにて発表 • UDF/UDTFやストアドプロシージャで使える • 特定の外部ネットワークに対して、セキュアにアクセス • 構築はSnowflake内で完結 • 使⽤例 • 翻訳 • Slack通知 • リバースELT • Stramlit in Snowflakeデータアプリ • データ抽出(もできなくはない)
External Network Access の構築は簡単︕ © 2023 Chura DATA Inc. 7
• Snowflake側 1. Snowflake Secretsの設定 2. ネットワークルールの作成 3. External Access Integrationの作成 4. UDF/UDTF, ストアドプロシージャの処理の実装 5. 呼び出し • 外部API • 外部API関連の設定やAPI KEYの取得
• 変換系のAPI(翻訳など) • ⽐較的⼩さなマスターデータ系 • 抽出と取り込み(Federated Query) • データソース側がほぼ不変 •
エラー制御等必要なら、専⾨のETLツールを • リバースETL External Network Accessの使い所 © 2023 Chura DATA Inc. 8
• ⼤きなデータはあまりおすすめできない • マイクロパーティションによる最適化やキャッシュは期待できない • Snowflake、外部API、通信コストも⾼くなる External Network Accessの制約︖ ©
2023 Chura DATA Inc. 9
以前の⽅式(External Function) © 2023 Chura DATA Inc.
以前の⽅式(External Function) © 2023 Chura DATA Inc. 11 • Snowflake
• 外部関数をSQLから • 外部 • プロキシサービスへ • リモートサービスへ転送 • 処理する(外部APIとか) • プロキシサービスへ • Snowflake • 結果を取得して表⽰
以前の⽅式(External Function)での構築は⼤変・・・・・・ © 2023 Chura DATA Inc. 12 • Snowflake側
• 外部関数の作成 • API INTEGRATIONの設定 • SECURITY INTEGRATIONの設定 • 外部(中間) • プロキシサービスの構築(API Gateway系のサービス) • リモートサービスの環境構築 • Cloud Functionsとか、EC2の構築とか、いずれか • 適切な権限設計・設定(IAM) • 適切なネットワーク設定(IP制限など) • リモートサービス側の処理の実装 • 外部API • 外部API関連の設定やAPI KEYの取得
以前の⽅式(External Function)での構築は⼤変・・・・・・ © 2023 Chura DATA Inc. 13 • Snowflake側
• 外部関数の作成 • API INTEGRATIONの設定 • SECURITY INTEGRATIONの設定 • 外部(中間) • プロキシサービスの構築(API Gateway系のサービス) • リモートサービスの環境構築 • Cloud Functionsとか、EC2の構築とか、いずれか • 適切な権限設計・設定(IAM) • 適切なネットワーク設定(IP制限など) • リモートサービス側の処理の実装 • 外部API • 外部API関連の設定やAPI KEYの取得 ここが⼤変!
External Network Accsss vs External Function © 2023 Chura DATA
Inc.
External Network Access vs External Function⽅式 © 2023 Chura DATA
Inc. 15 External Network Access External Function⽅式 構築 ◯ X Snowflakeでほぼ完結 プロキシサービス、リモートサービスを 外部で⽤意が必要 対応⽅式 ◯ △ UDF,ストアドプロシージャ UDFのみ 対応⾔語 ◯ ◎ Python、Scala、Java なんでもOK、⾃由度⾼し 応答サイズ ? △ (制限は⾒当たらず) バッチ最⼤10MB コスト ◯ △ Snowflake Warehouse データ転送 外部API使⽤料 Snowflake Warehouse データ転送 外部API使⽤料 プロクシサービス使⽤料 リモートサービス使⽤料 その他 データシェア未対応
External Network Accsss 使⽤シーン © 2023 Chura DATA Inc.
使⽤シーン Google Translate API (Snowflake Example) © 2023 Chura DATA
Inc. 17 https://docs.snowflake.com/en/developer-guide/external- network-access/external-network-access-examples 実装するための⼿順あり、まずこれを参考に 本例は、Function的な使い⽅
使⽤シーン Slack通知 © 2023 Chura DATA Inc. 18 • メールでSlack通知することはできた
• ⾒にくい︕表⽰が途中で切れる • SlackAPI⽅式だと、アラートの重要度で⾊分けも可能 • Waringなら⻩⾊ • Criticalなら⾚⾊ • 利⽤シーン • ストアドプロシージャ実⾏時に エラーが発⽣したら通知 • ⽇次レポートを通知
使⽤シーン dbt をキック © 2023 Chura DATA Inc. 19 •
Snowpipeでデータを取り込んだ後、dbt起動させて、transferさせたくな いですか︖ • 複数のテーブル監視のTaskA, TaskB・・・・・ • ⼦TaskCで dbt APIをキック TaskA TableA取り込み TaskB TableB取り込み TaskC dbt API をKick! TaskRoot
使⽤シーン Snowflake External Network Access 〜Notion〜(truestar様) © 2023 Chura DATA
Inc. 20 • SnowflakeUDFからNotionのテーブルに書き込み
使⽤シーン Federation Query on Bigquery (harryさん) © 2023 Chura DATA
Inc. 21 • SnowflakeからBigQueryのデータを 取得 • 100万⾏超の2⾏データをBigQuery から取得するのに、Warehouseサイ ズXSで1分程度 • →通信サイズに制限なし︖︖ • ※外部関数はバッチあたりの最⼤応 答サイズが10MB
使⽤シーン ⾃然⾔語でSQLクエリを⽣成し、データアクセスを効率化 © 2023 Chura DATA Inc. 22 • DCWTにてDATUM
STUDIOブースでデモ • Streamlit in SnowflakeとOpenAI APIを統合 • ⾃然⾔語でデータへ問い合わせ • 対話形式でデータが得られる
EOL © 2023 Chura DATA Inc. 23 ご清聴ありがとう ございました︕︕︕