動的テーブルのパフォーマンスおよび最適化¶
スピードとコスト効率のために動的テーブルを最適化およびモニターする方法を学びます。このセクションでは、基礎となる概念と、より詳細なトピックへのリンクを提供します。
動的テーブルの パフォーマンス は、どれだけ迅速かつ効率的に ダイナミックテーブルリフレッシュ が完了するかを指します。パフォーマンスの高い動的テーブルは、過剰なコンピューティングリソースを消費せずに ターゲットラグ を満たす十分に高速なリフレッシュを実現します。
パフォーマンスが重要な理由¶
- データの鮮度
動的テーブルは、指定した ターゲットラグ に基づいてリフレッシュします。これは、ソーステーブルの更新と動的テーブルのコンテンツの間の最大許容遅延です。リフレッシュに時間がかかりすぎると、パイプラインが鮮度要件を満たさない可能性があります。
たとえば、リフレッシュに8分かかるときに、5分のターゲットラグを設定すると、パイプラインが必要な鮮度を維持できないことになります。
- コスト効率
動的テーブルは、リフレッシュのために仮想ウェアハウスを必要とし、クレジットを消費します。最適化が不十分な動的テーブルは、必要以上にデータをスキャンし、インクリメントが十分な場合にフルリフレッシュをトリガーしたり、ターゲットラグ期間内で完了するためにより大きなウェアハウスが必要になったりする可能性があります。
コストの詳細については、 Understanding costs for dynamic tables をご参照ください。
パフォーマンスの意思決定¶
動的テーブルのパフォーマンスに影響を与える変更は、 いつ 実行できるかに基づいて、2つのカテゴリに分類されます。
設計の変更 |
調整 |
|
|---|---|---|
いつ |
パイプラインを作成する前。 |
パイプラインの実行後。 |
影響 |
高 |
中 |
柔軟性 |
変更が難しく、テーブルを再作成する必要があります。 |
変更が簡単で、テーブルを再作成する必要はありません。 |
例 |
クエリ構造、リフレッシュモード、パイプライン設計。 |
ウェアハウスのサイズ、クラスタリングキー、ターゲットラグ。 |
両方のカテゴリの詳細なガイダンスについては、 動的テーブルのパフォーマンスの最適化 をご参照ください。
始めましょう¶
動的テーブルパフォーマンスの最適化を開始するには、ハンズオンチュートリアルをお試しください。
- チュートリアル:SCD タイプ1ワークロード用に動的テーブルのパフォーマンスを最適化する
動的テーブルパイプラインでパフォーマンスのボトルネックを特定し、解決する方法を学びます。このチュートリアルでは、さまざまなSQLパターンがどのようにインクリメンタルリフレッシュに影響するか、そして
QUALIFY句を使用して効率的に重複行を削除する方法を説明します。
このセクションのトピック¶
- 動的テーブルのパフォーマンスをモニターする
リフレッシュパフォーマンスをモニターし、クエリプロファイルを分析し、主要なメトリックを追跡する方法。
- 動的テーブルのパフォーマンスの最適化
主要な概念および最適化手法:リフレッシュモード、データの局所性、ウェアハウスのサイズ設定、ターゲットラグ、クエリパターン、クラスタリング。
- インクリメンタルリフレッシュ向けにクエリを最適化する
SQL演算子がどのようにインクリメンタルリフレッシュ速度に影響するかに関するパフォーマンスガイド。
- 不変性制約の使用
不変性制約を使用して、履歴データを不変としてマークし、リフレッシュ範囲を縮小する方法。