{{ node.operation }}
{% if node.is_anomaly %}
{% if node.is_slow %}
π’ Slow
{% endif %}
{% if node.has_row_anomaly %}
π Row Ξ
{% endif %}
{% endif %}
{% if node.changed_from_last_success %}
Ξ {{ node.changes_detected|join(', ') }}
{% endif %}
{% if node.runbook_url and node.status == 'failed' %}
Troubleshooting guide β
{% endif %}
{% if node.rows_in is not none %}
π₯ {{ "{:,}".format(node.rows_in) }}
{% endif %}
{% if node.rows_written is not none %}
π€ {{ "{:,}".format(node.rows_written) }}{% if node.rows_in is not none and node.rows_written == 0 and node.rows_in > 0 %} (no changes){% endif %}
{% elif node.rows_out is not none %}
{{ "{:,}".format(node.rows_out) }} rows
{% endif %}
{% if node.rows_change is not none and node.rows_change != 0 %}
{% if node.rows_change > 0 %}+{% endif %}{{ "{:,}".format(node.rows_change) }}
{% endif %}
{{ "%.4f"|format(node.duration) }}s
{% if node.duration_history and node.duration_history|length > 1 %}
{% endif %}
{% if node.executed_sql %}
{% endif %}
{% if node.sample_data or node.sample_in or node.data_diff %}
{% endif %}
{% if node.config_snapshot %}
{% endif %}
{% if node.explanation %}
βΌπ Transformation Explanation
{{ node.explanation | markdown | safe }}
{% endif %}
{% if node.column_drop_warning %}
β οΈ{{ node.column_drop_warning }}
{% endif %}
{% if node.validation_warnings %}
Validation Warnings:
{% for warning in node.validation_warnings %}
{{ warning }}
{% endfor %}
{% endif %}
{% if node.error_message %}
Error: {{ node.error_type }}
{{ node.error_message }}
{% if node.error_traceback_cleaned %}
Show Traceback (Cleaned)
{{ node.error_traceback_cleaned }}
{% endif %}
{% if node.error_traceback %}
Show Full Traceback (Raw)
{% for col_name, stats in node.column_statistics.items() %}
{{ col_name }}
{{ stats.min if stats.min is not none else '-' }}
{{ stats.max if stats.max is not none else '-' }}
{{ "%.2f"|format(stats.mean) if stats.mean is not none else '-' }}
{{ "%.2f"|format(stats.stddev) if stats.stddev is not none else '-' }}
{% endfor %}
{% endif %}
{% if node.delta_info %}
Delta Lake Write
v{{ node.delta_info.version }}
Operation
{{ node.delta_info.operation }}
Timestamp
{{ node.delta_info.timestamp }}
{% if node.delta_info.operation_metrics %}
{% set metrics = node.delta_info.operation_metrics %}
{% set inserted = metrics.numTargetRowsInserted or metrics.numOutputRows or metrics.num_added_rows %}
{% set updated = metrics.numTargetRowsUpdated or metrics.num_updated_rows %}
{% set deleted = metrics.numTargetRowsDeleted or metrics.num_deleted_rows %}
{% set files = metrics.numAddedFiles or metrics.numFilesAdded or metrics.num_added_files %}
{% if inserted %}
Rows Inserted
+{{ inserted }}
{% endif %}
{% if updated %}
Rows Updated
~{{ updated }}
{% endif %}
{% if deleted %}
Rows Deleted
-{{ deleted }}
{% endif %}
{% if not inserted and not updated and not deleted %}
{% for sql in node.executed_sql %}
Statement #{{ loop.index }}
{% if sql|length > 100 %}
- {{ sql[:50]|replace('\n', ' ') }}...
{% endif %}
{{ sql }}
{% endfor %}
{% if node.sql_hash %}
SQL Hash:{{ node.sql_hash }}
{% endif %}
{% endif %}
{% if node.sample_data or node.sample_in or node.data_diff %}
{% if node.data_diff %}
π Changes vs Previous Version
{% if node.delta_info and node.delta_info.read_version is not none %}
(v{{ node.delta_info.version }} vs v{{ node.delta_info.version - 1 }})
{% endif %}
Net Change: {{ node.data_diff.rows_change }}
{% if node.data_diff.rows_added is defined and node.data_diff.rows_added is not none %}
Added: {{ node.data_diff.rows_added }}
{% endif %}
{% if node.data_diff.rows_updated is defined and node.data_diff.rows_updated is not none %}
Updated: {{ node.data_diff.rows_updated }}
{% endif %}
{% if node.data_diff.rows_removed is defined and node.data_diff.rows_removed is not none %}
Removed: {{ node.data_diff.rows_removed }}
{% endif %}
{% if node.data_diff.rows_added is not defined and node.data_diff.rows_updated is not defined and node.data_diff.rows_removed is not defined %}
(Enable deep diff for detailed breakdown)
{% endif %}
{% if node.data_diff.schema_previous is not none %}
π Schema Evolution
{% if not node.data_diff.schema_added and not node.data_diff.schema_removed %}