Performance tuning for Delta Lake queries#

このガイドでは、ハイブリッドマネージャーHMレイクハウスクラスターから実行されるDelta Lakeクエリのパフォーマンスを調整および最適化するためのヒントを提供します。

Lakehouseクラスターは、ベクトル化クエリエンジンPGAAを使用して、オブジェクトストレージに保存されているDelta Lakeテーブルを効率的に照会します。

Delta Lake統合の背景については、 Delta Lake in Hybrid Manager を参照してください。

ゴール#

このガイドを完了すると、次のことを行います。

Check レイクハウスクラスターからのDelta Lakeクエリの一般的なチューニングパターンを理解する チェック パーティションプルーニングとデータスキップを利用するクエリを作成できる チェック クエリパフォーマンスを監視し、必要に応じてレイクハウスセットアップを調整する方法を知っています チェック より速く、より多くのコストを解除- PostgresツールからのDelta Lakeデータの効率的な分析

これを使用する場合#

次の場合にこれらのプラクティスを適用する必要があります。

  • HM Lakehouseクラスターから既存のDelta Lakeテーブルを照会している

  • クエリ速度とリソース効率を向上させたい

  • BIツール統合Tableau、Power BIなどのためのLakehouseクラスターを準備している場合

  • 長時間実行されるDelta Lakeクエリーのトラブルシューティングを行っている場合

一般的なベストプラクティス#

パーティショニングを効果的に使用する#

  • Delta Lakeはパーティショニングをサポート — 一般的なクエリフィルタと一致するパーティション列を使用してDelta Lakeテーブルをデザインします。

  • パーティション列でフィルタリングするクエリーは、スキャンを高速化するために不要なParquetファイルをプルーニングできます。

例

SELECT order_id, sale_amount
FROM public.sales_delta_table
WHERE sale_year = 2024 AND sale_month = 5;

データスキップを活用する#

  • Delta Lakeは、Deltaトランザクションログに保存されている統計のデータスキップをサポートしています。

  • Delta LakeテーブルがSparkまたは統計を収集する別のツールによって書き込まれている場合、PGAAはこれを活用して、より効率的なクエリプランニングを行う場合があります。

LIMITとターゲットを絞った予測を使用する#

  • 探索クエリーの場合、I/Oを最小限に抑えるために、常にLIMITを使用し、必要な列のみをSELECTします。

例

SELECT order_id, sale_amount
FROM public.sales_delta_table
LIMIT 100;

早期かつ具体的にフィルタリングする#

フィルタをWHERE句にプッシュして、最大限のプルーニングを有効にします。

良い

SELECT * FROM public.sales_delta_table
WHERE sale_date >= 2023-01-01 AND product_category = Electronics;

避けてください

SELECT * FROM public.sales_delta_table;

(フルテーブルスキャン)

PGFSロケーションの近接性を検証する#

  • データ転送のレイテンシーを最小限に抑えるために、Lakehouseクラスターがオブジェクトストレージに近いクラウドリージョンでプロビジョニングされていることを確認します。

クエリパフォーマンスの監視#

  • HMモニタリングダッシュボードを使用して、Lakehouseクラスターでのクエリ時間とリソースの使用状況を観察します。

  • 長いランタイムまたは大規模なI/Oを伴うクエリーを特定および調整します。

既知の制限#

  • PGAAは現在、Delta Lakeテーブルへの読み取り専用アクセスをサポートしています。

  • スキーマの進化がサポートされています — PGAAは、デルタトランザクションログから現在のスキーマを読み取ります。

  • 複雑なACID機能MERGE、DELETEは、PGAAを介した書き込みではサポートされていません - デルタテーブルの変更にはSparkまたはサポートされているETLツールを使用します。

次のステップ#

Delta Lakeクエリの最適化が完了しました。

アーキテクチャの概要については、 Analytics in Hybrid Manager を参照してください。