Как стать автором
Обновить

Комментарии 2

Спасибо за статью.

У меня немного более верхнеуровневый вопрос, а как аналитики работают с хранилищем?
Я увидел, что у каждого своя песочница на три дня. А мне хочется вот прям сейчас посчитать данные на год назад, причем готовой продакшен витрины для этого нет, то как быть?

Или эта песочница только для каких-то регламентных моделей, которые будут крутиться на кроне, а запросы на SELECT можно делать к сырым данным за более долгий срок?

Привет, спасибо за вопрос.

Всё верно подмечено.

3 дня это дефолтные настройки для ускорения разработки и экономии ресурсов. Каждое подключение конфигурируется «тегом». Сейчас их всего 3 для удобства: dev (для каждого члена команды), ci (он же тест), prod. У аналитиков по дефолту dev в настройках подключения под личной учеткой. Это реализовано в макросе:
{#- prepare expression to filter rows to last 'development_days_of_data' (e.g. last 3 days) -#}
    {%- if target.name in ['dev', 'ci'] and last_n_days_of_data == true -%} 
        {%- set dev_rows_expression = ts_field ~ ' >= dateadd(day, ' ~ -var('development_days_of_data') ~ ', current_timestamp::date)' -%}
    {%- else -%} 
        {%- set dev_rows_expression = '1 = 1' -%}
    {%- endif -%}

Если есть цель построить витрины за бОльший период или оценить производительность – просто корректируется скомпилированный код вручную (убирается фильтр либо расширяется диапазон дат), запускается через dbeaver. Либо просто в локальной версии репо меняется значение переменной:
vars:
    development_days_of_data: 3
Зарегистрируйтесь на Хабре, чтобы оставить комментарий