🌱

dbt seedでdelimiterが指定できるようになった!

2024/01/05に公開

嬉しい!

https://docs.getdbt.com/reference/resource-configs/delimiter#definition
dbt v1.7から、dbt seedのpropertyとしてdelimiterが指定できるようになりました。

コレまで、dbt seedは,カンマ区切りのcsvファイルのみ管理対象でしたが、これによりtab区切り、;区切り(何それ...)のファイルもseed管理できます。

https://github.com/dbt-labs/dbt-core/issues/3990

嬉しい!
https://docs.getdbt.com/reference/seed-configs
seedのconfigにdelimiterを付けてあげて下さい!

嬉しい!のでメモ

自分の環境だと特定のフォルダ内ファイルのみtsv, 他は全てcsvで管理していたのでdbt_project.ymlのseeds:が以下になっています。

dbt_project.yml
name: "dbt_project"
version: "1.0.0"
config-version: 2

model-paths: ["models"]
analysis-paths: ["analyses"]
test-paths: ["tests"]
seed-paths: ["seeds"]

...

seeds:
  seeds_files:
    +schema: seeds
    +delimiter: ","
    tsv_files:
      +delimiter: "\t"


留意事項

  1. ファイル拡張子は[.csv]固定

seeds/として管理できるのは拡張子が.csvのファイル限定になっている為、ファイルの中身がtab区切りでも|区切りでも拡張子は全て.csv(character-separated values)で配置する。
https://github.com/dbt-labs/dbt-core/blob/9f0bcf5666a2b2a754c60f6ece7cc04e9ec81b80/core/dbt/parser/read_files.py#L410-L414

コレ書いてる時(2024/01/05)まだ固定になっていると思うんだけど...もし新たな設定で拡張子変更できるようになっていたら知りたい。

  1. まだjsonschemaにdelimtierがないから怒られる
    https://github.com/dbt-labs/dbt-jsonschema/blob/main/schemas/1.7/dbt_project-1.7.json

不明な設定(画像内名称はsample)。

delimiterがないとかなり苦しかったので、出来て嬉しい!

Discussion