다음을 통해 공유


Azure Databricks의 절차 및 선언적 데이터 처리

이 문서에서는 절차적 프로그래밍과 선언적 프로그래밍의 차이점과 Databricks의 사용량에 대해 설명합니다.

절차적 프로그래밍과 선언적 프로그래밍은 컴퓨터 과학의 두 가지 기본 프로그래밍 패러다임입니다. 각각은 지침을 구조화하고 실행하는 다른 방법을 나타냅니다.

  • 절차 프로그래밍을 사용하면 명시적 작업 시퀀스를 정의하여 작업을 수행하는 방법을 지정합니다.
  • 선언적 프로그래밍은 수행해야 하는 작업에 중점을 두고 기본 시스템을 떠나 작업을 실행하는 가장 좋은 방법을 결정합니다.

데이터 파이프라인을 디자인할 때 엔지니어는 절차적 데이터 처리 모델과 선언적 데이터 처리 모델 중에서 선택해야 합니다. 이 결정은 워크플로 복잡성, 유지 관리 효율성 및 효율성에 영향을 줍니다. 이 페이지에서는 이러한 모델의 주요 차이점, 이점 및 과제 및 각 방법을 사용하는 시기를 설명합니다.

절차적 데이터 처리란?

절차적 데이터 처리는 데이터를 조작하기 위해 명시적 단계가 정의되는 구조화된 접근 방식을 따릅니다. 이 모델은 명령적 프로그래밍과 밀접하게 정렬되어 데이터를 처리하는 방법을 지시하는 명령 시퀀스를 강조합니다.

절차적 처리의 특징

절차 처리의 특징은 다음과 같습니다.

  • 단계별 실행: 개발자는 작업 순서를 명시적으로 정의합니다.
  • 제어 구조 사용: 루프, 조건부 및 함수는 실행 흐름을 관리합니다.
  • 자세한 리소스 제어: 세분화된 최적화 및 수동 성능 튜닝을 사용하도록 설정합니다.
  • 관련 개념: 절차 프로그래밍은 명령적 프로그래밍의 하위 클래스입니다.

절차적 처리를 위한 일반적인 사용 사례

절차 처리를 위한 일상적인 사용 사례는 다음과 같습니다.

  • 절차 논리가 필요한 사용자 지정 ETL 파이프라인입니다.
  • 일괄 처리 및 스트리밍 워크플로에서 낮은 수준의 성능 최적화
  • 레거시 시스템 또는 기존 명령적 스크립트.

Apache Spark 및 Lakeflow 작업을 사용한 절차적 처리

Apache Spark는 주로 데이터 처리를 위한 절차 모델을 따릅니다. Lakeflow 작업을 사용하여 명시적 실행 논리를 추가하여 분산 데이터에 대한 단계별 변환 및 작업을 정의합니다.

선언적 데이터 처리란?

선언적 데이터 처리는 원하는 결과를 정의하는 방법과 초점을 추상화합니다. 개발자는 단계별 지침을 지정하는 대신 변환 논리를 정의하고 시스템에서 가장 효율적인 실행 계획을 결정합니다.

선언적 처리의 특징

선언적 처리의 특징은 다음과 같습니다.

  • 실행 세부 정보 추상화: 사용자는 원하는 결과를 설명하고, 이를 달성하기 위한 단계를 제공하지 않습니다.
  • 자동 최적화: 시스템은 쿼리 계획 및 실행 튜닝을 적용합니다.
  • 복잡성 감소: 명시적 제어 구조의 필요성을 제거하여 유지 관리 효율성이 향상됩니다.
  • 관련 개념: 선언적 프로그래밍에는 도메인별 및 기능적 프로그래밍 패러다임이 포함됩니다.

선언적 처리를 위한 일반적인 사용 사례

선언적 처리를 위한 일반적인 사용 사례는 다음과 같습니다.

  • 일괄 처리 및 스트리밍 워크플로의 SQL 기반 변환
  • Lakeflow 선언적 파이프라인과 같은 고수준 데이터 처리 프레임워크
  • 자동화된 최적화가 필요한 확장성 있는 분산 데이터 워크로드.

Lakeflow 선언적 파이프라인을 사용한 선언적 처리

Lakeflow 선언적 파이프라인은 안정적이고 유지 관리 가능한 스트림 처리 파이프라인 만들기를 간소화하도록 설계된 선언적 프레임워크입니다. 수집할 데이터와 이를 변환하는 방법을 지정하여 Lakeflow 선언적 파이프라인은 오케스트레이션, 컴퓨팅 관리, 모니터링, 데이터 품질 적용 및 오류 처리를 포함하여 파이프라인 관리의 주요 측면을 자동화합니다.

주요 차이점: 절차 및 선언적 처리

양상 절차적 처리 선언적 처리
제어 실행에 대한 모든 권한 시스템에서 처리하는 실행
복잡성 복잡하고 장황할 수 있음 일반적으로 더 간단하고 간결합니다.
최적화 수동 튜닝 필요 시스템이 최적화를 처리합니다.
융통성 높지만 전문 지식이 필요합니다. 더 낮지만 사용하기 쉽습니다.
사용 사례 사용자 지정 파이프라인, 성능 튜닝 SQL 쿼리, 관리되는 파이프라인

절차적 또는 선언적 처리를 선택하는 경우

다음 표에서는 절차 및 선언적 처리를 위한 몇 가지 주요 의사 결정 지점을 간략하게 설명합니다.

절차적 처리 선언적 처리
실행 논리에 대한 세분화된 제어가 필요합니다. 간소화된 개발 및 유지 관리가 우선 순위입니다.
변환에는 선언적으로 표현하기 어려운 복잡한 비즈니스 규칙이 포함됩니다. SQL 기반 변환 또는 관리되는 워크플로는 절차적 제어가 필요하지 않습니다.
성능 최적화를 위해서는 수동 튜닝이 필요합니다. Lakeflow 선언적 파이프라인과 같은 데이터 처리 프레임워크는 기본 제공 최적화를 제공합니다.