#개념
데이터 리니지(Data Lineage)는 데이터의 출처(origin), 이동 경로, 변환 과정, 최종 소비처를 끝에서 끝까지 추적하여 "이 숫자는 어디서 왔고 무엇을 거쳐 여기까지 왔는가"에 답하는 메타데이터 체계다. 데이터베이스 연구에서는 오래전부터 데이터 프로비넌스(Data Provenance)라는 이름으로 연구되어 왔으며, 질의 결과의 각 튜플이 어떤 입력 튜플로부터 유도되었는지를 설명하는 why-provenance, where-provenance, how-provenance 같은 형식 모델이 제안되었다.현대의 데이터 플랫폼에서 리니지는 보통 방향 그래프(Directed Graph)로 표현된다. 노드는 데이터셋(테이블, 파일, 토픽, 대시보드, 모델)과 이를 만들어 내는 작업(SQL 쿼리, Spark 잡, dbt 모델, 노트북)이며, 간선은 "작업이 데이터셋을 읽는다" 또는 "작업이 데이터셋을 쓴다"는 입출력 관계다.리니지는 적용 범위에 따라 수준이 나뉜다.리니지의 수준
- 테이블 수준 리니지(Table-level Lineage): 어떤 테이블이 어떤 테이블로부터 만들어졌는지를 보여 준다.
- 컬럼 수준 리니지(Column-level Lineage): 결과 테이블의 각 컬럼이 입력 테이블의 어떤 컬럼을 어떤 연산(복사, 집계, 조인 키, 표현식)으로 참조했는지를 추적한다. 예를 들어
SELECT user_id, SUM(amount) AS gmv FROM orders JOIN users USING (user_id) GROUP BY user_id에서gmv컬럼은orders.amount에서 집계로 유도되고,user_id는 두 테이블의 조인 키로 참조된다는 사실이 컬럼 수준 리니지에 기록된다. - 행 수준(row-level) 리니지: 더 세밀하게 특정 레코드가 어떤 입력 행에서 왔는지를 추적하지만, 저장 비용이 커서 금융 거래 추적처럼 꼭 필요한 영역에서만 쓰인다.
- SQL 파싱(SQL Parsing): 쿼리 문자열을 추상 구문 트리로 분석하여 FROM·JOIN 절의 입력 테이블과 INSERT·CREATE TABLE AS 절의 출력 테이블, SELECT 목록의 컬럼 참조 관계를 추출한다. 컬럼 수준 리니지를 얻으려면 각 테이블의 스키마를 알아야
SELECT *나 별칭이 가리키는 실제 컬럼을 풀어낼 수 있으므로, 파서는 보통 메타스토어의 스키마 정보와 결합되며, sqlglot, sqllineage 같은 오픈소스 파서가 이 역할을 한다. - 쿼리 로그(Query Log) 분석: 데이터 웨어하우스가 남기는 실행 이력(Snowflake의 ACCESS_HISTORY, BigQuery의 INFORMATION_SCHEMA.JOBS, Redshift의 STL 테이블 등)에서 실제로 실행된 쿼리와 읽고 쓴 객체를 추출하는 방식으로, 실행된 것만 기록되므로 가장 신뢰할 수 있는 운영 리니지를 제공한다.
- 오케스트레이터·프레임워크 메타데이터: Airflow, dbt, Spark, Flink 같은 실행 엔진에 리스너나 플러그인을 붙여 작업이 실행되는 순간 입출력 데이터셋을 보고하게 하는 방식이다. dbt는
ref()와source()함수로 모델 간 의존성을 선언하므로 manifest 파일에서 테이블 수준 리니지를 바로 얻을 수 있고, Spark는 쿼리 실행 계획(logical plan)을 리스너로 가로채 입출력 경로를 수집한다. - OpenLineage 표준: 이러한 수집기들이 공통 형식으로 이벤트를 보낼 수 있도록 등장한 표준이다.
- DataHub: LinkedIn에서 시작된 메타데이터 플랫폼으로, 푸시·풀 방식의 인제스천 커넥터와 SQL 파싱을 통해 테이블·컬럼 수준 리니지를 수집하고 OpenLineage 이벤트도 수신한다.
- Apache Atlas: Hadoop 생태계를 중심으로 Hive, Spark, Kafka의 리니지를 훅(hook)으로 수집하며 분류(classification) 태그를 리니지를 따라 전파하여 민감 데이터 거버넌스를 지원한다.
- Unity Catalog: Databricks의 통합 거버넌스 계층으로, 클러스터와 SQL 웨어하우스에서 실행되는 모든 쿼리의 테이블·컬럼 수준 리니지를 자동으로 캡처하여 노트북, 워크플로, 대시보드까지 연결하고 시스템 테이블로도 조회할 수 있게 한다.
- Marquez: OpenLineage의 참조 구현으로, 이벤트를 저장하고 그래프로 시각화하는 경량 메타데이터 서비스다.
#관련 용어
데이터 거버넌스
데이터의 품질·보안·접근 권한·규제 준수를 조직 차원에서 관리하는 체계로, 리니지는 그 핵심 메타데이터
데이터 파이프라인데이터를 수집·변환·적재하는 자동화된 처리 흐름으로, 리니지 그래프의 작업 노드를 구성하는 단위
ETL원천에서 데이터를 추출·변환·적재하는 과정으로, 각 단계의 입출력이 리니지 간선으로 기록된다
데이터 웨어하우스분석용 데이터를 통합 저장하는 시스템으로, 쿼리 로그와 메타스토어가 리니지 수집의 주요 원천이 된다
데이터 카탈로그조직의 데이터 자산과 메타데이터를 검색·관리하는 시스템으로, 리니지 그래프를 저장하고 시각화하는 통합 지점
MLOps데이터·특징·모델·배포로 이어지는 ML 리니지를 활용해 모델의 재현성과 감사 가능성을 확보하는 운영 체계
#직무 연관도
DAData Analyst높음
대시보드 지표가 어떤 원천 테이블과 변환 규칙에서 나왔는지 확인하고, 신뢰할 수 있는 데이터 원천을 찾아 분석의 정확성을 보증하는 데 필수적이다
DSData Scientist보통
학습 데이터와 특징의 출처를 추적하여 모델 재현성을 확보하고, 특징 값 이상이나 데이터 누수의 원인을 상류에서 진단하는 데 활용된다
DEData Engineer밀접
리니지 수집기 구축, 카탈로그 통합, 스키마 변경 영향 분석, 파이프라인 장애의 근본 원인 분석을 담당하는 데이터 엔지니어의 핵심 영역
#사용 사례
금융전자상거래인터넷 서비스의료통신제조
개요
데이터 리니지는 스키마 변경 영향 분석, 데이터 품질 사고의 근본 원인 추적, GDPR·금융 규제에 따른 개인정보 흐름 추적과 감사 대응, 미사용 데이터 자산 정리를 통한 비용 절감, 그리고 머신러닝 모델의 학습 데이터 출처 문서화와 재현성 확보에 활용된다.
사례전자상거래 기업에서 경영 대시보드의 일일 매출 지표가 전일 대비 30% 급감했을 때, 분석가가 카탈로그에서 해당 지표의 상류 리니지를 따라가 보니 매출 집계 테이블이 읽는 주문 테이블의 적재 잡이 원천 DB 스키마 변경으로 절반만 적재된 것을 10분 만에 찾아냈다. 반대로 데이터 엔지니어는 주문 테이블의
currency 컬럼을 삭제하기 전에 하류 리니지로 영향받는 12개 파이프라인과 3개 추천 모델 특징을 확인하고 담당 팀에 사전 공지했다.#참고 자료
#추천 포스트
© 2024 diki All rights reserved.