-- 특정 테이블의 전체 downstream 재귀 탐색 (3단계까지)
WITH RECURSIVE downstream AS (
-- 1단계: 직접 downstream
SELECT
source_table_full_name,
target_table_full_name,
target_type,
1 AS depth
FROM system.lineage.table_lineage
WHERE source_table_full_name = 'production.ecommerce.bronze_orders'
UNION ALL
-- 2~3단계: 간접 downstream
SELECT
d.target_table_full_name AS source_table_full_name,
l.target_table_full_name,
l.target_type,
d.depth + 1 AS depth
FROM downstream d
JOIN system.lineage.table_lineage l
ON d.target_table_full_name = l.source_table_full_name
WHERE d.depth < 3
)
SELECT DISTINCT
source_table_full_name,
target_table_full_name,
target_type,
depth
FROM downstream
ORDER BY depth, target_table_full_name;