Skip to content

Commit 7144273

Browse files
taha-azizttboogie
authored andcommitted
[387] Update grain of tvl_agg model and push down filter in int_tvl_trustlines
1 parent 2bc10ee commit 7144273

File tree

4 files changed

+53
-14
lines changed

4 files changed

+53
-14
lines changed

models/intermediate/tvl/int_tvl_trustlines.sql

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% set meta_config = {
22
"materialized": "incremental",
3-
"unique_key": ["day", "account_id", "asset_code", "asset_issuer"],
3+
"unique_key": ["day", "account_id", "asset_code", "asset_issuer", "asset_type"],
44
"tags": ["tvl"]
55
} %}
66

@@ -34,6 +34,7 @@ with
3434
, filter_trustlines as (
3535
select
3636
t.account_id
37+
, t.asset_type
3738
, t.asset_code
3839
, t.asset_issuer
3940
, t.selling_liabilities
@@ -49,28 +50,30 @@ with
4950
select
5051
d.day
5152
, t.account_id
53+
, t.asset_type
5254
, t.asset_code
5355
, t.asset_issuer
5456
, array_agg(t.selling_liabilities order by t.closed_at desc)[offset(0)] as tvl
5557
, array_agg(t.deleted order by t.closed_at desc)[offset(0)] as deleted
5658
from date_range as d
5759
inner join filter_trustlines as t
5860
on t.closed_at < timestamp(date_add(d.day, interval 1 day))
59-
where
60-
true
61-
and deleted = false
62-
group by 1, 2, 3, 4
61+
group by 1, 2, 3, 4, 5
6362
)
6463

6564
, daily_trustline_tvl as (
6665
select
6766
day
6867
, account_id
68+
, asset_type
6969
, asset_code
7070
, asset_issuer
7171
, sum(tvl) as trustlines_tvl
7272
from trustline_tvl_per_day
73-
group by 1, 2, 3, 4
73+
where
74+
true
75+
and deleted = false
76+
group by 1, 2, 3, 4, 5
7477
)
7578

7679
select *

models/intermediate/tvl/int_tvl_trustlines.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ models:
1818
date_column_name: "day"
1919
greater_than_equal_to: "2 day"
2020

21+
- name: asset_type
22+
description: '{{ doc("asset_type") }}'
23+
tests:
24+
- stellar_dbt_public.incremental_not_null:
25+
date_column_name: "day"
26+
greater_than_equal_to: "2 day"
27+
2128
- name: asset_code
2229
description: "The asset code of the TVL, this table only has non XLM tvl."
2330
tests:

models/marts/tvl/tvl_agg.sql

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% set meta_config = {
22
"materialized": "incremental",
3-
"unique_key": ["day"],
3+
"unique_key": ["day", "asset_code", "asset_issuer", "asset_type"],
44
"tags": ["tvl"]
55
} %}
66

@@ -14,28 +14,40 @@ with
1414
accounts_tvl as (
1515
select
1616
day
17+
, 'native' as asset_type
18+
, 'XLM' as asset_code
19+
, '' as asset_issuer
1720
, sum(accounts_tvl) as accounts_tvl
1821
from {{ ref('int_tvl_accounts') }}
19-
group by 1
22+
group by 1, 2, 3, 4
2023
)
2124

2225
, trustlines_tvl as (
2326
select
2427
day
28+
, asset_type
29+
, asset_code
30+
, asset_issuer
2531
, sum(trustlines_tvl) as trustlines_tvl
2632
from {{ ref('int_tvl_trustlines') }}
27-
group by 1
33+
group by 1, 2, 3, 4
2834
)
2935

3036
, combined as (
3137
select
32-
a.day
33-
, a.accounts_tvl
34-
, t.trustlines_tvl
35-
, a.accounts_tvl + t.trustlines_tvl as total_tvl
38+
coalesce(a.day, t.day) as day
39+
, coalesce(a.asset_type, t.asset_type) as asset_type
40+
, coalesce(a.asset_code, t.asset_code) as asset_code
41+
, coalesce(a.asset_issuer, t.asset_issuer) as asset_issuer
42+
, coalesce(a.accounts_tvl, 0) as accounts_tvl
43+
, coalesce(t.trustlines_tvl, 0) as trustlines_tvl
44+
, coalesce(a.accounts_tvl, 0) + coalesce(t.trustlines_tvl, 0) as total_tvl
3645
from accounts_tvl as a
37-
inner join trustlines_tvl as t
46+
full outer join trustlines_tvl as t
3847
on a.day = t.day
48+
and a.asset_type = t.asset_type
49+
and a.asset_code = t.asset_code
50+
and a.asset_issuer = t.asset_issuer
3951
)
4052

4153
select *

models/marts/tvl/tvl_agg.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,23 @@ models:
1111
date_column_name: "day"
1212
greater_than_equal_to: "2 day"
1313

14+
- name: asset_type
15+
description: '{{ doc("asset_type") }}'
16+
tests:
17+
- stellar_dbt_public.incremental_not_null:
18+
date_column_name: "day"
19+
greater_than_equal_to: "2 day"
20+
21+
- name: asset_code
22+
description: '{{ doc("asset_code") }}'
23+
tests:
24+
- stellar_dbt_public.incremental_not_null:
25+
date_column_name: "day"
26+
greater_than_equal_to: "2 day"
27+
28+
- name: asset_issuer
29+
description: '{{ doc("asset_issuer") }}'
30+
1431
- name: accounts_tvl
1532
description: '{{ doc("accounts_tvl") }}'
1633
tests:

0 commit comments

Comments
 (0)