OpenLineage
OpenLineage는 데이터 리니지(Data Lineage) 및 메타데이터 수집을 표준화하기 위한 오픈소스 프레임워크 및 API 규격이다. 데이터 파이프라인 전반에서 데이터의 출처, 변환 과정, 이동 경로를 추적하여 데이터 거버넌스, 디버깅, 가시성을 확보하는 데 목적을 둔다.
핵심 개념
OpenLineage 데이터 모델은 다음 주요 엔티티를 기반으로 작동한다.
- Dataset (데이터셋): 파이프라인에서 입력으로 읽히거나 출력으로 기록되는 논리적 데이터.
- Job (작업): 데이터를 처리하고 변환하는 파이프라인 내의 작업 단위 (예: SQL 쿼리, 데이터브릭스 작업).
- Run (실행): 특정 시점에 실행된 Job의 단일 인스턴스. 실행 상태(시작, 완료, 실패) 및 실행 시간을 기록한다.
- Facet (패싯): 메타데이터를 확장하기 위한 모듈식 속성. 데이터 스키마, 데이터 품질 지표 등의 추가 정보를 각 엔티티에 첨부할 수 있다.
비교: OpenLineage와 Marquez
데이터 리니지 생태계에서 OpenLineage는 종종 해당 스펙의 참조 구현체인 Marquez와 함께 언급된다. 두 요소의 차이는 다음과 같다.
| 특성 | OpenLineage | Marquez |
|---|---|---|
| 정의 | 데이터 리니지 수집 및 이벤트 발행을 위한 표준 API 규격 | OpenLineage 이벤트를 수신하여 저장하고 시각화하는 백엔드 서비스 |
| 핵심 역할 | 데이터 메타데이터 추출(Integration) 및 표준 포맷(JSON) 정의 | 메타데이터 중앙 저장소, 쿼리 제공, 웹 UI를 통한 리니지 그래프 시각화 |
| 구성 요소 | Apache Airflow, Apache Spark, Flink, dbt 등을 위한 클라이언트 라이브러리 | PostgreSQL(저장소), REST API(서버), 대시보드 UI |
| 소속 | LF AI & Data Foundation | LF AI & Data Foundation |
작동 방식
- 데이터 파이프라인 도구(Apache Airflow, Apache Spark 등)에 OpenLineage 클라이언트를 통합한다.
- 파이프라인이 실행(Run)될 때, 클라이언트는 해당 파이프라인 내역을 OpenLineage 표준 규격에 맞춘 JSON 이벤트로 변환하여 생성한다.
- 생성된 이벤트는 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)