파이프라인 (Pipelines)
D.Hub의 파이프라인은 노드 기반 비주얼 편집기로 데이터 처리 워크플로우를 설계하고 실행하는 기능입니다. 코드와 데이터셋을 노드로 배치하고, 연결선으로 데이터 흐름을 정의하여 복잡한 데이터 처리 과정을 시각적으로 구성할 수 있습니다.
핵심 기능
파이프라인 모듈은 다음 기능을 제공합니다:
- 비주얼 워크플로우 편집: 드래그 앤 드롭으로 노드를 배치하고 연결하여 데이터 흐름을 설계합니다
- 다양한 노드 유형: Dataset 노드(Delta Lake, Kafka 등)와 Code 노드(Python, SQL)를 조합합니다
- 자동 실행 관리: 워크플로우 엔진을 통해 파이프라인을 배포하고, 스케줄링 및 모니터링을 수행합니다
- 실행 이력 추적: 배치 단위로 실행 기록을 관리하고, 스텝별 트레이스를 확인합니다
파이프라인 목록 화면
파이프라인 목록 페이지(/pipelines)에서 생성된 파이프라인들을 관리합니다.
뷰 모드
| 뷰 | 설명 |
|---|---|
| 카드 뷰 | 파이프라인을 카드 형태로 표시하며, 최근 실행 상태를 시각적으로 확인 |
| 테이블 뷰 | 파이프라인을 목록 형태로 표시하며, 정렬 및 상세 정보를 한눈에 확인 |
상태별 필터
파이프라인을 상태별로 필터링하여 원하는 항목만 조회할 수 있습니다:
| 상태 | 설명 |
|---|---|
| Idle | 실행 대기 중 (한 번도 실행되지 않았거나 실행 완료 후 대기) |
| Running | 현재 실행 중 |
| Scheduled | 스케줄이 등록되어 주기적으로 실행 예정 |
| Success | 마지막 실행이 성공 |
| Failed | 마지막 실행이 실패 |
아키텍처 개요
파이프라인은 편집부터 실행 결과 확인까지 다음과 같은 흐름으로 동작합니다:
구성 요소
| 구성 요소 | 역할 |
|---|---|
| Editor | 노드 기반 비주얼 편집기에서 워크플로우를 설계 |
| Workflow Engine | 저장된 파이프라인 정의를 워크플로우로 변환하여 실행 |
| Batch | 파이프라인의 개별 실행 단위로, 각 실행에 고유 ID가 부여 |
| Traces | 각 스텝의 실행 로그, 소요 시간, 입출력 정보를 기록 |
노드 타입
파이프라인은 두 가지 핵심 노드 타입으로 구성됩니다:
Dataset Node (입력/출력)
데이터의 소스(Source) 또는 싱크(Sink) 역할을 합니다.
| 타입 | 설명 |
|---|---|
| Delta Lake | Delta Lake 테이블을 읽거나 쓰는 배치 데이터 처리 |
| Kafka | Kafka 토픽을 통한 실시간 스트리밍 데이터 연동 |
| DDS | DDS 인터페이스를 통한 실시간 분산 시스템 연동 |
| REST API | 외부 HTTP 엔드포인트 호출 |
Code Node (처리 로직)
입력 데이터를 변환·처리하는 로직을 수행합니다.
| 타입 | 용도 |
|---|---|
| Python | 범용 데이터 처리, ML 모델 적용, 외부 API 호출 |
| SQL | 데이터 변환, 집계, 조인, 필터링 |
기본 파이프라인 패턴
가장 기본적인 파이프라인 구성은 입력 → 처리 → 출력 패턴입니다:
일반적인 사용 사례
| 패턴 | 입력 | 처리 | 출력 | 설명 |
|---|---|---|---|---|
| ETL | Delta Lake | Python/SQL | Delta Lake | 데이터 추출·변환·적재 |
| 실시간 변환 | Kafka | Python | Kafka | 스트리밍 데이터 실시간 처리 |
| 집계 보고 | Delta Lake | SQL | Delta Lake | 일별/월별 통계 집계 |
| ML 추론 | Delta Lake | Python | Delta Lake | 학습된 모델로 예측 수행 |
팁
파이프라인 설계 시 작은 단위로 나누어 테스트한 후 결합하면, 디버깅과 유지보수가 훨씬 쉬워집니다.
주요 화면
| 화면 | 경로 | 설명 |
|---|---|---|
| 파이프라인 목록 | /pipelines | 전체 파이프라인 조회, 생성, 삭제 |
| 워크플로우 편집기 | /pipelines/edit | 노드 기반 비주얼 편집 및 실행 |