dbt seeds. Пример использования (draft)
Это просто файлы csv, которые хранятся в вашем dbt-проекте. Используются для загрузки небольших по размеру данных. Навроде какого-нибудь маппинга типа значение айтема в старой учетной системе - значение айтема в новой учётной системе. Для заливки больших сырых данных не предназначены.
Я буду использовать csv файлы в учебных целях - для прохождения книжки "Unlocking dbt _ Design and Deploy Transformations in Your Cloud Data Warehouse".
Нашёл в сети интернет примеры, попробую залить оттуда данные в новом проекте.
dbt seed --select raw_products.csv
До того в файле проекта dbt_project.yml я указал, где должны будут материализовываться данные из сидов.
Смотрю, в БД и вижу, что получилось не совсем так, как я ожидал.
Таблица появилась, но не в схеме raw_csv, как хотелось. А в схеме с названием, полученным конкатенацией схемы public, указанной в profiles.yml и указанной схемой в файле проекта для seeds raw_csv.
Эту проблему я поправил переопределением макроса generate_schema_name (см ниже), и вот таблица появилась в нужном месте.
{% macro generate_schema_name(custom_schema_name, node) -%}
{%- set default_schema = target.schema -%} {%- if custom_schema_name is none -%}
{{ default_schema }}
{%- else -%}
{{ custom_schema_name }}
{%- endif -%}
{%- endmacro %}
Можно запустить все сиды (если не нужно ещё раз прогонять уже залитый raw_products.csv, то команда будет выглядеть так dbt seed --exclude raw_products.csv)
dbt seed
Проверяем, все 4 таблички на месте, в схеме raw_csv