What is data lineage? 데이터 계보 이는 데이터가 최초 소스에서 최종 목적지까지 이동하는 과정을 문서화한 것으로, 그 과정에서 거치는 모든 테이블, 뷰, 작업 및 변환을 포함합니다. 데이터 팀이 묻는 두 가지 질문에 대한 답을 제공합니다. “이 값은 어디에서 나온 것입니까?” (출처) 및 “하류에서 그것에 의존하는 것은 무엇일까요?” (영향 분석). SQL 기반 시스템에서는 일반적으로 데이터를 이동하고 재구성하는 SQL 코드를 파싱하여 데이터 계보를 자동으로 추출합니다.
이 페이지는 실무자를 위한 정의를 제공합니다. 데이터 계보가 실제로 기록하는 내용, 테이블 수준과 열 수준의 세분성 차이, 직접 관계와 간접 관계, 데이터 계보를 구축하는 세 가지 방법, 그리고 데이터 계보가 실제로 필요한 대상에 대해 설명합니다. 대부분의 데이터 웨어하우스에서 변환 로직이 SQL에 기반하기 때문에 예제는 SQL을 사용합니다.
글 대신 직접 혈통을 살펴보세요. SQL 쿼리를 붙여넣으세요. 무료 SQLFlow 계보 시각화 도구 그러면 몇 초 만에 대화형 열 수준 계보도를 얻을 수 있습니다.
계보 분석이 답하는 두 가지 질문: 기원과 영향 분석
데이터 계보는 양방향으로 읽을 수 있는 하나의 그래프입니다. 읽어보세요. 상류 그러면 출처를 파악할 수 있습니다. 보고서의 수치에서 시작하여 모든 뷰, 조인 및 계산을 거슬러 올라가 해당 수치가 파생된 원본 소스 열을 찾아낼 수 있습니다. 이는 감사자, 규제 기관 및 잘못된 수치를 디버깅하는 모든 사람이 관심을 갖는 방향입니다.
읽어보세요 하류 그러면 영향 분석이 가능해집니다. 이름을 바꾸거나, 형식을 변경하거나, 삭제하려는 열을 기준으로 영향을 받는 모든 테이블, 뷰, 프로시저 및 보고서를 열거할 수 있습니다. 스키마 변경이나 마이그레이션을 수행하기 전에 엔지니어들이 중요하게 생각하는 부분이 바로 이 영향 분석입니다. 그렇지 않으면 수천 개의 스크립트를 일일이 검색하고 결과를 기다리는 수밖에 없기 때문입니다.
이 용어들은 때때로 느슨하게 사용됩니다. 엄밀히 말하면, 기원 역추적입니다. 영향 분석 이는 순방향 추적이며, 데이터 계보 이는 두 가지 탐색 모두를 가능하게 하는 기본 종속성 그래프입니다.
구체적인 예
일반적인 창고 명세서를 생각해 보세요.
INSERT INTO monthly_revenue (month, total) SELECT DATE_TRUNC('month', o.order_date) AS month, SUM(o.amount) AS total FROM orders o JOIN customers c ON o.customer_id = c.id WHERE c.region = 'EMEA' GROUP BY DATE_TRUNC('month', o.order_date);
이 한 문장에서 추출된 계보는 이미 두 가지 뚜렷한 유형의 관계를 가지고 있습니다.
- 직계 혈통 — 데이터는 실제로 출력으로 흘러갑니다.
주문.주문_날짜사료월별 수익.월~을 통해날짜_트렁크, 그리고주문 금액사료월별 매출 총액~을 통해합집합. - 간접 혈통 — 출력 결과에는 나타나지 않지만 출력 결과를 형성하는 열:
고객 지역행을 필터링하고주문.고객_ID~에 합류했습니다고객 ID어떤 행이 일치하는지 결정합니다. 방식을 변경하세요.지역는 채워져 있고 모든 숫자는월별 수익변화는 비록 ~일지라도지역결과에는 전혀 나타나지 않습니다.
실제 파이프라인은 뷰, 저장 프로시저, dbt 모델을 통해 계층적으로 연결된 수천 개의 이와 같은 구문으로 구성됩니다. 사람이 이러한 구조를 머릿속에 모두 기억할 수 없기 때문에 코드 계보 추적 도구가 존재합니다. 다중 홉 및 저장 프로시저 계보 추적을 포함한 더 많은 예시는 저희 웹사이트를 참조하세요. 데이터 계보 예시 단계별 안내.
테이블 수준 계보 vs 열 수준 계보
계보는 두 가지 유형으로 나뉘며, 그 차이에 따라 실제로 계보를 활용할 수 있는 방법이 결정됩니다.
| 테이블 수준 계보 | 컬럼 레벨 계보 | |
|---|---|---|
| 기록되는 내용 | 월별 수익 다음으로 구성됩니다. 명령 그리고 고객 | 월별 매출 총액 = SUM(주문 수량)필터링됨 고객 지역에 합류했습니다. 고객 ID = ID |
| 영향 분석 | 근사치: 변경된 열이 전혀 영향을 미치지 않는 항목을 포함하여 테이블의 모든 항목에 플래그를 지정합니다. | 정확함: 해당 열이 실제로 공급하는 소비자만 표시합니다. |
| 감사 답변 | 이 보고서는 다음 표들을 사용합니다. | “이 수치는 바로 이러한 원본 데이터들을 바탕으로 이러한 변환 과정을 거쳐 계산된 것입니다.” |
| 일반적인 출처 | Job Orchestrator 메타데이터, 쿼리 로그 | SQL 자체를 파싱하는 것 |
테이블 수준의 계보는 수집 비용이 저렴하고 파이프라인의 초기 구조를 파악하는 데 유용합니다. 하지만 대부분의 실제 질문은 컬럼에 관한 질문입니다. 즉, 어떤 보고서가 이 정보를 사용하는지와 같은 질문입니다. 이메일규제 대상 수치에 영향을 미치는 소스 필드는 삭제하려는 열을 읽는 하위 단계의 모든 것입니다. 이를 위해서는 조인, 서브쿼리, CTE, 뷰 등을 통해 각 출력 열을 해결해야 합니다. 선택하다 * 확장: 로그 스크래핑이 아닌 파서 작업입니다. 작동 방식은 저희 가이드에서 자세히 다루고 있습니다. 컬럼 수준 데이터 계보.
데이터 계보 구축 방법: 세 가지 접근 방식
시중에 나와 있는 모든 계보 분석 도구는 세 가지 기술을 조합하여 사용합니다.
| 접근하다 | 작동 방식 | 강점 | 약점 |
|---|---|---|---|
| 정적 SQL 분석 | SQL 코드(뷰, 프로시저, ETL 스크립트, dbt 모델)를 파싱하고 구문 및 의미론으로부터 종속성 그래프를 도출합니다. | 컬럼 수준의 정밀도를 제공하며, 최근 실행되지 않은 코드 경로를 포함하여 모든 코드 경로를 포괄합니다. 데이터에 대한 접근이 필요하지 않습니다. | 각 SQL 방언을 진정으로 이해하는 파서가 필요합니다. SQL 이외의 변환(Python, Spark DataFrame)은 범위에서 제외됩니다. |
| 런타임/쿼리 로그 기반 | 실제로 실행된 내용을 관찰하세요. 데이터 웨어하우스 쿼리 기록, 오케스트레이터 이벤트(OpenLineage/Marquez 모델) 등을 확인할 수 있습니다. | SQL 이외의 작업을 포함한 다양한 작업의 실제 실행 기록을 캡처하여 "언제 무엇이 실행되었는지"에 대한 정답 데이터를 확보합니다. | 관찰 기간 동안 실행된 경로만 표시되며, 세부 정보는 테이블 수준인 경우가 많습니다. 로그에는 열 세부 정보를 확인하기 위해 구문 분석해야 하는 SQL이 여전히 포함되어 있습니다. |
| 수동 문서화 | 분석가들은 매핑 정보를 스프레드시트나 카탈로그에 수작업으로 기록합니다. | 구문 분석기가 추론할 수 없는 비즈니스 맥락 및 정의 | 작성된 지 하루만 지나도 진부해지고, 실제 규모로 확장할 경우 오류가 발생하기 쉽습니다. |
이것들은 경쟁 관계가 아니라 상호 보완적인 관계입니다. 런타임 계보는 어떤 작업이 실행되었는지 알려주고, 수동 큐레이션은 비즈니스 의미를 부여하며, 정적 SQL 분석은 열 수준의 논리 맵을 제공합니다. 대부분의 데이터 웨어하우스 변환 로직이 SQL이기 때문에 정적 분석이 가장 중요한 역할을 하며, 그 품질은 파서의 품질에 직결됩니다. Gudu SQLFlow takes this approach with 39 dialect-specific parsers (Snowflake, BigQuery, Oracle, SQL Server, Teradata, and 34 more), built on a SQL compiler front-end developed since the mid-2000s and validated against roughly 13,600 per-dialect test fixtures. That depth is what lets it handle the SQL that breaks simpler parsers: Oracle PL/SQL and T-SQL stored procedures, dynamic SQL assembled at runtime, temp tables, and view stacks.
데이터 계보는 무엇에 사용되나요?
실제로 계보 추적 기능이 도입되는 거의 모든 경우는 다음 네 가지 사용 사례로 설명됩니다.
- 규정 준수. BCBS 239는 은행이 원천 데이터에서 위험 수치를 집계하는 방법을 입증하도록 요구하며, GDPR의 데이터 매핑 의무는 개인 데이터가 어떤 시스템과 파생 테이블로 흐르는지 파악하도록 요구합니다. 컬럼 수준의 출처 정보는 "이러한 변환 과정을 통해 정확한 원천 필드에 데이터가 저장됨"이라는 두 가지 요구 사항을 모두 충족하는 결과물입니다.
- 데이터 거버넌스. 코드 계보를 수동으로 관리하면 카탈로그와 용어집이 최신 상태를 유지하지 못하게 됩니다. 자동으로 추출되는 계보는 코드 변경 시 종속성 맵을 최신 상태로 유지하고 카탈로그 플랫폼에 직접 제공할 수 있습니다. 예를 들어 SQLFlow는 DataHub, Microsoft Purview 및 OpenMetadata용 내보내기 어댑터를 제공합니다.
- 디버깅 및 근본 원인 분석. 대시보드에 잘못된 숫자가 표시되면, 리니지는 "이 테이블을 언급하는 모든 스크립트 검색"을 "이 특정 열부터 역추적"으로 변경합니다. 그러면 며칠이 아닌 몇 시간 만에 결과를 얻을 수 있습니다.
- 이주와 근대화. Oracle이나 Teradata에서 Snowflake, BigQuery 또는 Databricks로 마이그레이션하기 전에 종속성 그래프를 통해 어떤 객체를 어떤 순서로 함께 마이그레이션해야 하는지, 그리고 더 이상 읽지 않는 객체는 마이그레이션하는 대신 삭제해도 되는지 알 수 있습니다.
유용한 경험적 단서: 팀에서 스키마 변경으로 인해 어떤 문제가 발생할지 확신할 수 없어서 변경을 미룬 적이 있다면, 이미 데이터 계보가 필요한 것입니다. 다만 지금은 수동으로, 느리게, 그리고 오류를 포함하여 데이터를 계산하고 있을 뿐입니다.
자주 묻는 질문
데이터 계보란 간단히 말해서 무엇인가요?
이는 데이터의 출처와 이동 경로를 보여주는 지도와 같습니다. 즉, 각 테이블이나 보고서에 어떤 소스의 데이터가 사용되는지, 그리고 그 과정에서 어떤 변환이 일어나는지를 나타냅니다. 데이터의 의존성 그래프라고 생각하면 되며, 역추적(출처 확인)과 순추적(영향 분석)이 가능합니다.
데이터 계보와 데이터 출처의 차이점은 무엇인가요?
출처(Provenance)는 하나의 결과물에서 그 기원까지 거슬러 올라가는 역추적 경로입니다. 계보(Lineage)는 전체 의존성 그래프로, 한 방향으로는 출처 추적을, 다른 방향으로는 영향 분석을 지원합니다. 일상적인 사용에서 두 용어는 혼용되지만, 그래프와 순회라는 두 개념의 정확한 구분이 중요합니다.
간접 데이터 계보란 무엇인가요?
간접 계보는 결과에 나타나지 않으면서 결과에 영향을 미치는 열을 포함합니다. 즉, 다음과 같은 열이 사용됩니다. 어디 필터, 가입하다 조건 및 그룹화 기준 절(sections)은 모든 출력값을 변경하므로, 이를 무시하는 영향 분석은 불완전합니다. SQLFlow는 간접 계보를 별도의 전환 가능한 관계 유형으로 모델링하지만, 대부분의 계보 도구는 이를 구분하지 않습니다.
GDPR 또는 BCBS 239 규정 준수를 위해 데이터 계보 추적이 필수적인가요?
두 프레임워크 모두 "데이터 계보"를 필수 기술로 명시하지는 않지만, 데이터 계보가 제공하는 정보를 요구합니다. BCBS 239는 은행이 위험 데이터가 출처별로 어떻게 집계되는지 보여주도록 요구하고, GDPR 데이터 매핑은 개인 데이터의 흐름을 파악하도록 요구합니다. 컬럼 수준의 데이터 계보는 이러한 증거를 대규모로 생성하는 표준적인 방법입니다.
데이터 계보를 자동으로 생성하는 방법은 무엇인가요?
SQLFlow를 사용하면 정적 분석 계보 도구에 SQL 코드를 입력할 수 있습니다. SQLFlow를 사용하면 SQL 코드를 붙여넣거나, 파일을 업로드하거나, JDBC를 통해 데이터베이스에 연결하거나, dbt 매니페스트를 가져오거나, Snowflake 쿼리 기록 또는 Redshift 쿼리 로그를 수집할 수 있습니다. SQLFlow는 코드를 파싱하여 대화형 열 수준 다이어그램을 생성하고 JSON/CSV 내보내기 및 REST API를 제공합니다. 엔터프라이즈 환경에서는 100개 이상의 데이터베이스와 백만 개 이상의 열을 포함하는 대규모 환경을 일괄 스캔할 수 있습니다.
데이터 계보를 구축하려면 실제 데이터에 대한 접근 권한이 필요합니까?
정적 분석으로는 불가능합니다. SQL 파싱에는 코드와 선택적으로 스키마 메타데이터(테이블 및 열 정의)가 필요하며, 테이블의 행 자체는 필요하지 않습니다. SQLFlow 온프레미스 에디션은 SQL 텍스트 자체를 네트워크 내에 보관하므로 은행 및 기타 규제 환경에 적합합니다.
SQL에 숨겨진 계보를 확인하세요
무료 시각화 도구에 쿼리를 붙여넣으면 열 수준의 계보도를 즉시 얻을 수 있으며, 전체 내용을 살펴볼 수도 있습니다. SQL 데이터 계보 도구 전체 부동산 스캔용입니다.