파이프라인 (Pipelines)
D.Hub의 파이프라인은 노드 기반 비주얼 편집기로 데이터 처리 워크플로우를 설계하고 실행하는 기능입니다. 코드와 데이터셋을 노드로 배치하고, 연결선으로 데이터 흐름을 정의하여 복잡한 데이터 처리 과정을 시각적으로 구성할 수 있습니다.
핵심 기능
파이프라인 모듈은 다음 기능을 제공합니다:
- 비주얼 워크플로우 편집: 드래그 앤 드롭으로 노드를 배치하고 연결하여 데이터 흐름을 설계합니다
- 다양한 노드 유형: Dataset 노드(Delta Lake, Kafka 등)와 Code 노드(Python, SQL)를 조합합니다
- 자동 실행 관리: 워크플로우 엔진을 통해 파이프라인을 배포하고, 스케줄링 및 모니터링을 수행합니다
- 실행 이력 추적: 배치 단위로 실행 기록을 관리하고, 스텝별 트레이스를 확인합니다
파이프라인 유형
D.Hub은 두 가지 유형의 파이프라인을 지원합니다:
| 유형 | 설명 | 실행 방식 |
|---|---|---|
| Batch | 일괄 데이터 처리를 위한 파이프라인 | Run/Stop 버튼으로 수동 실행, Cron 스케줄 자동 실행 |
| Event | 이벤트 기반 실시간 데이터 처리를 위한 파이프라인 | Register/Unregister로 이벤트 리스너 등록 |
info
Event 파이프라인에서는 스케줄 설정과 실행 이력 바(Run History Bar)가 표시되지 않습니다. 이벤트 수신 시 자동으로 처리됩니다.
파이프라인 목록 화면
파이프라인 목록 페이지(/pipelines)에서 생성된 파이프라인들을 관리합니다.
뷰 모드
| 뷰 | 설명 |
|---|---|
| 카드 뷰 | 파이프라인을 카드 형태로 표시하며, 최근 실행 상태를 시각적으로 확인 |
| 테이블 뷰 | 파이프라인을 목록 형태로 표시하며, 정렬 및 상세 정보를 한눈에 확인 |
상태별 필터
파이프라인을 상태별로 필터링하여 원하는 항목만 조회할 수 있습니다:
| 필터 | 설명 |
|---|---|
| All | 모든 파이프라인 표시 |
| Running | 현재 실행 중인 파이프라인 |
| Ready | 실행 완료 또는 대기 상태의 파이프라인 |
| Failed | 마지막 실행이 실패한 파이프라인 |
info
Event 파이프라인이 이벤트를 수신 대기 중일 때 Listening 상태로 표시됩니다. 스케줄이 등록된 파이프라인은 별도의 Schedule 배지로 표시됩니다.
아키텍처 개요
파이프라인은 편집부터 실행 결과 확인까지 다음과 같은 흐름으로 동작합니다:
구성 요소
| 구성 요소 | 역할 |
|---|---|
| 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 | 학습된 모델로 예측 수행 |
tip
파이프라인 설계 시 작은 단위로 나누어 테스트한 후 결합하면, 디버깅과 유지보수가 훨씬 쉬워집니다.
주요 화면
| 화면 | 경로 | 설명 |
|---|---|---|
| 파이프라인 목록 | /pipelines | 전체 파이프라인 조회, 생성, 삭제 |
| 워크플로우 편집기 | /pipelines/edit | 노드 기반 비주얼 편집 및 실행 |