🍣
sqlfluff ことはじめ
1. はじめに
リンター(sqlfluff)入れようと思いながら試せていなかったため、設定の備忘録を書きます。
2. 概要
sqlfluffの使用手順を書きます。
dbtと併用して使用していきます。
3. 手順
3-0. 前提
- 各バージョン一覧
- dbt core 1.4.5
- dbt-snowflake 1.4.2
- sqlfluff 2.1.0
3-1. インストール
pip install sqlfluff
3-2. sqlfluffファイルを配置
dbtのプロジェクト配下に.sqlfluff
を追加します。
sqlfile
のパラメータのサンプルは最後に載せておきます。
── dbt_project_name
├── analytics
├── dbt_packages
├── logs
├── models
...
├── .sqlfluff
...
3-3. sqlfluff を実行
下記コマンドを実行します。
sqlfluff lint .
sqlfluff fix .
<コマンド一覧>
Commands:
dialects Show the current dialects available.
fix Fix SQL files.
format Autoformat SQL files.
lint Lint SQL files via passing a list of files or using stdin.
parse Parse SQL files and just spit out the result.
render Render SQL files and just spit out the result.
rules Show the current rules in use.
version Show the version of sqlfluff.
3-4. 結果の確認
-
All Finished
となるとOKです
4. 感想
コマンド一つでリンターをかますことができるのは楽だと思いました。またルールにも柔軟性があり、各チームの好みに合わせて設定できる点も良いと思います。
5. 参考
- SQLFLUFF Rules Reference
- SQLFluffのルール一覧
- サンプルsqlfluffファイル
[sqlfluff]
nocolor = False
dialect = snowflake
output_line_length = 80
sql_file_exts = .sql
fix_even_unparsable = False
[sqlfluff:indentation]
indented_joins = True
indented_ctes = False
indented_using_on = True
template_blocks_indent = True
[sqlfluff:rules]
tab_space_size = 4
max_line_length = 120
indent_unit = space
allow_scalar = True
single_table_references = consistent
unquoted_identifiers_policy = all
Discussion