翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Spark コストベースのオプティマイザの使用
Spark バージョン 2.09 以降では、コストベースのオプティマイザ (CBO) を使用できます。CBO は、さまざまなテーブル統計に基づいて、クエリの最も安い実行プランを選択します。CBO は CPU 使用率と I/O に関してクエリの実行を最適化しようとするため、できるだけ早く返します。ただし、ほとんどの場合、特に統計収集がデータ処理よりもさらに高価である場合、データ統計は一般的にありません。統計が利用可能であっても、古くなっている可能性があります。CBO を使用する際のベストプラクティスを次に示します。
-
結合、フィルター、グループバイなどのオペレーションで使用されるすべての列の統計を収集します。これにより、オプティマイザはより良い意思決定を行うことができます。を使用して統計を収集
ANALYZE TABLEします。 -
データが急速に変化している場合は、統計収集の頻度を増やします。古い統計では、計画が最適化されない可能性があります。
-
デフォルトの CBO パラメータから開始し、必要な場合にのみチューニングします。積極的な最適化により、ランタイムが増加する可能性があります。
-
最適化計画を強制してパフォーマンスを比較することで、CBO が最適な計画を選択しているかどうかを検証します。オプティマイザのログ記録を有効にして、プランを比較します。
-
最適化を向上させるには、パーティショニング、バケット化、データスキューヒントと組み合わせて CBO を使用します。パーティション分割は CBO のスケーリングに役立ちます。
-
計画の回帰を早期に検出するには、CBO を有効にした後、クエリのパフォーマンスを継続的にモニタリングします。