製品 & テクノロジー

Snowflakeを使用したSQLでのスクリプト作成について知っておくべきこと

Snowflakeを使用したSQLでのスクリプト作成について知っておくべきこと

注:本記事は(2022年5月18日)に公開された(What You Need to Know About Scripting in SQL with Snowflake)を翻訳して公開したものです。

Snowflakeスクリプトが一般提供されており、Snowflakeを使用したSQLでのスクリプトやストアドプロシージャの作成が可能となりました。このプロシージャ言語を利用することで、条件ステートメントやループステートメントといった構造や制御ステートメントによりSQL言語を拡張し、Snowflakeユーザー(ほとんどがSQLを経験し使用を好んでいる)によるストアドプロシージャの作成やSQLベーススクリプトの変換が容易になります。

この機能は、プレビュー段階において非常に高く評価され使用されました。Snowflakeスクリプトは簡単に使い始めることができます。以下に紹介する重要なコンセプトをご理解いただければ、すぐに使いこなしていただけると思います。

ブロックを理解する

本機能を使用すると、Snowflakeスクリプトブロック内でプロシージャコードを書けるようになります。ストアドプロシージャの定義内でブロックを使用することができるほか、ストアドプロシージャ内での使用を望まない場合は、分離された独立したSQLステートメントとして匿名ブロックを作成することも可能です。

テーブルを返す

主な新機能の1つが、Snowflakeスクリプトを使用してテーブルを返すことができる点です。このように、SnowflakeユーザーがSnowflakeスクリプトを使用してETLやデータ処理タスクを開発できるだけでなく、レポートプロシージャの開発や移行も簡素化されます。SnowflakeスクリプトはSnowflakeのSQLと密に統合されており、データシェアリングやマーケットプレイスアプリケーションの構築における使用や共有が可能です。

制御フローステートメントの機能

Snowflakeスクリプトは、「IF」や「CASE」ステートメントといった分岐構造に対応しています。

  • 「IF」は条件が合致した場合、一連のステートメントを実行します。
  • 「CASE」も「IF」と似たように機能しますが、複数条件の指定がよりシンプルです。

ループの4つの種類:FOR、WHILE、REPEAT、LOOP 

  • 「FOR」ループは一連のステップを指定された回数または結果セットにおける各行について繰り返します。カウンターベースまたはカーソルベースとすることができます。
  • 「WHILE」ループは、条件が真の場合のみ実行されます。「WHILE」条件は、ループ本文前に即時に判断され、条件が偽であった場合ループは実行されません(最初のループで生じた場合1度も実行されません)。
  • 「REPEAT」ループは条件が真となるまで繰り返されます。
  • 「LOOP」ループはコマンドが入力されるまで実行し続けます。

カーソルを利用してクエリ結果の1行ごとにループさせることも可能です。クエリの結果からデータを取得するにはカーソルを使用してください。ループ内にあるカーソルを使用して結果の複数行に対しループさせることができます。

例外の取り扱い

Snowflakeスクリプトブロック内では、エラーが生じた場合に例外を発生させ、例外処理としてコードの次の行の実行を阻止することができます。またSnowflakeスクリプトコード内で生じた例外を処理することもできます。

例外が発生した場合、Snowflakeスクリプトはハンドラーを検知しようとします。例外ハンドラーには、別の例外処理中の例外発生に備え、例外ハンドラー自体の例外ハンドラーを含むことができます。

Snowflakeスクリプトの詳細についてはSnowflakeドキュメンテーションをご覧いただき、開始にあたってはメディア上のSQLスクリプト例をご参照ください。

ボーナス:Snowflakeのデータに関するスーパーヒーローであるRajiv Guptaが、メディア上で分岐構造ループカーソル結果例外処理についてシリーズで掲載しています。 

記事をシェアする

生成AIのROIを解き放つ:すべてはデータ戦略から始まる

生成AIのアーリーアダプターは、平均41%のROIを達成しています。その鍵となるのは強力なデータ戦略です。統合されたセキュアなデータプラットフォームは、データ品質やバイアスなどの課題を克服し、AIの可能性を最大限に引き出します。詳しくは、Snowflakeのレポート「The Radical ROI of Gen AI」をダウンロードしてご覧ください。

状況をしっかり把握したうえで生成AIにアプローチする

生成AIはほぼすべてを変えるでしょう。腕を広げて抱きしめよう でも目を見開いて

AIの転換点:製造業界のリーダーが2025年に向けて知っておくべきこと

2025年に向けて、製造業界のリーダーがイノベーション、ROI、コンプライアンスのバランスを取りながらAIを活用するための方法と、製造業界でのAIの役割と主要な予測について解説します。

MedtronicによるSnowflakeを使用したデジタルトランスフォーメーション

最近のウェビナーでは、Medtronic社からRaj Harapanahalli氏を迎えてSnowflakeを使用した運用効率の向上について話していただきました。本記事で、さらに詳しくご紹介します。

2025年に旅行・ホスピタリティ業界のエグゼクティブがAIについて知っておくべきこと

パーソナライゼーション、業務の合理化、データコラボレーションなど、AIが2025年の旅行・ホスピタリティ業界をどのように変革するかを紹介します。

Snowflake情報スキーマの使用

Snowflakeには、ユーザーに公開するデータディクショナリがあります。私たちはこれを情報スキーマと呼んでいます。この記事では、その使い方の例をいくつか紹介します。

アンダーアーマーはどのようにしてクラウドのデータファーストカンパニーとなったのか

今回のThe Data Cloudポッドキャストでは、アンダーアーマーのエンタープライズデータマネジメント担当バイスプレジデント、Patrick Duroseau氏に、自社のデータファーストカンパニーへの移行についてお話ししていただきました。

Snowflakeネイティブアプリケーションフレームワークの紹介

データクラウドで最も簡単にアプリケーションを構築、配布、使用できる方法、Snowflakeネイティブアプリケーションフレームワークについてご紹介します。

AIの転換点:金融リーダーが2025年に向けて知っておくべきこと

金融業界のリーダーが2025年にイノベーション、ROI、コンプライアンスのバランスを取りながらAIを活用するための方法、金融サービスにおけるAIの役割と主な予測について解説します。

Subscribe to our blog newsletter

Get the best, coolest and latest delivered to your inbox each week

Where Data Does More

  • 30日間無料トライアル
  • クレジットカード不要
  • いつでもキャンセル