メインコンテンツまでスキップ

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

備考

プレビュー

この機能は パブリック プレビュー段階です。

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

概要

SQL フォーマットにより、クエリの可読性と保守性が向上します。インデント、キーワードの大文字と小文字の区別、その他のスタイル設定を標準化することで、適切に書式設定されたクエリの理解、デバッグ、チームとの共有が容易になります。

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

SQL 書式設定の構成方法

個人用の SQL フォーマット設定オプションを設定するには、次のようにします。

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

設定ファイルの例

次の例は、有効な .dbsql-formatter-config.json 設定を示しています。

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

true, false

true

ブール式を別々の行に展開します。

CASEステートメントを展開する

shouldExpandCaseStatements

true, false

true

CASE 文の各句を独自の行に展開します。

INリストを展開する

shouldExpandInStatements

true, false

false

IN リストの項目を別々の行に展開します。

BETWEEN 条件の拡張

shouldExpandBetweenConditions

true, false

false

BETWEEN 条件を別々の行に展開します。

JOIN 条件の解除

shouldBreakOnJoinSections

true, false

true

JOIN 条件を別々の行に分割します。