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

event_time

Доступно в треке релизов "Latest" dbt Cloud и dbt Core версии 1.9 и выше.

dbt_project.yml
models:
resource-path:
+event_time: my_time_field
models/properties.yml
models:
- name: model_name
config:
event_time: my_time_field
models/modelname.sql
{{ 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:

dbt_project.yml
models:
my_project:
user_sessions:
+event_time: session_start_time

Пример в файле свойств YAML:

models/properties.yml
models:
- name: user_sessions
config:
event_time: session_start_time

Пример в блоке конфигурации SQL модели:

models/user_sessions.sql
{{ config(
event_time='session_start_time'
) }}

Эта настройка устанавливает session_start_time как event_time для модели user_sessions.

0