Windowsサーバーでdbt-coreを利用していると、文字コード問題にしばしば出会います。この組み合わせで利用しているユーザーは少ないらしくネットでもあまり見つけられませんでしたので、解決方法をまとめました。
dbtディレクトリ内のファイルに起因する文字コードエラー解決
Windowsでdbt内のファイルの文字コードと改行コードを統一します。Visual Studio Codeを利用しており、EditorConfigにて保存するファイルの文字コードと改行コードを統一します。
.editorconfig
charset = utf-8
end_of_line = lf
elementaryツールの文字コードエラー解決
elementaryをインストールし、elementaryのレポートを出力するedr report
を実行すると、文字コードでエラーになってしまいました。Pythonでelementaryを実行する際にpythonが利用する文字コードを指定することで、edr report
を実行できるようになります。
Visual Studio Codeのsetting.json
"terminal.integrated.env.windows": {
"PYTHONUTF8": "1"
},
dbt-osmosisツールの文字コードエラー解決
dbt-osmosisをインストールし、osmosisのコマンドを実行すると、日本語のdescriptionが文字化けしてしまいました。dbt-osmosis yaml commands create � character when propagating column descriptionにて対応されており、
$Env:DBT_OSMOSIS_ENCODING = 'utf-8'
で文字コードを指定することで、文字化けがなくなります。
Windowsとdbt-coreの組み合わせは、文字コードの罠がいたるところにあり、解決するのに苦労しました。無駄な苦労なのでしたくはないのですが、今後もwindowsでメンテする必要があるので、まだまだ出会いそうです。
コメント