Apache Spark™는 대규모 데이터 처리를 위한 사실상의 엔진이 되어, 세계에서 가장 큰 조직들의 작업을 지원하고 있습니다. 지난 10년 동안, 우리는 Apache Spark가 강력한 범용 컴퓨팅 엔진에서 오픈 레이크하우스 아키텍처 의 중요한 계층으로 발전하는 것을 보았습니다 - Spark SQL, 구조화된 스트리밍, 오픈 테이블 형식, 통합된 거버넌스가 현대 데이터 플랫폼의 기둥 역할을 합니다.
최근에 출시된 Apache Spark 4.0을 통해 스트리밍, Python, SQL, 반정형 데이터 등에서 주요한 발전이 이루어지며 이러한 발전이 계속되고 있습니다. 릴리스에 대해 더 자세히 알아보려면 여기를 클릭하세요.
아파치 스파크의 강력한 기반 위에, 우리는 오픈 소스에 새로운 추가를 발표하게 되어 기쁩니다:
우리는 선언형 파이프라인 - 신뢰할 수 있고, 확장 가능한 데이터 파이프라인을 구축하기 위한 검증된 표준 -을 Apache Spark에 기부하고 있습니다.
이 기여는 Apache Spark의 선언적 능력을 개별 쿼리에서 전체 파이프라인으로 확장시켜 사용자가 파이프라인이 어떤 작업을 수행해야 하는지 정의하고, Apache Spark가 어떻게 그 작업을 수행할지 파악하도록 합니다. 이 디자인은 실제 Apache Spark 작업 부하를 수년간 관찰하고, 배치 및 스트리밍 흐름을 포함한 가장 일반적인 패턴을 선언적 API에 코딩하는 것에서 착안했습니다.
실제 Spark 사용자들과 몇 년 동안 작업하면서, 생산 파이프라인을 구축할 때 공통적으로 도전적인 문제들이 나타났습니다:
Databricks에서는 DLT라는 제품으로 일반적인 엔지니어링 모범 사례를 코딩화함으로써 이러한 도전을 시작했습니다. DLT는 선언적 접근법을 취했습니다: 모든 로직을 직접 연결하는 대신 테이블의 최종 상태를 지정하고, 엔진이 종속성 매핑, 오류 처리, 체크포인트, 실패, 재시도 등을 처리합니다.
결과적으로 생산성, 신뢰성, 유지 보수성이 크게 향상되었으며, 특히 복잡한 생산 파이프라인을 관리하는 팀에게 특히 그렇습니다.
DLT를 출시한 이후로 우리는 많은 것을 배웠습니다.
선언적 접근법이 큰 영향을 미칠 수 있는 곳과 팀이 더 많은 유연성과 제어를 필요로 하는 곳을 보았습니다. 우리는 복잡한 로직과 스트리밍 오케스트레이션의 자동화의 가치를 보았고, 이식성과 개발자의 자유를 보장하기 위해 오픈 스파크 API를 기반으로 구축하는 것의 중요성을 알게 되었습니다.
그 경험은 새로운 방향성을 제시했습니다: 선언적 파이프라인 개발을 위한 일류의, 오픈 소스, Spark-네이티브 프레임워크.
Apache Spark SQL은 쿼리 실행을 선언적으로 만들었습니다: 개발자들은 낮은 수준의 RDD 코드로 조인과 집계를 구현하는 대신, 원하는 결과를 설명하는 SQL을 작성하기만 하면 Spark가 나머지를 처리했습니다.
Spark 선언적 파이프라인은 그 기반 위에 더욱 발전시켜 - 선언적 모델을 개별 쿼리에서 여러 테이블을 포괄하는 전체 파이프라인으로 확장합니다. 이제 개발자들은 어떤 데이터셋이 존재해야 하며 어떻게 파생되는지 정의할 수 있고, Spark는 최적의 실행 계획을 결정하고, 종속성을 관리하며, 증분 처리를 자동으로 처리합니다.
개방성과 구성 가능성을 염두에 두고 구축된 Spark 선언적 파이프라인은 다음을 제공합니다:
그리고 가장 중요한 것은, 이것은 래퍼나 블랙 박스 없이 Apache Spark입니다.
이 기여는 Apache Spark, Delta Lake, 그리고 더 넓은 오픈 데이터 커뮤니티에서 수년간의 작업을 대표합니다. 이것은 우리가 DLT 를 구축하면서 배운 것에서 영감을 받았지만, 더 유연하고, 더 확장 가능하며, 완전히 오픈 소스로 설계되었습니다.
그리고 우리는 막 시작했습니다. 우리는 이것을 전체 Apache Spark 생태계가 구축할 수 있는 공통 레이어로 기여하고 있습니다 - 당신이 자신의 플랫폼에서 파이프라인을 조정하든, 도메인 특정 추상화를 구축하든, 또는 직접 Spark 자체에 기여하든 상관없습니다. 이 프레임워크는 여러분을 지원하기 위해 여기에 있습니다.
“선언형 파이프라인은 현대 데이터 엔지니어링의 복잡성을 간단하고 직관적인 프로그래밍 모델 아래에 숨깁니다. 엔지니어링 매니저로서, 내 엔지니어들이 비즈니스에 가장 중요한 것에 집중할 수 있다는 사실을 사랑합니다. 이제 이런 혁신 수준이 오픈 소스화되어 더 많은 팀에게 접근 가능해지는 것을 보는 것은 흥미롭습니다." — Jian (Miracle) Zhou, 고급 엔지니어링 매니저, Navy Federal Credit Union

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

Apache Spark 문서에서 더 많은 세부 사항을 기다려 주세요. 그 동안에는 제안에 대한 Jira 와 커뮤니티 토론 을 검토할 수 있습니다.
만약 당신이 오늘 Apache Spark로 파이프라인을 구축하고 있다면, 선언형 모델을 탐색해 보시기 바랍니다. 우리의 목표는 파이프라인 개발을 더 간단하고, 더 신뢰할 수 있게, 그리고 모두에게 더 협업적으로 만드는 것입니다.
레이크하우스는 단순히 오픈 스토리지를 넘어서는 것입니다. 이것은 오픈 포맷, 오픈 엔진 - 그리고 이제 그 위에 구축하기 위한 오픈 패턴에 관한 것입니다.
우리는 선언적 파이프라인이 Apache Spark 개발의 새로운 표준이 될 것이라고 믿습니다. 그리고 우리는 그 미래를 커뮤니티와 함께, 공개적으로 함께 만들어 나가는 것을 기대하고 있습니다.
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)
