Announcing Public Preview of Low Shuffle Merge - The Databricks Blogの翻訳です
大幅なコスト削減、劇的なMERGEの高速化
本日、AWS、Azure、Google Cloud上のDelta LakeにおいてLow Shuffle Mergeがパブリックプレビューになったことを嬉しく思います。
新たに改善されたMERGEアルゴリズムは、特定ファイルの小規模の行をアップデートする様な一般的なユースケースにおいて、お客様のコストを大幅に削減し、劇的な高速化を実現します。そして、次世代クエリーエンジンPhotonと組み合わせることで、Low Shuffle Mergeはお客様に対して、かつてないパフォーマンス改善、劇的にコストパフォーマンスが改善されたMERGEオペレーションを提供します。さらに、Low Shuffle Mergeは、すぐに優れた性能を提供できる様に既存のデータクラスタリングをメンテナンスするので、頻繁にデータに対してZ-Orderを実行する必要性が削減されます。
Low Shuffle Mergeは、更新された行と一緒に処理を行うのではなく、更新された行を分離され、より整流化された処理モードで処理することで、優れた性能を提供します。このため、シャッフルされるデータの総量が劇的に削減され、性能改善へと繋がります。Low Shuffle Mergeにおいては、ユーザーがMERGE
オペレーションを行った後にOPTIMIZE ZORDER BY
を再実行する必要がなくなります。すでに(OPTIMIZE ZORDER BY
を用いて)ソートされたデータに対しては、Low Shuffle MergeはMERGEコマンドによって更新されないすべてのレコードにおけるソート順を維持します。この改善によって、時間と計算コストを劇的に削減します。
使い始めてみる
Low Shuffle Mergeは無料ですぐに利用できます。お使いのクラスターをDatabricks Runtime 9.0にバージョンアップし、以下のspark configurationを設定してください。
SET spark.databricks.delta.merge.enableLowShuffle = true;
DatabricksのUIのClustersページから最新のDatabricksランタイムにアップグレードすることができます(詳細)。ノートブックでMERGE INTO
を実行する前に、上記設定、あるいはクラスターレベルですべてのMERGEコマンドに自動で設定が適用される様にすることで、Low Shuffle Mergerを有効化してください。この機能が年末にGAになった際には、最新のDBR(Databricks Runtime)にアップグレードすることで、デフォルトでこの機能は有効化されることになります。
コストを削減し、さらに性能を改善するためには、Photonの使用を強くお勧めします。Photonに関してはこちらの記事を参照ください。