dbt seeds

Средний уровень dbt

Mike Metzger

Data Engineer

Что такое dbt seeds?

  • CSV-файлы для загрузки в хранилище данных
  • Как правило, редко изменяемые данные
    • Список стран
    • Список почтовых индексов
  • НЕ предназначены для сырых данных

Seeds

1 Фото: Maddi Bazzocco, 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 Почтовые индексы предоставлены через 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...