OpenLineage

OpenLineage는 데이터 리니지(Data Lineage) 및 메타데이터 수집을 표준화하기 위한 오픈소스 프레임워크 및 API 규격이다. 데이터 파이프라인 전반에서 데이터의 출처, 변환 과정, 이동 경로를 추적하여 데이터 거버넌스, 디버깅, 가시성을 확보하는 데 목적을 둔다.

핵심 개념

OpenLineage 데이터 모델은 다음 주요 엔티티를 기반으로 작동한다.

  • Dataset (데이터셋): 파이프라인에서 입력으로 읽히거나 출력으로 기록되는 논리적 데이터.
  • Job (작업): 데이터를 처리하고 변환하는 파이프라인 내의 작업 단위 (예: SQL 쿼리, 데이터브릭스 작업).
  • Run (실행): 특정 시점에 실행된 Job의 단일 인스턴스. 실행 상태(시작, 완료, 실패) 및 실행 시간을 기록한다.
  • Facet (패싯): 메타데이터를 확장하기 위한 모듈식 속성. 데이터 스키마, 데이터 품질 지표 등의 추가 정보를 각 엔티티에 첨부할 수 있다.

비교: OpenLineage와 Marquez

데이터 리니지 생태계에서 OpenLineage는 종종 해당 스펙의 참조 구현체인 Marquez와 함께 언급된다. 두 요소의 차이는 다음과 같다.

특성OpenLineageMarquez
정의데이터 리니지 수집 및 이벤트 발행을 위한 표준 API 규격OpenLineage 이벤트를 수신하여 저장하고 시각화하는 백엔드 서비스
핵심 역할데이터 메타데이터 추출(Integration) 및 표준 포맷(JSON) 정의메타데이터 중앙 저장소, 쿼리 제공, 웹 UI를 통한 리니지 그래프 시각화
구성 요소Apache Airflow, Apache Spark, Flink, dbt 등을 위한 클라이언트 라이브러리PostgreSQL(저장소), REST API(서버), 대시보드 UI
소속LF AI & Data FoundationLF AI & Data Foundation

작동 방식

  1. 데이터 파이프라인 도구(Apache Airflow, Apache Spark 등)에 OpenLineage 클라이언트를 통합한다.
  2. 파이프라인이 실행(Run)될 때, 클라이언트는 해당 파이프라인 내역을 OpenLineage 표준 규격에 맞춘 JSON 이벤트로 변환하여 생성한다.
  3. 생성된 이벤트는 HTTP 등의 프로토콜을 통해 Marquez나 다른 호환 가능한 백엔드 서버로 전송되어 저장된다.

출처(Sources)

  • OpenLineage Official Documentation (openlineage.io)
  • The OpenLineage Specification, OpenLineage GitHub Repository (github.com/OpenLineage)
  • LF AI & Data Foundation Projects (lfaidata.foundation/projects/openlineage)

Entities