주요 컨텐츠로 이동

선언적 파이프라인을 Apache Spark™ 오픈 소스 프로젝트에 도입

데이터 변환을 위한 실전 경험을 통해 검증된 오픈 표준

Bringing Declarative Pipelines to the Apache Spark™ Open Source Project

발행일: 2025년 6월 12일

오픈 소스Less than a minute

Summary

  • Databricks는 검증된 선언적 API인 Declarative Pipelines를 Apache Spark™에 기증합니다. Declarative Pipelines는 더 적은 작업으로 강력한 데이터 파이프라인을 구축할 수 있게 해줍니다.
  • 이 표준은 일괄 처리 및 스트리밍 워크로드 전반에서 파이프라인 개발을 간소화합니다.
  • 수년간의 실제 경험을 통해 일괄 처리 및 스트리밍 파이프라인 모두를 위한 유연한 Spark 기본 접근 방식이 만들어졌습니다.

Apache Spark™는 빅 데이터 처리의 사실상 엔진이 되었으며, 세계에서 가장 큰 조직의 워크로드를 지원하고 있습니다. 지난 10년 동안 Apache Spark는 강력한 범용 컴퓨팅 엔진에서 개방형 레이크하우스 아키텍처의 핵심 계층으로 발전해 왔습니다. Spark SQL, Structured Streaming, 개방형 테이블 형식 및 통합 거버넌스는 최신 데이터 플랫폼의 핵심 요소 역할을 합니다.

최근에 릴리스된 Apache Spark 4.0에서는 스트리밍, Python, SQL 및 반정형 데이터의 주요 발전과 함께 이러한 진화가 계속되고 있습니다. 릴리스에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

Apache Spark의 강력한 기반을 바탕으로 오픈 소스에 새로운 기능을 추가하게 되어 기쁩니다.

안정적이고 확장 가능한 데이터 파이프라인 구축을 위한 입증된 표준인 Declarative Pipelines를 Apache Spark에 기증합니다.

이 기여를 통해 Apache Spark의 선언적 기능이 개별 쿼리에서 전체 파이프라인으로 확장되어 사용자가 파이프라인이 수행해야 하는 작업을 정의하고 Apache Spark가 수행 방법을 파악할 수 있습니다. 이 디자인은 실제 Apache Spark 워크로드를 수년간 관찰한 결과를 토대로 가장 일반적인 패턴(일괄 처리 흐름과 스트리밍 흐름 모두 포함)을 다루는 선언적 API로 코딩합니다.

데이터 흐름 그래프
샘플 데이터 흐름 그래프

선언적 API를 사용하면 ETL이 더 간단하고 유지 관리하기 쉬워집니다.

실제 Spark 사용자와 수년간 협력하면서 프로덕션 파이프라인을 구축할 때 다음과 같은 일반적인 문제가 발생하는 것을 확인했습니다.

  • 증분 수집을 처리하거나 데이터 세트를 구체화할 시점을 결정하기 위해 "글루 코드"로 파이프라인을 연결하는 데 너무 많은 시간을 소비합니다. 이는 모든 팀이 핵심 비즈니스 로직에 집중하는 대신 유지 관리하게 되는 차별화되지 않은 과중한 작업입니다.
  • 팀 간에 동일한 패턴을 재구현하여 불일치 및 운영 오버헤드가 발생합니다.
  • 규모에 따른 테스트, 계보, CI/CD 및 모니터링을 위한 표준화된 프레임워크가 부족합니다.

Databricks에서는 일반적인 엔지니어링 모범 사례를 DLT라는 제품으로 코딩하여 이러한 문제를 해결하기 시작했습니다. DLT는 선언적 접근 방식을 취했습니다. 모든 로직을 직접 연결하는 대신 테이블의 최종 상태를 지정하면 엔진에서 종속성 매핑, 오류 처리, 검사점 설정, 오류 및 재시도와 같은 작업을 처리합니다.

그 결과 특히 복잡한 프로덕션 파이프라인을 관리하는 팀의 생산성, 안정성 및 유지 관리성이 크게 향상되었습니다.

DLT를 출시한 이후 많은 것을 배웠습니다.

선언적 접근 방식이 큰 영향을 미칠 수 있는 부분과 팀에 더 많은 유연성과 제어 기능이 필요한 부분을 확인했습니다. 복잡한 로직과 스트리밍 오케스트레이션을 자동화하는 가치와 이식성 및 개발자 자유를 보장하기 위해 개방형 Spark API를 기반으로 구축하는 중요성을 확인했습니다.

이러한 경험을 바탕으로 선언적 파이프라인 개발을 위한 최고 수준의 오픈 소스 Spark 기본 프레임워크라는 새로운 방향을 설정했습니다.

쿼리에서 엔드투엔드 파이프라인으로: Spark의 선언적 진화의 다음 단계

Apache Spark SQL은 쿼리 실행을 선언적으로 만들었습니다. 개발자는 하위 수준 RDD 코드로 조인 및 집계를 구현하는 대신 SQL을 작성하여 원하는 결과를 설명하기만 하면 Spark에서 나머지를 처리했습니다.

Spark Declarative Pipelines는 이러한 기반을 토대로 한 단계 더 나아가 선언적 모델을 개별 쿼리에서 여러 테이블에 걸쳐 있는 전체 파이프라인으로 확장합니다. 이제 개발자는 데이터 세트가 존재해야 하는 항목과 파생 방법을 정의할 수 있으며 Spark는 최적의 실행 계획을 결정하고 종속성을 관리하며 증분 처리를 자동으로 처리합니다.

실행 중인 Spark Declarative Pipelines
실행 중인 Spark Declarative Pipelines

개방성과 구성 가능성을 염두에 두고 구축된 Spark Declarative Pipelines는 다음을 제공합니다.

  • 테이블 및 변환 정의를 위한 선언적 API
  • 일괄 처리 및 스트리밍 데이터 흐름 모두에 대한 기본 지원
  • 자동 종속성 추적, 실행 순서 지정 및 백필 처리를 통한 데이터 인식 오케스트레이션
  • 스트리밍 데이터를 위한 자동 검사점 설정, 재시도 및 증분 처리
  • SQL 및 Python 모두 지원
  • 기본 Spark 계획에 대한 전체 액세스를 통한 실행 투명성

그리고 가장 중요한 것은 래퍼나 블랙 박스가 없는 Apache Spark라는 것입니다.

기술 가이드 eBook

ETL 시작하기

새로운 표준, 이제 공개

이 기여는 Apache Spark, Delta Lake 및 더 광범위한 개방형 데이터 커뮤니티에서 수년간의 작업을 나타냅니다. DLT 구축에서 배운 내용에서 영감을 얻었지만 더 유연하고 확장 가능하며 완전한 오픈 소스로 설계되었습니다.

그리고 이제 시작일 뿐입니다. 전체 Apache Spark 에코시스템이 자체 플랫폼에서 파이프라인을 오케스트레이션하든, 도메인별 추상화를 구축하든, Spark 자체에 직접 기여하든, 이를 기반으로 구축할 수 있는 공통 계층으로 기여하고 있습니다. 이 프레임워크는 여러분을 지원하기 위해 여기에 있습니다.

"선언적 파이프라인은 최신 데이터 엔지니어링의 복잡성을 간단하고 직관적인 프로그래밍 모델로 숨깁니다. 엔지니어링 관리자로서 저는 엔지니어가 비즈니스에 가장 중요한 것에 집중할 수 있다는 사실이 마음에 듭니다. 이러한 수준의 혁신이 이제 오픈 소스로 제공되어 더 많은 팀이 액세스할 수 있게 된 것을 보니 기쁩니다." — Jian (Miracle) Zhou, Navy Federal Credit Union 수석 엔지니어링 관리자

Navy Federal Credit Union

"84.51에서는 특히 더 개방적이고 유연한 도구로 전환함에 따라 데이터 파이프라인을 더 쉽게 구축하고 유지 관리할 수 있는 방법을 항상 찾고 있습니다. 선언적 접근 방식은 관리해야 하는 코드의 양을 줄이는 데 큰 도움이 되었으며 별도의 시스템을 연결하지 않고도 일괄 처리와 스트리밍을 모두 더 쉽게 지원할 수 있게 되었습니다. 이 프레임워크를 Spark Declarative Pipelines로 오픈 소싱하는 것은 Spark 커뮤니티에 큰 도움이 됩니다." — Brad Turnbaugh, 84.51° 수석 데이터 엔지니어

8451

다음 단계

Apache Spark 설명서에서 자세한 내용을 계속 확인하세요. 그동안 제안에 대한 Jira커뮤니티 토론을 검토할 수 있습니다.

오늘날 Apache Spark로 파이프라인을 구축하는 경우 선언적 모델을 살펴보시기 바랍니다. 저희의 목표는 모든 사람을 위해 파이프라인 개발을 더 간단하고 안정적이며 협업적으로 만드는 것입니다.

레이크하우스는 단순한 개방형 스토리지만을 의미하지 않습니다. 개방형 형식, 개방형 엔진, 그리고 이제 그 위에 구축하기 위한 개방형 패턴을 의미합니다.

선언적 파이프라인이 Apache Spark 개발의 새로운 표준이 될 것이라고 믿습니다. 그리고 커뮤니티와 함께 공개적으로 미래를 만들어나가게 되어 기쁩니다.

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요