Snowflake Scriptingの一般的な使用例¶
一般的なユースケースに対応するソリューションとして、Snowflakeスクリプト言語の要素、データ型、変数を使用する匿名ブロックとストアドプロシージャを作成できます。このトピックには、いくつかの一般的なユースケースにおけるSnowflakeスクリプトコードの例が含まれています。
ユーザー入力でテーブルデータを更新する¶
次の例では、ユーザー入力でテーブルデータを更新するストアドプロシージャを作成します。 FOR ループ を使用して、テーブルの RESULTSET 内の行を反復処理します。FOR ループには 条件ロジック が含まれています。ユーザー入力に基づく バインド変数 によって、ストアドプロシージャが実行する正確な更新が決定されます。
この例では次のデータを使用します。
以下のストアドプロシージャは FOR ループを使用して、 bonuses テーブルの RESULTSET 内の行を反復処理します。指定された業績評価を受けた各従業員の給与の指定された割合としてボーナスを適用します。ストアドプロシージャは、条件付きロジックを使用して、指定されたパフォーマンス評価を持つ従業員にのみボーナスを適用します。また、入力(bonus_percentage および performance_value)をバインド変数として使用します。
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
ストアドプロシージャを実行するには、ボーナスパーセンテージとパフォーマンス評価を指定します。たとえば、ストアドプロシージャを呼び出して、パフォーマンス評価が5の従業員に3%のボーナスを適用します。
クエリを実行して結果を表示します。
データのフィルタリングと収集¶
次の例では、テーブル内のデータをフィルター処理して収集するストアドプロシージャを作成します。このプロシージャでは、収集されたデータを使用して別のテーブルに行を挿入し、履歴の傾向を追跡します。
この例では、仮想マシンの所有権と設定を追跡する次のデータを使用します(VMs)。
ある企業が、設定値が特定のしきい値を超えたときに、この表のデータを時間の経過とともに追跡したいとします。次のストアドプロシージャは、 vm_settings テーブルのデータを収集およびフィルタリングし、次の条件が満たされたときに、 vm_settings_history テーブルに行を挿入します。
s1の値を持つvm_settingは、5よりも低く設定されます。s2の値を持つvm_settingは、500よりも高く設定されます。
vm_settings_history テーブルに挿入された行には、 vm_settings テーブルのすべての列の値と、 VM を所有する従業員の emp_id および現在の日付が含まれます。
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
ストアドプロシージャを実行します。
次のクエリを実行すると、プロシージャによって vm_settings_history テーブルに挿入されたデータを確認できます。