Apache Spark용 Amazon Redshift 통합 - Amazon Redshift

Apache Spark용 Amazon Redshift 통합

Apache Spark는 기계 학습, 스트림 처리 또는 그래픽 분석을 수행하는 데 도움이 되는 분산 처리 프레임워크 및 프로그래밍 모델입니다. Apache 하둡과 마찬가지로, Spark는 빅 데이터 워크로드에 일반적으로 사용되는 오픈 소스 분산형 처리 시스템입니다. Spark에는 최적화된 비순환 방향 그래프(DAG) 실행 엔진이 있으며 메모리 안에 데이터를 능동적으로 캐시합니다. 이렇게 하면 특히 특정 알고리즘 및 대화형 쿼리의 성능을 향상시킬 수 있습니다.

이 통합은 Amazon Redshift와 Amazon Redshift Serverless에서 데이터를 읽고 쓰는 Apache Spark 애플리케이션을 빌드할 수 있는 Spark 커넥터를 제공합니다. 이러한 애플리케이션은 애플리케이션 성능이나 데이터의 트랜잭션 일관성을 손상시키지 않습니다. 이 통합은 Amazon EMRAWS Glue에 자동으로 포함되므로 데이터 수집 및 변환 파이프라인의 일부로 Amazon Redshift에 데이터를 액세스하고 로드하는 Apache Spark 작업을 즉시 실행할 수 있습니다.

현재 이 통합에서는 Spark 버전 3.3.0, 3.3.1, 3.3.2 및 3.4.0을 사용할 수 있습니다.

이 통합은 다음을 제공합니다.

  • AWS Identity and Access Management(IAM) 인증. 자세한 내용은 Amazon Redshift의 Identity and Access Management를 참조하세요.

  • 조건자 및 쿼리 푸시다운을 통한 성능 향상.

  • Amazon Redshift 데이터 형식.

  • Amazon Redshift와 Amazon Redshift Serverless에 대한 연결.

Spark 커넥터 사용 시 고려 사항 및 제한 사항

  • tempdir URI는 Amazon S3 위치를 가리킵니다. 이 임시 디렉터리는 자동으로 정리되지 않으며 추가 비용이 발생할 수 있습니다. Amazon Simple Storage Service 사용 설명서Amazon S3 수명 주기 정책을 사용하여 Amazon S3 버킷에 대한 보존 규칙을 정의하는 것이 좋습니다.

  • 기본적으로 Amazon S3와 Redshift 간의 복사는 S3 버킷과 Redshift 클러스터가 서로 다른 AWS 리전에 있는 경우 작동하지 않습니다. 별도의 AWS 리전을 사용하려면 tempdir_region 파라미터를 tempdir에 사용되는 S3 버킷의 리전으로 설정합니다.

  • tempformat 파라미터를 사용하여 Parquet 데이터를 쓰는 경우 교차 리전은 S3와 Redshift 사이에 씁니다.

  • Amazon S3 서버 측 암호화를 사용하여 사용된 Amazon S3 버킷을 암호화하는 것이 좋습니다.

  • Amazon S3 버킷에 대한 퍼블릭 액세스를 차단하는 것이 좋습니다.

  • Amazon Redshift 클러스터는 공개적으로 액세스할 수 없도록 하는 것이 좋습니다.

  • Amazon Redshift 감사 로깅을 켜는 것이 좋습니다.

  • Amazon Redshift 저장된 데이터 암호화를 켜는 것이 좋습니다.

  • Amazon EMR의 Spark에서 Amazon Redshift로의 JDBC 연결에 대해 SSL을 켜는 것이 좋습니다.

  • Amazon Redshift 인증 파라미터에 대해 aws_iam_role 파라미터를 사용하여 IAM 역할을 전달하는 것이 좋습니다.