Synapse 구현 성공 방법론: Spark 풀 디자인 평가
참고 항목
이 문서는 디자인에 따른 Azure Synapse 구현 성공 문서 시리즈의 일부를 구성합니다. 시리즈에 대한 개요는 Azure Synapse 구현 성공 디자인을 참조하세요.
Apache Spark 풀 디자인을 평가하여 문제를 식별하고 지침 및 요구 사항을 충족하는지 확인해야 합니다. “솔루션 개발이 시작되기 전에” 디자인을 평가하면 방해 요소 및 예기치 않은 디자인 변경을 방지할 수 있습니다. 이렇게 하면 프로젝트의 타임라인과 예산을 보호할 수 있습니다.
Synapse의 Apache Spark는 Azure Synapse Analytics에 Apache Spark 병렬 데이터 처리를 제공합니다. 이 평가에서는 Azure Synapse의 Apache Spark가 워크로드에 적합한지 여부에 대한 지침을 제공합니다. Spark 풀을 통합하는 솔루션 디자인 요소를 평가할 때 고려해야 할 사항에 대해 설명합니다.
간격 분석 맞춤
Azure Synapse를 사용하여 Spark 풀을 구현하려는 경우 먼저 워크로드에 가장 적합한지 확인합니다.
다음 사항을 고려합니다.
- 워크로드에 데이터 엔지니어링/데이터 준비가 필요한가요?
- Apache Spark는 다음이 필요한 워크로드에 가장 적합합니다.
- 데이터 정리.
- XML과 같은 반구조화된 데이터를 관계형으로 변환.
- 유사 일치 또는 NLP(자연어 처리)와 같은 복잡한 자유 텍스트 변환.
- ML(기계 학습)에 대한 데이터 준비.
- Apache Spark는 다음이 필요한 워크로드에 가장 적합합니다.
- 데이터 엔지니어링/데이터 준비를 위한 워크로드에 복잡하거나 간단한 변환이 포함되나요? 그리고 코드가 낮은/코드가 없는 방법을 찾고 있나요?
- 열 제거, 열 데이터 형식 변경 또는 데이터 세트 조인과 같은 간단한 변환의 경우 데이터 흐름 작업을 사용하여 Azure Synapse 파이프라인을 만드는 것이 좋습니다.
- 데이터 흐름 활동은 데이터를 준비하기 위한 낮은 코드/코드 없는 접근 방식을 제공합니다.
- 워크로드에 빅 데이터에 대한 ML이 필요한가요?
- Apache Spark는 ML에 사용되는 큰 데이터 세트에 적합합니다. 작은 데이터 세트를 사용하는 경우 Azure Machine Learning을 컴퓨팅 서비스로 사용하는 것이 좋습니다.
- 빅 데이터에 대한 데이터 탐색 또는 임시 쿼리 분석을 수행할 계획인가요?
- Azure Synapse의 Apache Spark는 Python/Scala/SQL/.NET 기반 데이터 탐색을 제공합니다. 그러나 전체 T-SQL(Transact-SQL) 환경이 필요한 경우 서버리스 SQL 풀을 사용하는 것이 좋습니다.
- 현재 Spark/Hadoop 워크로드가 있고 통합 빅 데이터 플랫폼이 필요한가요?
- Azure Synapse는 빅 데이터 작업을 위한 통합 분석 플랫폼을 제공합니다. 임시 쿼리를 위한 Spark 및 SQL 서버리스 풀과 데이터를 보고하고 제공하는 전용 SQL 풀이 있습니다.
- 온-프레미스(또는 다른 클라우드 환경)에서 Spark/Hadoop 워크로드에서 이동하는 경우 고려해야 할 일부 리팩터링이 포함될 수 있습니다.
- 온-프레미스에서 클라우드로 Apache 빅 데이터 환경의 리프트 앤 시프트 접근 방식을 찾고 있으며 엄격한 데이터 엔지니어링 SLA(서비스 수준 계약)를 충족해야 하는 경우 Azure HDInsight를 사용하는 것이 좋습니다.
아키텍처 고려 사항
Apache Spark 풀이 운영 우수성, 성능, 안정성, 보안에 대한 요구 사항을 충족하는지 확인하기 위해 아키텍처에서 유효성을 검사할 주요 영역이 있습니다.
운영 우수성
운영 우수성에 대해 다음 사항을 평가합니다.
- 환경: 환경을 구성할 때 자동 스케일링 및 동적 할당과 같은 기능을 활용하도록 Spark 풀을 디자인합니다. 또한 비용을 줄이려면 자동 일시 중지 기능을 사용하도록 설정하는 것이 좋습니다.
- 패키지 관리: 필요한 Apache Spark 라이브러리를 작업 영역, 풀 또는 세션 수준에서 사용할지 여부를 결정합니다. 자세한 내용은 Azure Synapse Analytics에서 Apache Spark용 라이브러리 관리를 참조하세요.
- 모니터링: Azure Synapse의 Apache Spark는 각 Spark 세션을 만들어 Spark 풀 및 애플리케이션에 대한 기본 제공 모니터링을 제공합니다. 또한 메트릭 및 로그를 시각화하는 데 사용할 수 있는 Azure Log Analytics 또는 Prometheus 및 Grafana를 사용하여 애플리케이션 모니터링을 구현하는 것이 좋습니다.
성능 효율성
성능 효율성에 대해 다음 사항을 평가합니다.
- 파일 크기 및 파일 형식: 파일 크기 및 파일 수는 성능에 영향을 줍니다. 파일 형식이 Apache Spark를 사용한 네이티브 수집에 도움이 되도록 아키텍처를 디자인합니다. 또한 많은 작은 파일 대신 더 적은 수의 큰 파일을 사용합니다.
- 분할: 워크로드에 대해 폴더 및/또는 파일 수준에서 분할을 구현할지 여부를 식별합니다. 폴더 파티션은 검색하고 읽을 데이터의 양을 제한합니다. 파일 파티션은 파일 내에서 검색할 데이터의 양을 줄이지만 초기 아키텍처에서 고려해야 하는 특정 파일 형식에만 적용됩니다.
안정성
안정성에 대해 다음 사항을 평가합니다.
- 가용성: Spark 풀의 시작 시간은 3~4분입니다. 설치할 라이브러리가 많은 경우 시간이 더 오래 걸릴 수 있습니다. 일괄 처리와 스트리밍 워크로드를 디자인할 때 평가 정보에서 작업을 실행하기 위한 SLA를 식별하고 요구 사항에 가장 적합한 아키텍처를 결정합니다. 또한 각 작업 실행에서 새 Spark 풀 클러스터를 만드는 것을 고려합니다.
- 검사점: Apache Spark 스트리밍에는 기본 제공 검사점 메커니즘이 있습니다. 검사점 지정을 사용하면 풀의 노드에 오류가 발생한 경우 마지막으로 처리된 항목에서 스트림을 복구할 수 있습니다.
보안
보안에 대해 다음 사항을 평가합니다.
- 데이터 액세스: Synapse 작업 영역에 연결된 Azure ADLS(Data Lake Storage) 계정에 대한 데이터 액세스를 고려해야 합니다. 또한 Azure Synapse 환경 내에 없는 모든 데이터에 액세스하는 데 필요한 보안 수준을 결정합니다. 평가 단계 중 수집한 정보를 참조하세요.
- 네트워킹: 평가 중에 수집된 네트워킹 정보 및 요구 사항을 검토합니다. 디자인에 Azure Synapse가 있는 관리형 가상 네트워크가 포함된 경우 이 요구 사항이 Azure Synapse의 Apache Spark에 미치는 영향을 고려합니다. 한 가지 의미는 데이터에 액세스하는 동안 Spark SQL을 사용할 수 없다는 것입니다.
다음 단계
Azure Synapse의 성공적인 디자인 시리즈의 다음 문서에서 프로젝트가 시작되기 전에 최신 데이터 웨어하우스 프로젝트 계획을 평가하는 방법을 알아봅니다.
모범 사례에 대한 자세한 내용은 Azure Synapse용 Apache Spark 지침을 참조하세요.