Files
dbt-f2dq/macros/samples/internal_model_template.sql
M7XBeastandCursor ff096b51b5 Initial publish of dbt_f2dq (f2dq) package v0.12.1.
Clean package repo for Gitea installs via packages.yml git URL.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-11 17:37:40 +03:00

54 lines
1.8 KiB
SQL

{%- macro order_by_if_time_filter(time_filter) -%}
{%- if time_filter is not none -%}
order by {{ time_filter }} desc
{%- endif -%}
{%- endmacro -%}
{% macro f2dq_last_table_samples() %}
{{ f2dq.generate_depends(['f2dq_selected', 'f2dq_monitored', 'f2dq_columns', 'f2dq_run_started_at', 'f2dq_last_table_samples_part']) }}
{{
config(
materialized='table',
)
}}
{% set store_samples = f2dq.f2dq_var('store_table_samples', false) %}
{% if not f2dq.in_compile() and store_samples is sameas true %}
{%- set tables = run_query(f2dq.get_tables()) %}
{% set samples_list = [] %}
{%- for sample_table in tables %}
{% set model = get_model_config(sample_table) %}
{% set columns_to_sample = [] %}
{% for key, value in model.columns_info.items() | sort %}
{% if value.data_type in ['numeric', 'text'] %}
{% do columns_to_sample.append(key) %}
{% endif %}
{% endfor %}
{% set samples_query %}
select {{ print_list(columns_to_sample)}} from {{ model.table_name }}
{{ order_by_if_time_filter(model.time_filter) }}
limit 10
{% endset %}
{% set samples = f2dq.agate_to_list(run_query(samples_query)) %}
{% do samples_list.append({
'table_name': model.model_name,
'sample_data': samples,
}) %}
{% endfor %}
{% do f2dq.insert_list_to_table(
ref('f2dq_last_table_samples_part'),
samples_list,
['table_name', 'sample_data']
) %}
{% endif %}
{{ f2dq.empty_last_table_samples() }}
{% endmacro %}