❄️

SnowPro Core資格への道 ~Part4:外部関数(EXTERNAL FUNCTION)

に公開

はじめに

9月のSnowflake World Tour TokyoまでにSnowPro Coreをとります!
試験日を8月28日(木)に受けようと思います。

今日のお題は外部関数(EXTERNAL FUNCTION)です。
外部関数のコードはどの場所で実行されるか?を検証してみたいと思います。

まとめ:外部関数はSnowflakeの外で実行される

いきなりまとめです。
外部関数(EXTERNAL FUNCTION)はSnowflakeの【外】で実行されます。

以下、Geminiさんからの引用です。

Snowflakeの外部関数のコードは、Snowflakeの外部で実行されます。
具体的には、リモートサービスと呼ばれる別のクラウドプラットフォーム
(AWS Lambda、Azure Functions、Google Cloud Functionsなど)
で実行されるコードを呼び出します。
Snowflake自身は、外部関数の定義をデータベースオブジェクトとして保存し、
その定義にはリモートサービスを呼び出すための情報(プロキシサービスのURLなど)
が含まれています。
SQLステートメントで外部関数が呼び出されると、Snowflakeはその定義とAPI統合情報を読み込み、
プロキシサービス(Amazon API GatewayなどのHTTPプロキシサービス)を介して
リモートサービスに情報を中継し、そこでコードが実行されます。

公式リファレンス

https://docs.snowflake.com/ja/sql-reference/external-functions-introduction
中でも記事内の以下の図がめっちゃわかりやすいですね。

SnowflakeからはUDFで呼び出し、実際の処理はHTTPS Proxy Service経由でリモートサービスで実行されるとのこと。

おわりに

当初は頑張っていろんな資料を絵にして・・・とか考えていたのですが、それだと続かないので続けるためのアクション(短時間でアウトプットすることで覚える)をやってみたいと思います。

Discussion