{%- 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 %}