Slide 1

Slide 1 text

External Network AccessとStreamlitで データロードアプリ作ってみた 2023/11/10 あれ(@__allllllllez__) Illustration by Leonard.ai

Slide 2

Slide 2 text

© 2023 DATUM STUDIO Co. Ltd. 1 自己紹介 【名前】 あれ(@__allllllllez__) 【所属】 DATUM STUDIO株式会社 データエンジニアリング本部 データエンジニア部 たまに記事を書いてます。 Zenn→ https://zenn.dev/allllllllez なかのひとなどいない!

Slide 3

Slide 3 text

© 2023 DATUM STUDIO Co. Ltd. いきなりですが 本日のハイライト

Slide 4

Slide 4 text

© 2023 DATUM STUDIO Co. Ltd. 3 本日のハイライト External Network Accessで遊んでいたら、 こんなんできました。

Slide 5

Slide 5 text

© 2023 DATUM STUDIO Co. Ltd. 改めて 本日のコンテンツ

Slide 6

Slide 6 text

© 2023 DATUM STUDIO Co. Ltd. 5 コンテンツ • はじめに • External Network Accessとは • データロードアプリ、作ってみた • まとめ ※本発表でのExternal Network Accessに関する内容は、2023/11/10 時点の情報に基づいたものです External Network Accessをお使いの際は、最新の情報をご確認ください

Slide 7

Slide 7 text

© 2023 DATUM STUDIO Co. Ltd. External Network Accessとは

Slide 8

Slide 8 text

© 2023 DATUM STUDIO Co. Ltd. 7 External Network Accessとは UDF・ストアドプロシージャで、Snowflakeの外部のネットワークへのアクセスを 許可する機能 許可する外部ネットワークの場所 外部ネットワークへのアクセスに必要な認証情報 アクセスする外部ネットワークをNetwork ruleで、 認証情報をSecretで指定 Network Rule Secret External Access Integration

Slide 9

Slide 9 text

© 2023 DATUM STUDIO Co. Ltd. 8 External Network Accessとは UDF・ストアドプロシージャで、Snowflakeの外部のネットワークへのアクセスを 許可する機能 ストアドプロシージャ Okです Network Rule Secret External Access Integration ALLOWED_AUTHENTICATION_SECRETS に指定 ALLOWED_NETWORK_RULES に指定 EXTERNAL_ACCESS_INTEGRATIONS に指定 外部ネットワーク パラメータ指定による参照 リクエスト ストアドプロシージャ 許可されてないので ダメです とか とか パラメータ例) MODE = EGRESS TYPE = HOST_PORT VALUE_LIST = (slack.com'); パラメータ例) TYPE = GENERIC_STRING SECRET_STRING = ''

Slide 10

Slide 10 text

© 2023 DATUM STUDIO Co. Ltd. なるほど

Slide 11

Slide 11 text

© 2023 DATUM STUDIO Co. Ltd. 💡

Slide 12

Slide 12 text

© 2023 DATUM STUDIO Co. Ltd. ひらめいた

Slide 13

Slide 13 text

© 2023 DATUM STUDIO Co. Ltd. 12 ひらめいた 外部APIを直接呼べるよう になった今、 我々はSnowflakeだけで API連携データを ササッと取り込むことが できるのでは? その時、あれに電流走るーーー

Slide 14

Slide 14 text

© 2023 DATUM STUDIO Co. Ltd. やってみよう

Slide 15

Slide 15 text

© 2023 DATUM STUDIO Co. Ltd. データロードアプリ、 作ってみた

Slide 16

Slide 16 text

© 2023 DATUM STUDIO Co. Ltd. 15 というわけで、アプリの解説をさせていただきます。 APIのURLと、APIのホストを許可するExternal Access integrationを指定して、 ポチッとな!するだけの簡単なアプリです データロードア プリ作ってみた 補足情報を 表示するエリア

Slide 17

Slide 17 text

© 2023 DATUM STUDIO Co. Ltd. 16 今回は、かの有名な郵便番号データを取得してみます。 データロードア プリ作ってみた <郵便番号データについて> 日本郵便が提供している、郵便番 号と住所などの情報を対応させ たデータ。 住所が長いと複数のレコードに分 割されるなど、非常に個性的な 仕様で知られていた。 しかし、去る2023年6月、分割レ コードが廃止されたほか、文字 コードがShift_JIS→UTF-8に、 カナが半角カナ→全角カナに変 更されるなどの劇的な仕様改良 がなされ、一部界隈は歓喜に沸 いた。

Slide 18

Slide 18 text

© 2023 DATUM STUDIO Co. Ltd. 17 Try to LOAD!をポチッとな External Access Integrationを紐づけたストアドプロシージャを実行、リクエストを 飛ばします データロードア プリ作ってみた コード公開しちゃおっと

Slide 19

Slide 19 text

© 2023 DATUM STUDIO Co. Ltd. 18 キタ━━━━(゚∀゚)━━━━!! データロードア プリ作ってみた 🎉🎉🎉 🎉🎉🎉 🎉🎉🎉 🎉🎉🎉

Slide 20

Slide 20 text

© 2023 DATUM STUDIO Co. Ltd. まとめ

Slide 21

Slide 21 text

© 2023 DATUM STUDIO Co. Ltd. 20 まとめ External Network Access SUGOI Snowflakeの可能性を無限に広げるスゴ機能、まさに NO LIMIT

Slide 22

Slide 22 text

© 2023 DATUM STUDIO Co. Ltd. ❄おしまい❄