dbt seeds

dbt Tingkat Menengah

Mike Metzger

Data Engineer

Apa itu dbt seeds?

  • File CSV yang dimuat ke gudang data
  • Biasanya data yang jarang berubah
    • Daftar negara
    • Daftar kode pos
  • Bukan untuk data mentah

Seed

1 Foto oleh Maddi Bazzocco di Unsplash
dbt Tingkat Menengah

Mengapa?

  • Mudah dikelola
  • Mudah dipakai di berbagai skenario
  • Dapat dikendalikan versi
dbt Tingkat Menengah

Bagaimana seed didefinisikan?

  • Tambah file CSV ke direktori seeds
  • Pastikan header adalah baris pertama
  • Impor dengan perintah dbt seed
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 Kode pos disediakan melalui https://github.com/zauberware/postal-codes-json-xml-csv
dbt Tingkat Menengah

Konfigurasi lanjutan

  • Beberapa opsi
    • Skema mana?
    • Basis data apa?
    • Pengutipan kolom
    • Tipe data kolom
  • Dapat diterapkan ke seluruh proyek atau per seed
  • Tambahkan di dbt_project.yml atau seeds/properties.yml
dbt Tingkat Menengah

Mendefinisikan tipe data

  • Tipe data bergantung pada gudang data
  • Umumnya tersedia tipe umum
    • Integer
    • Varchar
    • dll.
  • Jika tidak didefinisikan, tipe diinferensi dari data
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
dbt Tingkat Menengah

Pengujian

  • Mendukung pengujian
  • Sama seperti model dan sumber
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
    columns:
      - name: zipcode
        tests:
          - unique
dbt Tingkat Menengah

Mengakses seed

  • Tersedia via perintah {{ ref() }}
  • Berperilaku seperti model setelah impor awal
select * from
  {{ ref('zipcodes') }}
dbt Tingkat Menengah

Ayo berlatih!

dbt Tingkat Menengah

Preparing Video For Download...