スキーマ設計の考慮事項
Oracle Globally Distributed Databaseスキーマの設計は、パフォーマンスとスケーラビリティに大きく影響します。スキーマの設計が不適切な場合、データおよびワークロードがシャード間にバランスよく分散されず、マルチシャード操作の割合が大きくなります。
データ・モデルは、単一のルート表を持つ階層ツリー構造である必要があります。Oracle Globally Distributed Databaseは、階層内の任意のレベル数をサポートしています。
分散データベースの利点を活用するには、1つのシャードで処理されるデータベース・リクエストの数が最大になるように、分散データベースのスキーマを設計する必要があります。
分散データベース・スキーマは、次の特性を持つシャード表ファミリおよび重複表で構成されます。
シャード表ファミリ
- シャーディング・キーによって等価パーティション化された一連の表。
- 関連するデータは、常にまとめて格納および移動されます。
- 結合および整合性制約チェックはシャード内で実行されます。
- データ分散方法とシャーディング・キーは、アプリケーションの要件に基づいています。
- シャーディング・キーは、主キーに含まれている必要があります。
重複表
- すべてのシャードにレプリケートされる非シャード表。
- 通常、共通参照データが含まれます。
- 各シャードで読取りおよび更新できます。
分散データベース・スキーマ設計の計画
分散データベースにデータを移入した後では、表をシャーディングするのか複製するのか、シャーディング・キーなど、スキーマの属性の多くは変更できません。したがって、分散データベースをデプロイする前に次の点を慎重に考慮してください。
-
どの表をシャーディングするか?
-
どの表を複製するか?
-
どのシャード表をルート表にするか?
-
他の表をルート表にリンクするためにどの方法を使用するか?
-
どのデータ分散方法を使用するか?
-
どのシャーディング・キーを使用するか?
-
どのスーパー・シャーディング・キーを使用するか? (データ分散方法がコンポジットである場合)