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 для указанной таблицы источника.