Query snippets | Databricks on AWS [2022/6/1時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
最初から何かを作るよりも、以前の作業内容を複製し、編集する方が簡単です。これは特に一般的なJOIN
文や複雑なCASE
文では顕著となります。クエリーのリストが増加すると、どのクエリーが必要な文を含んでいるのかを思い出すことが難しくなります。
クエリースニペットは、オートコンプリートを用いて共有、軌道できるクエリーのセグメントです。
こちらがシンプルなスニペットの例となります。
JOIN organizations org ON org.id = ${1:table}.org_id
クエリースニペットの作成
- サイドバーの下部にある
Settingsをクリックし、User Settingsを選択します。
- Query Snippetsタブをクリックします。
- Create Query Snippetをクリックします。
- Triggerフィールドで、スニペットのトリガーを入力します。
- オプションで説明文を入力します。
- Snippetフィールドにスニペットを入力します。
- Createをクリックします。
挿入ポイント
${1:table}
はプレースホルダーテキストを伴う挿入ポイントです。Databricks SQLがスニペットをレンダリングする際、ドルマーク$
とカーリーブレース{}
は削除され、単語table
がリプレースメントとしてハイライトされます。
注意
実行時にデフォルト値を上書きする際にプレースホルダーテキストを使うことができます。
ドルマークとカーリーブレース${}
を用いて、整数値のタブ順序をラッピングすることで挿入ポイントを割り当てることができます。先頭にコロンがついているテキストプレースホルダーはオプションですが、スニペットに馴染みのないユーザーにとっては有用です。
Databricks SQLはスニペットをレンダリングする際、
AND (invoices.complete IS NULL OR invoices.complete <> '${2}')
AND (invoices.canceled IS NULL OR invoices.canceled <> '${1}')
AND (invoices.modified IS NULL OR invoices.modified_date <> '${0: this_date}')
テキスト挿入キャラットはクオートマーク''
の間の2行目にジャンプします。Tabを押すと、キャラットは最初の行にジャンプします。再度Tabを押すと、キャラットは3行目にジャンプし、希望する値を入力するために、this_date
がハイライトされます。
注意
ゼロの挿入ポイント${0}
は常にタブの順番の最後に来ます。
クエリースニペットの挿入
オートコンプリートを有効にしていると、クエリースニペットエディタで定義したトリガーの単語をタイプすることでSQLエディターからスニペットを呼び出すことができます。オートコンプリートはデータベースの他のキーワードと同じようにスニペットを提案します。
注意
オートコンプリートが無効になっていても、Ctrl + Spaceを押して、クエリースニペットをトリガーする単語を入力することでクエリースニペットを呼び出すことができます。これは、お使いのスキーマ(データベース)で5000トークンを超えた場合にも必要になります。
以下にスニペットのアイデアを示します。
- 頻繁に使う
JOIN
文 -
WITH
やCASE
のような複雑な句 - 条件付きフォーマット