Перейти к основному содержимому

Как задать типы столбцов?

Просто приведите столбец к нужному типу в вашей модели:

select
id,
created::timestamp as created
from some_other_table

Этот вопрос может возникнуть, если вы привыкли выполнять такие запросы:

create table dbt_alice.my_table
id integer,
created timestamp;

insert into dbt_alice.my_table (
select id, created from some_other_table
)

В сравнении, dbt создаст эту с помощью оператора create table as:

create table dbt_alice.my_table as (
select id, created from some_other_table
)

Пока ваши запросы в модели возвращают столбцы с правильным типом, создаваемая таблица также будет иметь правильный тип столбцов.

Для определения дополнительных параметров столбцов:

  • Вместо того чтобы применять ограничения уникальности и not-null к вашим столбцам, используйте функциональность тестирования данных в dbt, чтобы проверить, что ваши утверждения о модели верны.
  • Вместо создания значений по умолчанию для столбца, используйте SQL для выражения значений по умолчанию (например, coalesce(updated_at, current_timestamp()) as updated_at)
  • В редких случаях, когда вам действительно нужно изменить столбец (например, кодирование на уровне столбца в Redshift), рассмотрите возможность реализации этого через post-hook.
0