dbt seeds

Середній рівень dbt

Mike Metzger

Data Engineer

Що таке dbt seeds?

  • Файли CSV для завантаження в сховище даних
  • Зазвичай рідко змінювані набори даних
    • Список країн
    • Список поштових індексів
  • НЕ для сирих даних

Насіння

1 Photo by Maddi Bazzocco on Unsplash
Середній рівень dbt

Навіщо?

  • Легко керувати
  • Зручно використовувати у різних сценаріях
  • Під контролем версій
Середній рівень dbt

Як визначаються seeds?

  • Додайте файл CSV до директорії seeds
  • Переконайтеся, що заголовок — у першому рядку
  • Імпортуйте командою dbt seed
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 Postal codes provided via https://github.com/zauberware/postal-codes-json-xml-csv
Середній рівень dbt

Додаткова конфігурація

  • Кілька параметрів
    • Яка схема?
    • Яка база даних?
    • Кавички для стовпців
    • Типи даних стовпців
  • Можна застосувати до всього проєкту або окремих seeds
  • Додаються в dbt_project.yml або seeds/properties.yml
Середній рівень dbt

Визначення типів даних

  • Доступні типи даних залежать від сховища даних
  • Типові — доступні
    • Integer
    • Varchar
    • тощо
  • Якщо тип не вказано, він визначається за даними
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
Середній рівень dbt

Тест

  • Підтримують тести
  • Як і моделі та джерела
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
    columns:
      - name: zipcode
        tests:
          - unique
Середній рівень dbt

Доступ до seeds

  • Доступні через команду {{ ref() }}
  • Після першого імпорту поводяться як модель
select * from
  {{ ref('zipcodes') }}
Середній рівень dbt

Давайте потренуємось!

Середній рівень dbt

Preparing Video For Download...