출처 : https://learn.microsoft.com/ko-kr/training/modules/use-spark-notebooks-azure-synapse-pipeline/

 

Azure Synapse 파이프라인에서 Spark Notebook 사용 - Training

이 모듈에서는 Apache Spark Notebook을 Azure Synapse Analytics 파이프라인에 통합하는 방법을 설명합니다.

learn.microsoft.com

 

 

학습 목표

  • Notebook 및 파이프라인 통합을 설명합니다.
  • 파이프라인에서 Synapse Notebook 활동을 사용합니다.
  • Notebook 작업에서 매개 변수를 사용합니다.

 


 

 

소개

- Azure Synapse Analytics 파이프라인을 사용하면 데이터 전송 및 변환 작업을 오케스트레이션하고 여러 시스템에서 데이터 통합 솔루션을 빌드할 수 있다.

 - 데이터 레이크에서 분석 데이터를 사용하는 경우 Apache Spark는 대량의 데이터를 효율적으로 처리하는데 사용할 수 있는 확장성 있는 부산 처리 플랫폼을 제공한다.

 - Synapse Notebook 작업을 사용하면 Spark Notebook에서 파이프라인의 작업으로 데이터 처리 코드를 실행할 수 있다. 빅데이터 처리를 자동화하고 ETL 워크로드에 통합할 수 있다.

 

 

Synapse Notebook 및 파이프라인 이해

- 외부 처리 리소스를 사용하여 특정 작업을 수행할 수 있다.

- 외부 리소스 중 하나는 Notebook에서 코드를 실행할 수 있는 Azure Synapse Analytics 작업 영역의 Apache Saprk 풀

 - 데이터 엔지니어가 데이터 변환 프로세스를 설계할 때 초기 데이터 탐색 및 대화형 실험에 Spark Notebook을 사용하는 것은 빅데이터 솔루션에서 일반적이다.

 - 변환 논리가 완료되면 유지 관리를 위해 최종 코드 최적화 및 리팩터링을 수행한 다음 파이프라인에 Notebook을 포함할 수 있다. 그런 다음 일정에 따라 또는 이벤트에 대한 응답으로 파이프라인을 실행할 수 있다. (ex. 데이터 레이크에 로드되는 새 데이터 파일)

 

 - Notebook은 특정 워크로드에 적합한 컴퓨팅 리소스 및 Spark 런타임으로 구성할 수 있는 Spark 풀에서 실행된다.

 - 파이프라인 자체는 파이프라인 작업을 오케스트레이션하는 통합 런타임에서 실행되며 실행하는데 필요한 외부 서비스를 조정한다.

 

팁)

Spark Notebook을 보다 효율적이고 효과적으로 작업하는데 도움이 되는 몇 가지 모범 사례

  • 코드 구성 유지 : 명확하고 설명이 포함된 변수 및 함수 이름을 사용하고 코드를 작고 재사용 가능한 청크로 구성한다.
  • 중간 결과 캐시 : Spark를 사용하면 중간 결과를 캐시할 수 있으므로 Notebook의 성능이 크게 향상된다.
  • 불필요한 계산 방지 : 수행 중인 계산을 염두에 두고 불필요한 단계를 피하려고 한다. 
  • 필요한 경우가 아니면 collect()를 사용하지 마세요. 대용량 데이터 세트를 사용하는 경우 collect()메서드를 사용하여 데이터를 드라이버 노드로 가져오는 대신 전체 데이터 세트에 대한 작업을 수행하는 것이 좋다.
  • 모니터링 및 디버깅에 Spark UI 사용 : Spark의 웹 기반 UI는 작업 실행 시간, 입력과 출력 데이터 크기 등을 포함하여 Spark 작업의 성능에 대한 자세한 정보를 제공한다.
  • 종속성 버전 일치 및 업데이트 유지 : Spark로 작업할 때 클러스터 전체에서 종속성 버전 일관성을 유지하고 가능한 경우 최신버전의 Spark 및 기타 종속성을 사용하는 것이 중요하다.

 

파이프라인에서 Synapse Notebook 활동 사용

- Notebook 작업 설정

  • Notebook
  • Spark 풀
  • 실행기 크기 : 풀에서 작업자 노드의 노드 크기로 프로세서 코어 수와 작업자 노드에 할당된 메모리 양을 결정한다.
  • 동적으로 실행기 할당 : Spark 동적 할당을 구성하여 풀이 워크로드를 지원하기 위해 자동으로 스케일 업 및 다운되도록 한다.
  • 최소 실행기
  • 최대 실행기
  • 드라이버 크기 : 드라이버 노드의 노드 크기

 

Notebook에서 매개 변수 사용

 - 매개 변수를 사용하면 실행할 때마다 Notebook의 변수 값을 동적으로 전달할 수 있다. 이 방법은 유연성을 제공하므로 실행할 때마다 Notebook에 캡슐화된 논리를 조정할 수 있다.

 

[Notebook에서 매개 변수 셀 만들기]

- Notebook에 대한 매개 변수를 정의하려면 셀에서 변수를 선언하고 초기화한 다음 Notebook 편집기 인터페이스의 토글 옵션을 사용하여 매개 변수 셀로 구성한다.

 - 변수를 초기화하면 매개 변수가 Notebook 작업에 설정되지 않은 경우 사용되는 기본값이 포함된다.

 

[Notebook작업에 대한 기본 매개 변수 설정]

 - 매개 변수 셀을 정의한 후 파이프라인의 Notebook 작업에서 Notebook을 실행할 때 사용할 값을 설정할 수 있다.

 - 매개 변수 값을 설정하려면 작업 설정의 기본 매개 변수 섹션을 확장하고 편집한다.

 - 명시적 매개 변수 값을 할당하거나 식을 사용하여 동적 값을 할당할 수 있다. 

  ex. @pipeline().RunId 식은 현재 파이프라인 실행에 대한 고유 식별자를 반환한다.

 

 

 

+ Recent posts