マテリアライズド・ビューのベスト・プラクティス

ベース・テーブルとマテリアライズド・ビューの間の不整合を防ぐため、次のガイドラインに従ってください。

現在、ベースとビューの間の不整合を自動的に検出して修正する方法がないため(ビューの削除と再作成を除く)、次のベスト・プラクティスに従って、ベースとテーブル・ビューの間の整合性を確保してください。
  • ベースとビューの不整合を回避するために、ONE(LOCAL_QUORUMなど)より大きい整合性レベルを使用して、マテリアライズド・ビューでベース・テーブルに書き込みます。または、-Dmv_enable_coordinator_batchlog=trueオプションを使用して、要求の途中で失敗したコーディネーターに対する保護を強化することもできます。
    注: -Dmv_enable_coordinator_batchlog=trueオプションを使用すると、ビューの書き込み操作が大幅に遅くなります。
  • ノードが削除または置換された場合、max_hint_window_in_msで指定した値よりダウン時間が長い場合、または新しいデータ・センターが追加された場合は、ベース・テーブルとビューの両方でリペア操作を実行します。この推奨事項は、マテリアライズド・ビューを持つテーブルだけでなく、テーブルのデータ損失を防ぐ場合に効果的です。
  • ビューに対して定期的にリペアを実行し(gc_grace_secondsで指定した期間ごとに少なくとも1回)、ビューのトゥームストーンがすべてのレプリカに確実に伝播されるようにし、データの復活を防止します。この推奨事項は、手動で非正規化されたテーブルなど、削除操作が発生したテーブルに対して効果的です。