次の方法で共有


カスタム形式の SQL ステートメント

重要

この機能はパブリック プレビュー段階にあります。

この記事では、Azure Databricks UI で SQL の自動書式設定オプションをカスタマイズする方法について説明します。

概要

SQL の書式設定により、クエリの読みやすさと保守性が向上します。 インデント、キーワードの大文字と小文字、およびその他のスタイル設定を標準化することで、適切な形式のクエリをチームで理解、デバッグ、共有しやすくなります。

Azure Databricks では、ワークスペースのホーム ディレクトリに保存された .dbsql-formatter-config.json ファイルを使用して、書式設定オプションを構成できます。 ファイルを保存すると、エディターまたは SQL ノートブックでコードを実行または書式設定するときに、ユーザー設定に基づいて SQL コードが自動的に書式設定されます。

SQL の書式設定を構成する方法

個人用 SQL 書式設定オプションを構成するには:

  1. サイドバーで、ワークスペース アイコン[ワークスペース] をクリックします。
  2. [ ファイル > 作成] をクリックします。
  3. そのファイルに .dbsql-formatter-config.json という名前を付けます。
  4. 必要な設定を JSON 形式のキーと値のペアとして追加します。 フォーマッタのオプションを参照してください
  5. 最新の書式設定を適用するには、ページを更新します。

構成ファイルの例

有効な .dbsql-formatter-config.json 構成の例を次に示します。

{
  "printWidth": 80,
  "indentationStyle": "spaces",
  "indentationWidth": 4,
  "keywordCasing": "uppercase",
  "shouldExpandExpressions": true
}

フォーマッタ オプション

次の表に、サポートされている構成オプションを示します。

選択肢 構成ファイル名 使用できる値 既定値 説明
印刷の幅 printWidth 任意の整数 >= 0 100 書式設定されたコードのターゲット行の幅を設定します。
インデント スタイル indentationStyle 'spaces''tabs' 'spaces' インデントにスペースまたはタブのどちらを使用するかを指定します。 設定した場合、 indentationWidth は無視されます。
インデントの幅 indentationWidth 0 ~ 99 の整数 2 indentationStyle'spaces' に設定されている場合に使用されるスペースの数。
キーワードの大文字と小文字の区別 keywordCasing 'uppercase''lowercase''none' 'none' SQL キーワードの書式設定を制御します。 'none' は大文字と小文字の区別を変更しません。
関数名の大文字と小文字の区別 functionNameCasing 'uppercase''lowercase''none' 'none' SQL 関数名の書式設定を制御します。 'none' は大文字と小文字の区別を変更しません。
コンマの配置 commaPosition 'beginning''end' 'end' リストにコンマを配置する場所を制御します。
ステートメント間の改行 numNewLinesBetweenStatements 0 ~ 99 の整数 1 ステートメント間に挿入された新しい行の数。
句間の改行 numNewLinesBetweenClauses 0 ~ 99 の整数 0 ステートメント内の句間に挿入された改行の数。
ブール式を展開する shouldExpandExpressions truefalse true ブール式を別々の行に展開します。
CASE ステートメントを展開する shouldExpandCaseStatements truefalse true CASE ステートメントの各句を独自の行に展開します。
IN リストを展開する shouldExpandInStatements truefalse false IN リスト内の項目を個別の行に展開します。
BETWEEN 条件を展開する shouldExpandBetweenConditions truefalse false BETWEEN 条件を別々の行に展開します。
JOIN条件を解除する shouldBreakOnJoinSections truefalse true JOIN条件を別々の行に分割します。