주요 컨텐츠로 이동

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

데이터 변환을 위한 검증된 오픈 표준

Bringing Declarative Pipelines to the Apache Spark™ Open Source Project

Published: June 12, 2025

오픈 소스1분 이내 소요

Summary

  • 우리는 선언적 파이프라인 - 강력한 데이터 파이프라인을 작업량의 일부로 구축하는 검증된 선언적 API -를 Apache Spark™에 기부하고 있습니다.
  • 이 표준은 배치 및 스트리밍 작업 부하 간 파이프라인 개발을 단순화합니다.
  • 수년간의 실제 경험이 이 유연하고, Spark-native 접근법을 모양새 내었습니다. 이 접근법은 배치 및 스트리밍 파이프라인 모두에 적용됩니다.

Apache Spark™는 대규모 데이터 처리를 위한 사실상의 엔진이 되어, 세계에서 가장 큰 조직들의 작업을 지원하고 있습니다. 지난 10년 동안, 우리는 Apache Spark가 강력한 범용 컴퓨팅 엔진에서 오픈 레이크하우스 아키텍처 의 중요한 계층으로 발전하는 것을 보았습니다 - Spark SQL, 구조화된 스트리밍, 오픈 테이블 형식, 통합된 거버넌스가 현대 데이터 플랫폼의 기둥 역할을 합니다.

최근에 출시된 Apache Spark 4.0을 통해 스트리밍, Python, SQL, 반정형 데이터 등에서 주요한 발전이 이루어지며 이러한 발전이 계속되고 있습니다. 릴리스에 대해 더 자세히 알아보려면 여기를 클릭하세요.

아파치 스파크의 강력한 기반 위에, 우리는 오픈 소스에 새로운 추가를 발표하게 되어 기쁩니다:

우리는 선언형 파이프라인 - 신뢰할 수 있고, 확장 가능한 데이터 파이프라인을 구축하기 위한 검증된 표준 -을 Apache Spark에 기부하고 있습니다.

이 기여는 Apache Spark의 선언적 능력을 개별 쿼리에서 전체 파이프라인으로 확장시켜 사용자가 파이프라인이 어떤 작업을 수행해야 하는지 정의하고, Apache Spark가 어떻게 그 작업을 수행할지 파악하도록 합니다. 이 디자인은 실제 Apache Spark 작업 부하를 수년간 관찰하고, 배치 및 스트리밍 흐름을 포함한 가장 일반적인 패턴을 선언적 API에 코딩하는 것에서 착안했습니다.

데이터플로우 그래프
Sample Dataflow Graph

선언형 API는 ETL을 더 간단하고 유지 관리하기 쉽게 만듭니다

실제 Spark 사용자들과 몇 년 동안 작업하면서, 생산 파이프라인을 구축할 때 공통적으로 도전적인 문제들이 나타났습니다:

  • 증분적인 수집을 처리하거나 데이터셋을 언제 구체화할지 결정하기 위한 "접착 코드"로 파이프라인을 연결하는데 너무 많은 시간을 소비합니다. 이것은 모든 팀이 핵심 비즈니스 로직에 집중하는 대신 유지 관리하게 되는 무차별적인 무거운 작업입니다.
  • 팀 간에 동일한 패턴을 재구현하면 일관성이 떨어지고 운영 오버헤드가 발생합니다
  • 테스팅, 계보, CI/CD, 그리고 대규모 모니터링을 위한 표준화된 프레임워크가 부족합니다

Databricks에서는 DLT라는 제품으로 일반적인 엔지니어링 모범 사례를 코딩화함으로써 이러한 도전을 시작했습니다. DLT는 선언적 접근법을 취했습니다: 모든 로직을 직접 연결하는 대신 테이블의 최종 상태를 지정하고, 엔진이 종속성 매핑, 오류 처리, 체크포인트, 실패, 재시도 등을 처리합니다.

결과적으로 생산성, 신뢰성, 유지 보수성이 크게 향상되었으며, 특히 복잡한 생산 파이프라인을 관리하는 팀에게 특히 그렇습니다.

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

선언적 접근법이 큰 영향을 미칠 수 있는 곳과 팀이 더 많은 유연성과 제어를 필요로 하는 곳을 보았습니다. 우리는 복잡한 로직과 스트리밍 오케스트레이션의 자동화의 가치를 보았고, 이식성과 개발자의 자유를 보장하기 위해 오픈 스파크 API를 기반으로 구축하는 것의 중요성을 알게 되었습니다.

그 경험은 새로운 방향성을 제시했습니다: 선언적 파이프라인 개발을 위한 일류의, 오픈 소스, Spark-네이티브 프레임워크.

쿼리에서 종단간 파이프라인까지: 스파크의 선언적 진화의 다음 단계

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

Spark 선언적 파이프라인은 그 기반 위에 더욱 발전시켜 - 선언적 모델을 개별 쿼리에서 여러 테이블을 포괄하는 전체 파이프라인으로 확장합니다. 이제 개발자들은 어떤 데이터셋이 존재해야 하며 어떻게 파생되는지 정의할 수 있고, Spark는 최적의 실행 계획을 결정하고, 종속성을 관리하며, 증분 처리를 자동으로 처리합니다.

Spark 선언적 파이프라인의 작동
Spark Declarative Pipelines in action

개방성과 구성 가능성을 염두에 두고 구축된 Spark 선언적 파이프라인은 다음을 제공합니다:

  • 테이블과 변환을 정의하는 선언적 API
  • 배치 및 스트리밍 데이터 흐름에 대한 기본 지원
  • 자동 의존성 추적, 실행 순서, 백필 처리를 통한 데이터 인식 오케스트레이션
  • 스트리밍 데이터를 위한 자동 체크포인팅, 재시도, 그리고 증분 처리
  • SQL과 Python 모두 지원
  • 기본 Spark 계획에 대한 전체 접근을 통한 실행 투명성

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

새로운 표준, 이제 공개되었습니다

이 기여는 Apache Spark, Delta Lake, 그리고 더 넓은 오픈 데이터 커뮤니티에서 수년간의 작업을 대표합니다. 이것은 우리가 DLT를 구축하면서 배운 것에서 영감을 받았지만, 더 유연하고, 더 확장 가능하며, 완전히 오픈 소스로 설계되었습니다.

그리고 우리는 막 시작했습니다. 우리는 이것을 전체 Apache Spark 생태계가 구축할 수 있는 공통 레이어로 기여하고 있습니다 - 당신이 자신의 플랫폼에서 파이프라인을 조정하든, 도메인 특정 추상화를 구축하든, 또는 직접 Spark 자체에 기여하든 상관없습니다. 이 프레임워크는 여러분을 지원하기 위해 여기에 있습니다.

“선언형 파이프라인은 현대 데이터 엔지니어링의 복잡성을 간단하고 직관적인 프로그래밍 모델 아래에 숨깁니다. 엔지니어링 매니저로서, 내 엔지니어들이 비즈니스에 가장 중요한 것에 집중할 수 있다는 사실을 사랑합니다. 이제 이런 혁신 수준이 오픈 소스화되어 더 많은 팀에게 접근 가능해지는 것을 보는 것은 흥미롭습니다."
— Jian (Miracle) Zhou, 고급 엔지니어링 매니저, Navy Federal Credit Union

네이비 연방 신용 조합

“84.51에서는 항상 데이터 파이프라인을 더 쉽게 구축하고 유지할 수 있는 방법을 찾고 있습니다, 특히 우리가 더 열린 및 유연한 도구로 이동함에 따라. 선언형 접근법은 우리가 관리해야 하는 코드의 양을 줄이는 데 큰 도움이 되었으며, 별도의 시스템을 결합하지 않고도 배치와 스트리밍을 모두 지원하기가 더 쉬워졌습니다. 이 프레임워크를 Spark 선언적 파이프라인으로 오픈 소싱하는 것은 Spark 커뮤니티에게 큰 발걸음입니다.”
— 브래드 턴보, 수석 데이터 엔지니어, 84.51°

8451

다음은 무엇인가요?

Apache Spark 문서에서 더 많은 세부 사항을 기다려 주세요. 그 동안에는 제안에 대한 Jira커뮤니티 토론 을 검토할 수 있습니다.

만약 당신이 오늘 Apache Spark로 파이프라인을 구축하고 있다면, 선언형 모델을 탐색해 보시기 바랍니다. 우리의 목표는 파이프라인 개발을 더 간단하고, 더 신뢰할 수 있게, 그리고 모두에게 더 협업적으로 만드는 것입니다.

레이크하우스는 단순히 오픈 스토리지를 넘어서는 것입니다. 이것은 오픈 포맷, 오픈 엔진 - 그리고 이제 그 위에 구축하기 위한 오픈 패턴에 관한 것입니다.

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

 

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

게시물을 놓치지 마세요

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