From 0364c13c43983bdc0bd931f8cd33100ebfb3eee3 Mon Sep 17 00:00:00 2001 From: Diego Quintana Date: Thu, 24 Oct 2024 22:24:50 +0200 Subject: [PATCH] new: implement timescale and indexes on 5min incremental model (et/somenergia-jardiner!165) * new: add indexes on high selectivity columns trying things out to see if things go faster * chore: format post_hook as an array to allow more tasks after it * new: add timescale to incremental table with time interval of 30 days --- .../dset/int_dset_responses__values_incremental.sql | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/dbt_jardiner/models/jardiner/intermediate/dset/int_dset_responses__values_incremental.sql b/dbt_jardiner/models/jardiner/intermediate/dset/int_dset_responses__values_incremental.sql index 55c0737..7e04716 100644 --- a/dbt_jardiner/models/jardiner/intermediate/dset/int_dset_responses__values_incremental.sql +++ b/dbt_jardiner/models/jardiner/intermediate/dset/int_dset_responses__values_incremental.sql @@ -4,7 +4,18 @@ on_schema_change="sync_all_columns", incremental_strategy = 'delete+insert', unique_key = ['ts', 'signal_uuid'], - incremental_predicates = ["int_dset_responses__values_incremental.ts > now() - interval '2 days'"] + incremental_predicates = ["int_dset_responses__values_incremental.ts > now() - interval '2 days'"], + post_hook=[ + "SELECT create_hypertable( + relation => '{{ this }}', + migrate_data => true, + time_column_name => 'ts', + chunk_time_interval => interval '30 days', + if_not_exists => true + )", + "CREATE INDEX IF NOT EXISTS idx_int_dset_responses__values_incremental_device_type__ts ON {{ this }} (ts DESC, device_type)", + "CREATE INDEX IF NOT EXISTS idx_int_dset_responses__values_incremental_metric_name__ts ON {{ this }} (ts DESC, metric_name)", + ] ) }}