event_time
Доступно в треке релизов "Latest" dbt Cloud и dbt Core версии 1.9 и выше.
- Модели
- Сиды
- Снапшоты
- Источники
models:
resource-path:
+event_time: my_time_field
models:
- name: model_name
config:
event_time: my_time_field
{{ config(
event_time='my_time_field'
) }}
seeds:
resource-path:
+event_time: my_time_field
seeds:
- name: seed_name
config:
event_time: my_time_field
snapshots:
resource-path:
+event_time: my_time_field
sources:
resource-path:
+event_time: my_time_field
sources:
- name: source_name
config:
event_time: my_time_field
Определение
Установите event_time
в имя поля, которое представляет временную метку события — "в какое время произошла строка" — в отличие от даты загрузки события. Вы можете настроить event_time
для модели, сида или источника в вашем файле dbt_project.yml
, файле свойств YAML или блоке конфигурации.
Вот несколько примеров хороших и плохих столбцов event_time
:
-
✅ Хорошо:
account_created_at
— Это представляет конкретное время, когда была создана учетная запись, что делает его фиксированным событием во времени.session_began_at
— Это фиксирует точную временную метку, когда началась пользовательская сессия, которая не изменится и напрямую связана с событием.
-
❌ Плохо:
_fivetran_synced
— Это не время, когда произошло событие, это время, когда событие было загружено.last_updated_at
— Это не лучший вариант, так как он будет постоянно изменяться со временем.
event_time
требуется для инкрементальных микропакетов и настоятельно рекомендуется для сравнения изменений в расширенной CI в рабочих процессах CI/CD, где он обеспечивает правильное сравнение одного и того же временного среза данных между вашими средами CI и производства.
Примеры
- Модели
- Сиды
- Снапшоты
- Источники
Вот пример в файле dbt_project.yml
:
models:
my_project:
user_sessions:
+event_time: session_start_time
Пример в файле свойств YAML:
models:
- name: user_sessions
config:
event_time: session_start_time
Пример в блоке конфигурации SQL модели:
{{ config(
event_time='session_start_time'
) }}
Эта настройка устанавливает session_start_time
как event_time
для модели user_sessions
.
Вот пример в файле dbt_project.yml
:
seeds:
my_project:
my_seed:
+event_time: record_timestamp
Пример в файле свойств сида YAML:
seeds:
- name: my_seed
config:
event_time: record_timestamp
Эта настройка устанавливает record_timestamp
как event_time
для my_seed
.
Вот пример в файле dbt_project.yml
:
snapshots:
my_project:
my_snapshot:
+event_time: record_timestamp
Пример в файле свойств снапшота YAML:
snapshots:
- name: my_snapshot
config:
event_time: record_timestamp
Эта настройка устанавливает record_timestamp
как event_time
для my_snapshot
.
Вот пример файла свойств источника YAML:
sources:
- name: source_name
tables:
- name: table_name
config:
event_time: event_timestamp
Эта настройка устанавливает event_timestamp
как event_time
для указанной таблицы источника.