선언적 파이프라인은 팀이 배치 및 스트리밍 워크플로를 빌드할 수 있는 의도 기반 방식을 제공합니다. 수행할 작업을 정의하면 시스템이 실행을 관리합니다. 이를 통해 사용자 지정 코드를 줄이고 반복 가능한 엔지니어링 패턴을 지원합니다.
조직의 데이터 사용량이 증가함에 따라 파이프라인도 늘어납니다. 표준이 발전하고, 새로운 소스가 추가되며, 더 많은 팀이 개발에 참여합니다. 작은 스키마 업데이트조차 수십 개의 노트북과 구성에 영향을 미칩니다. 메타데이터 기반 메타프로그래밍은 파이프라인 로직을 런타임에 생성되는 구조화된 Template으로 전환하여 이러한 문제를 해결합니다.
이 접근 방식은 개발 일관성을 유지하고 유지 관리를 줄이며 제한된 엔지니어링 노력으로 확장됩니다.
이 블로그에서는 Databricks Labs의 프로젝트인 DLT-META를 사용하여 Spark 선언적 파이프라인용 메타데이터 기반 파이프라인을 구축하는 방법을 알아봅니다. DLT-META는 메타데이터 템플릿을 적용하여 파이프라인 생성을 자동화합니다.
선언적 파이프라인은 유용하지만, 팀이 더 많은 소스를 추가하고 조직 전체로 사용을 확대하면 이를 지원하는 데 필요한 작업이 급격히 증가합니다.
수동 파이프라인은 소규모에서는 작동하지만 유지보수 노력은 데이터 자체보다 더 빠르게 증가합니다. 새로운 소스가 추가될 때마다 복잡성이 증가하여 로직 드리프트 및 재작업으로 이어집니다. 팀은 파이프라인을 개선하는 대신 결국 패치하게 됩니다. 데이터 엔지니어는 다음과 같은 확장성 문제에 지속적으로 직면합니다.
이러한 문제들은 메타데이터 우선 접근 방식이 왜 중요한지를 보여줍니다. 수동 작업을 줄이고 파이프라인이 확장될 때 일관성을 유지해 줍니다.
DLT-META는 파이프라인 규모 및 일관성 문제를 해결합니다. Spark 선언적 파이프라인을 위한 메타데이터 기반 메타프로그래밍 프레임워크입니다. 데이터 팀은 이를 사용하여 최소한의 코 드로 파이프라인 생성을 자동화하고, 로직을 표준화하며, 개발을 확장합니다.
메타프로그래밍을 사용하면 파이프라인 동작이 반복되는 노트북이 아닌 구성에서 파생됩니다. 이는 팀에 명확한 이점을 제공합니다.
Spark Declarative 파이프라인과 DLT-META는 함께 작동합니다. Spark Declarative 파이프라인은 의도를 정의하고 실행을 관리합니다. DLT-META는 파이프라인 로직을 생성하고 확장하는 구성 레이어를 추가합니다. 이 둘이 결합되어 거버넌스, 효율성, 대규모 성장을 지원하는 반복 가능한 패턴으로 수동 코딩을 대체합니다.
1. 중앙 집중식 및 템플릿화된 구성
DLT-META는 공유 템플릿에서 파이프라인 로직을 중앙 집중화하여 중복과 수동 유지 관리를 제거합니다. 팀은 JSON 또는 YAML을 사용하여 공유 메타데이터에서 수집, 변환, 품질 및 거버넌스 규칙을 정의합니다. 새 소스가 추가되거나 규칙이 변경되면 팀은 구성을 한 번만 업데이트합니다. 로직이 파이프라인 전반에 자동으로 전파됩니다.
2. 즉각적인 확장성과 더 빠른 온보딩
메타데이터 기반 업데이트를 통해 파이프라인을 쉽게 확장하고 새로운 소스를 온보딩할 수 있습니다. 팀은 메타데이터 파일을 편집하여 소스를 추가하거나 비즈니스 규칙을 조정합니다. 변경 사항은 수동 개입 없이 모든 다운스트림 워크로드에 적용됩니다. 새 로운 소스가 몇 주가 아닌 몇 분 만에 프로덕션으로 이동합니다.
3. 강화된 표준에 따른 도메인 팀 기여
DLT-META를 사용하면 도메인 팀이 구성을 통해 안전하게 기여할 수 있습니다. 애널리스트와 도메인 전문가는 메타데이터를 업데이트하여 제공 속도를 높입니다. 플랫폼 및 엔지니어링 팀은 유효성 검사, 데이터 품질, 변환 및 규정 준수 규칙에 대한 제어권을 유지합니다.
4. 전사적 일관성 및 거버넌스
조직 전체의 표준이 모든 파이프라인과 소비자에 자동으로 적용됩니다. 중앙 구성은 모든 새로운 소스에 일관된 논리를 적용합니다. 기본 내장 감사, 리니지 및 데이터 품질 규칙은 대규모의 규제 및 운영 요구 사항을 지원합니다.
고객은 DLT-META를 사용하여 수집 및 변환을 한 번 정의하고 구성을 통해 이를 적용하고 있습니다. 이를 통해 사용자 지정 코드가 줄어들고 온보딩 속도가 빨라집니다.
Cineplex는 즉각적인 효과를 보았습니다.
커스텀 코드를 최소화하기 위해 DLT-META를 사용합니다. 엔지니어는 더 이상 간단한 작업을 위해 파이프라인을 다르게 작성하지 않습니다. 온보딩 JSON 파일은 일관된 프레임워크를 적용하고 나머지를 처리합니다.— Aditya Singh, Cineplex 데이터 엔지니어
PsiQuantum은 소규모 팀이 효율적으로 확장하는 방법을 보여줍니다.
DLT-META는 적은 유지보수로 브론즈 및 실버 워크로드를 관리하는 데 도움이 됩니다. 중복된 노트북이나 소스 코드 없이 대용량 데이터를 지원합니다.— Arthur Valadares, PsiQuantum 수석 데이터 엔지니어
산업 전반에 걸쳐 팀들은 동일한 패턴을 적용합니다.
이 접근 방식을 통해 팀은 복잡성을 늘리지 않고 파이프라인 수를 늘릴 수 있습니다.
DLT-META를 사용하기 위해 플랫폼을 재설계할 필요가 없습니다. 작게 시작하세요. 몇 개의 소스를 사용하세요. 메타데이터가 나머지를 주도하도록 하세요.
1. 프레임워크 가져오기
DLT-META 리포지토리를 복제하여 시작하세요. 이를 통해 메타데이터를 사용하여 파이프라인을 정의하는 데 필요한 템플릿, 예시 및 툴링을 얻을 수 있습니다.
2. 메타데이터로 파이프라인 정의하기
다음으로, 파이프라인이 수행할 작업을 정의합니다. 이 작업은 소규모 구성 파일 세트를 편집하여 수행합니다.
이 시점에서 의도를 설명하고 있습니다. 사용자는 파이프라인 코드를 작성하는 것이 아닙니다.
3. 플랫폼에 메타데이터를 온보딩합니다.
파이프라인이 실행되기 전에 DLT-META는 사용자의 메타데이터를 등록해야 합니다. 이 온보딩 단계에서는 사용자의 구성을 파이프라인이 런타임에 읽는 Dataflowspec 델타 테이블로 변환합니다.
Notebook, Lakeflow 작업 또는 DLT-META CLI에서 온보딩을 실행할 수 있습니다.
a. 노트북을 통한 수동 온보딩 예: 여기
제공된 온보딩 노트북을 사용하여 메타데이터를 처리하고 파이프라인 아티팩트를 프로비저닝하세요.
b. Python wheel로 Lakeflow Jobs에서 온보딩을 자동화합니다.
아래 예시는 Lakeflow Jobs UI를 사용하여 DLT-META 파이프라인을 생성하고 자동화하는 방법을 보여줍니다.
c. 리포지토리에 표시된 DLT-META CLI 명령을 사용하여 온보딩: 여기.
DLT-META CLI를 사용하면 대화형 Python 터미널에서 onboard 및 deploy를 실행할 수 있습니다.
4. 일반 파이프라인 만들기
메타데이터가 준비되면 단일 제네릭 파이프라인을 생성합니다. 이 파이프라인은 Dataflowspec 테이블에서 읽어와 동적으로 로직을 생성합니다.
pipelines/dlt_meta_pipeline.py 를 진입점으로 사용하고 브론즈 및 실버 사양을 참조하도록 구성하세요.
이 파이프라인은 소스를 추가해도 변경되지 않습니다. 메타데이터가 동작을 제어합니다.
5. 트리거 및 실행
이제 파이프라인을 실행할 준비가 되었습니다. 다른 Spark 선언적 파이프라인처럼 트리거하세요.
DLT-META는 런타임에 파이프라인 로직을 구축하고 실행합니다.
출력은 일관된 변환, 품질 규칙 및 리니지가 자동으로 적용된, 프로덕션에 즉시 사용할 수 있는 브론즈 및 실버 테이블입니다.
시작하려면 기존 Spark 선언적 파이프라인을 몇 가지 소스와 함께 사용하여 개념 증명을 시작하고, 파이프라인 로직을 메타데이터로 마이그레이션한 다음, DLT-META가 대규모로 오케스트레이션하도록 하는 것이 좋습니다. 소규모 개념 증명으로 시작하여 메타데이터 기반 메타프로그래밍이 데이터 엔지니어링 역량을 상상 이상으로 확장하는 것을 지켜보세요.
Databricks 리소스
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)