피드로 돌아가기
데이터 분석가가 직접 정의, 배포, 관리하는 뱅크샐러드 데이터 파이프라인
뱅크샐러드 기술블로그뱅크샐러드 기술블로그
Backend

데이터 분석가가 직접 정의, 배포, 관리하는 뱅크샐러드 데이터 파이프라인

뱅크샐러드가 datapipe 프레임워크를 자체 개발해 데이터 분석가가 직접 데이터 파이프라인을 배포·운영하도록 전환하며 연간 데이터 엔지니어 외 직군의 파이프라인 개발 사례 600건 달성

2023년 6월 5일12intermediate

Context

데이터 분석 요구사항이 증가하면서 Airflow 기반 파이프라인이 복잡해졌으나, 모든 파이프라인 개발·배포·운영을 데이터 엔지니어만 수행할 수 있었다. 데이터 사용자의 새로운 분석 요청마다 데이터 엔지니어와의 복잡한 협업 과정이 필요했고, 데이터 엔지니어링 팀이 점진적 병목이 되면서 신규 파이프라인 개발 요청 처리가 지연되었다.

Technical Solution

  • 메타데이터 추상화 계층 도입: MartTable 객체로 데이터베이스, 테이블명, DDL 경로, PySpark 작업 경로, 시작 날짜를 선언하고, 의존성을 메소드로 설정하여 데이터 엔지니어링 지식 없이도 파이프라인 정의 가능하도록 구성
  • PySparkOperator 구현: Airflow Operator로 PySpark 작업을 감싸서 작업 경로, 리소스(SparkPool.common().medium), 실행 파라미터만 입력받도록 단순화
  • Slack ChatOps 배포 워크플로우 통합: 기존 기술 조직 공통 배포 방식을 따르되, Airflow Scheduler에 DAG와 프로젝트 파일을 동기화하는 별도 메커니즘 구현
  • Fusion Auth 기반 접근 제어: Airflow의 AirflowSecurityManager를 Fusion Auth 백엔드로 구현하여 사용자별 DAG 조작 권한을 Role 기반으로 관리
  • 데이터 퀄리티 속성 선언적 정의: DqCriteria를 메타데이터에 추가하여 fail_conditions(적재 실패 조건)와 dq_metrics(모니터링 지표)를 코드로 관리하고 Slack 리포팅

Impact

  • 데이터 엔지니어 외 직군의 파이프라인 개발 사례가 연간 600건으로 증가 (이전 대비 6배 이상)
  • 데이터 퀄리티 설정으로 사용자 탈퇴 테이블 로직 오류로 인한 유저 인덱스 테이블의 중복 데이터 문제를 fail_conditions를 통해 사전 발견 및 차단

Key Takeaway

데이터 엔지니어링 복잡성을 프레임워크 내부에 숨기고 사용자 관심사(비즈니스 로직, 메타데이터 선언)만 노출하면, 기존 배포 체계와 인증 시스템을 활용하면서도 비엔지니어 직군의 자율적 운영을 가능하게 할 수 있다.


Airflow 기반 데이터 파이프라인을 운영하는 조직에서 선언적 메타데이터 계층(예: MartTable)을 도입하고 복잡한 Operator 구현을 내부화하면, 데이터 분석가가 SQL과 PySpark 로직에만 집중하면서 Slack ChatOps와 기존 인증 시스템과 통합된 자체 배포·권한 관리가 가능해진다.

원문 읽기