データ・モデリング分析

ストレージ、容量、冗長性および整合性に基づいて設計を分析します。

これまでに、実体とその関係の概念モデルを作成してきました。概念モデルからは、予想されるクエリーを使用してテーブル・スキーマを作成しました。データ・モデリングの最後のステップでは、論理設計を分析し、必要と思われる変更を突き止めます。これらの変更は、これから行ういくつかの設計の選択によって生じるパーティション・サイズの制限事項、データ整合性のコスト、およびパフォーマンス・コストを理解することによって必要となる場合があります。

効率的な操作を行うには、特定の制限内にパーティションのサイズを収める必要があります。パーティション・サイズの2つの測定値は、パーティション内の値の数と、ディスク上のパーティション・サイズです。パーティションごとの行の最大数に理論的な制限はありませんが、試行錯誤によって現実的な制限を判断できます。ディスク領域のサイズの決定はさらに複雑で、各テーブル内の行数、カラム数、プライマリ・キー・カラムおよび静的カラムが関与します。各アプリケーションは異なる効率パラメーターを保持しますが、目安としては、値の最大数を100,000項目以下、ディスク・サイズを100 MB以下にするのが最適です。

データの冗長性も考慮する必要があります。DataStax Enterpriseの分散設計によって、テーブル内で重複したデータと複数のパーティションの複製という2つの冗長性が生じます。

データは一般的に複数のテーブルに複製されるため、書き込み中にパフォーマンスのレイテンシーが発生し、さらに多くのディスク領域が必要になります。サイクリストの名前とIDを、レースのカテゴリー、完了したレース、サイクリストの統計などの他の項目とともに複数のデータに格納した場合を考えてみてください。名前とIDを複数のテーブルに格納すると、2つの値が各テーブルに格納されるという、線形複製が発生します。テーブルの設計では、多数の行に格納される無制限のキーワードなど、高次の複製の可能性を考慮する必要があります。n個のキーワードがm行に格納されているケースは適切なテーブル設計ではありません。クエリーをまず念頭に置きながら、テーブル・スキーマを再考して設計を改善する必要があります。

DataStax Enterpriseは、レプリケーション係数に基づき、より多くのディスク領域を使用してパーティション・データを複製します。レプリケーションは分散データベースに必要な側面であり、ディスク・ストレージのサイズを正しく決めることが重要です。

アプリケーション側結合は、パフォーマンスを大きく低下させる場合があります。一般的に、結合を必要とするクエリーを分析し、事前に計算して結合結果を追加のテーブルに格納することを検討してください。DataStax Enterpriseでは、パフォーマンスを向上させるために1つのクエリーに1つのテーブルを使用することを目標とします。軽量トランザクション(LWT)もパフォーマンスに影響を及ぼすことがあります。LWTを使用したクエリーが必要であるかどうかを検討し、絶対に必要でない場合には、要件を取り除いてください。