Azure Databricks에 대한 최적화 권장 사항

Azure Databricks는 대규모 ETL 처리에서 임시 대화형 쿼리에 이르기까지 레이크하우스에서 다양한 워크로드를 지원하는 많은 최적화를 제공합니다. 이러한 최적화의 대부분은 자동으로 수행됩니다. Azure Databricks를 사용하면 혜택을 얻을 수 있습니다. 또한 대부분의 Databricks 런타임 기능에는 Azure Databricks에서 테이블을 만드는 데 사용되는 기본 스토리지 계층인 Delta Lake가 필요합니다.

Azure Databricks는 대부분의 워크로드를 최적화하는 기본값을 구성합니다. 그러나 경우에 따라 구성 설정을 변경하면 성능이 향상됩니다.

Databricks 런타임 성능 향상

참고

최신 Databricks Runtime을 사용하여 최신 성능 향상을 활용합니다. 여기에 설명된 모든 동작은 Databricks Runtime 10.4 LTS 이상에서 기본적으로 사용하도록 설정됩니다.

  • 디스크 캐싱은 컴퓨팅 클러스터에 연결된 디스크 볼륨에 데이터를 로드하여 Parquet 데이터 파일에 대한 반복 읽기를 가속화합니다.
  • 동적 파일 정리는 쿼리 조건자와 일치하는 데이터 파일이 포함되지 않은 디렉터리를 건너뛰어 쿼리 성능을 향상시킵니다.
  • 낮은 순서 섞기 병합 은 작업으로 MERGE 다시 작성된 데이터 파일의 수를 줄이고 클러스터를 다시 작성 ZORDER 할 필요성을 줄입니다.
  • Apache Spark 3.0에는 많은 작업에 대해 향상된 성능을 제공하는 적응형 쿼리 실행이 도입되었습니다.

성능 향상을 위한 Databricks 권장 사항

  • Azure Databricks에서 테이블을 복제 하여 원본 데이터 세트의 깊거나 얕은 복사본을 만들 수 있습니다.
  • 비용 기반 최적화 프로그램은 테이블 통계를 활용하여 쿼리 성능을 가속화합니다.
  • Spark SQL을 사용하여 문자열을 구문 분석하지 않고 반구조화된 JSON 데이터 와 상호 작용할 수 있습니다.
  • 더 높은 순서 함수는 일반적인 Spark 연산자가 없는 많은 작업에 대해 최적화된 기본 제공 성능을 제공합니다. 순서가 높은 함수는 사용자 정의 함수에 비해 성능 이점을 제공합니다.
  • Azure Databricks는 배열, 구조체 및 JSON 문자열을 포함하여 복잡한 데이터 형식을 사용하기 위한 다양한 기본 제공 연산자 및 특수 구문을 제공합니다.
  • 범위를 포함하거나 하위 인스턴스 기울이기 데이터가 포함된 조인에 대한 설정을 수동으로 조정할 수 있습니다.

옵트인 동작

  • Azure Databricks는 기본적으로 직렬화 가능한 쓰기 격리 보장을 제공합니다. 격리 수준을 직렬화 가능으로 변경하면 동시 작업의 처리량을 줄일 수 있지만 읽기 직렬화 기능이 필요한 경우 필요할 수 있습니다.
  • 블룸 필터 인덱스를 사용하여 지정된 조건과 일치하는 레코드가 포함되지 않은 데이터 파일을 검사할 가능성을 줄일 수 있습니다.