0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Databricksにおけるローシャッフルマージ

Posted at

Low shuffle merge on Databricks | Databricks on AWS [2022/9/8時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

注意
ローシャッフルマージ(Low shuffle merge)はDatabricksランタイム9.0以降でサポートされています。Databricksランタイム10.3以降では正式提供(GA)となっており、Databricksランタイム9.0、9.1、10.0、10.2ではパブリックプレビューとなっています。プレビューを利用されているお客様にはDatabricksランタイム10.3以降に移行することをお勧めします。

MERGEは、Delta Lakeテーブルに対して同時にアップデート、インサート、デリートを実行するために使用されます。Databricksでは、シャッフルオペレーションのk座図を削減することで、一般的なワークロードのパフォーマンスを劇的に改善するために最適化されたMERGEの実装をしています。

Databricksのローシャッフルマージは、修正されていない行と修正された行を一緒に処理するのではなく、より整流化された別の処理モードで変更されていない行を処理することで優れたパフォーマンスを提供します。これによって、シャッフルされるデータの量が劇的に削減され、パフォーマンスの改善につながります。また、ローシャッフルマージはMERGEオペレーションを実行した後にユーザーがOPTIMIZE ZORDER BYコマンドを再実行する必要性も削減します。

最適化されたパフォーマンス

多くのMERGEワークロードはテーブルの比較的小規模な行のみをアップデートします。しかし、Deltaテーブルはファイル単位ベースでしかアップデートすることができません。MERGEコマンドが特定ファイルに格納されている小規模の行をアップデート、デリートする必要がある場合、同じファイルに格納されている他のすべての行が変更されていない場合でも、処理と再書き込みを行う必要があります。ローシャッフルマージは、未編集の業の処理を最適化します。これまでは、これらの行は編集行と同じ様に処理され、複数のシャッフルステージと高価な計算処理を経由していました。ローシャッフルマージでは、未編集の行には、いかなるシャッフル処理、高価な処理や他のオーバーヘッドは追加されません。

最適化されたデータレイアウト

ローシャッフルマージでは、実行が高速化されることに加えて、後段のオペレーションでもメリットが生じます。以前のMERGE実装では、未編集のデータのデータレイアウトも完全に変更されており、後段のオペレーションでの性能劣化を引き起こしていました。ローシャッフルマージは、ベストエフォートでZ-orderの最適化を含み、未編集のレコードの既存のデータレイアウトを保持しようとします。このため、ローシャッフルマージを用いることで、MERGEコマンドを複数回実行したとしても、Deltaテーブルにおけるオペレーションのパフォーマンスの劣化は軽減されます。

注意
ローシャッフルマージは、編集されていない既存データのデータレイアウトを保持しようとします。更新あるいは新たに追加されたデータのデータレイアウトは最適化されていない場合がありますので、依然としてOPTIMIZE ZORDER BYコマンドコマンドを実行する必要が出てくる場合があります。

可用性

Databricksランタイム10.4以降ではデフォルトでローシャッフルマージは有効化されています。それ以前のローシャッフルマージをサポートしているDatabricksランタイムバージョンでは、Spark設定spark.databricks.delta.merge.enableLowShuffletrueに設定することで有効化することができます。Databricksランタイム10.4以降ではこのフラグは意味を持ちません。

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?