Azure Databricks의 낮은 순서 섞기 병합
참고 항목
낮은 순서 섞기 병합은 Databricks Runtime 10.4 lTS 이상 및 Databricks Runtime 9.1 LTS의 공개 미리 보기에서 일반적으로 GA(일반 공급)입니다. Databricks는 미리 보기 고객이 Databricks Runtime 10.4 LTS 이상으로 마이그레이션하는 것이 좋습니다.
MERGE 명령은 Delta Lake 테이블에서 동시 업데이트, 삽입 및 삭제를 수행하는 데 사용됩니다. Azure Databricks에는 순서 섞기 작업의 수를 줄여 일반적인 워크로드의 성능을 크게 향상시키는 MERGE
의 최적화된 구현이 있습니다.
Databricks 낮은 순서 섞기 병합은 수정되지 않은 행을 수정된 행과 함께 처리하는 대신 보다 간소화된 별도의 처리 모드로 처리하여 더 나은 성능을 제공합니다. 결과적으로 섞인 데이터의 양이 크게 감소하여 성능이 향상됩니다. 낮은 순서 섞기 병합은 MERGE
작업을 수행한 후 사용자가 OPTIMIZE ZORDER BY 명령을 다시 실행할 필요도 줄여줍니다.
최적화된 성능
많은 MERGE
워크로드가 테이블에서 비교적 적은 수의 행만 업데이트합니다. 그러나 Delta 테이블은 파일 단위로만 업데이트할 수 있습니다. MERGE
명령이 특정 파일에 저장된 적은 수의 행을 업데이트하거나 삭제해야 하는 경우 이러한 행이 수정되지 않았더라도 동일한 파일에 저장된 나머지 모든 행을 처리하고 다시 작성해야 합니다. 낮은 순서 섞기 병합은 수정되지 않은 행의 처리를 최적화합니다. 이전에는 수정된 행과 동일한 방식으로 처리되어 여러 순서 섞기 단계와 값비싼 계산을 통과했습니다. 낮은 순서 섞기 병합에서 수정되지 않은 행은 순서 섞기, 비용이 많이 드는 처리 또는 기타 추가 오버헤드 없이 처리됩니다.
최적화된 데이터 레이아웃
낮은 순서 섞기 병합은 실행 속도가 빨라질 뿐만 아니라 후속 작업에도 도움이 됩니다. 이전 MERGE
구현으로 인해 수정되지 않은 데이터의 데이터 레이아웃이 완전히 변경되어 후속 작업에서 성능이 저하되었습니다. 낮은 순서 섞기 병합은 최선을 다해 Z 순서 최적화를 포함하여 수정되지 않은 레코드의 기존 데이터 레이아웃을 유지하려고 합니다. 따라서 낮은 순서 섞기 병합을 사용하면 하나 이상의 MERGE
명령을 실행한 후 Delta 테이블에 대한 작업 성능이 더 느리게 저하됩니다.
참고 항목
낮은 순서 섞기 병합은 수정되지 않은 기존 데이터의 데이터 레이아웃을 유지하려고 합니다. 업데이트되거나 새로 삽입된 데이터의 데이터 레이아웃이 최적이 아닐 수 있으므로 OPTIMIZE
또는 OPTIMIZE ZORDER BY 명령을 실행해야 할 수도 있습니다.
가용성
낮은 순서 섞기 병합은 Databricks Runtime 10.4 이상에서 기본적으로 사용하도록 설정됩니다. 이전에 지원되는 Databricks Runtime 버전에서는 spark.databricks.delta.merge.enableLowShuffle
을 true
로 설정하여 사용할 수 있습니다. 이 플래그는 Databricks Runtime 10.4 이상에서는 적용되지 않습니다.