1. エンティティ定義の変更の影響

スキーマ変更が Graph サーバーに与える影響

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

次のセクションでは、Sitecore Content Hub™ でのさまざまなタイプのエンティティとエンティティ定義の変更、およびそれらが Graph サーバーに与える影響について説明します。

Content Hub のデータは、たとえば、アセット、製品、プロジェクトなどのエンティティと呼ばれるコンテンツ タイプで構成されています。データ スキーマは、メンバー グループを通して作成されるプロパティとリレーションから定義されます。エンティティ定義は、1 つ以上のメンバー グループで構成されます。

エンティティ定義の変更

エンティティ定義で行われた変更は、次の 3 つのグループに分類されます。

  • コンテンツの変更
  • 検証の変更
  • 表現の変更
警告

エンティティ定義を変更すると、データの構造が変更されます。既存のエンティティ定義を変更するときは注意してください。

注意

エンティティについて詳しくは、エンティティを参照してください。

コンテンツの変更

コンテンツの変更には、エンティティ定義への変更が含まれます。これは、エンティティ モデルで直接表すことができます (関係フラグの変更、継承、新規または削除されたメンバーなど)。

この変更のグループは、さらに 2 つのサブカテゴリに分けることができます。

  • 子孫に影響する変更: これは、エンティティ間の関係を理由に行われる変更の大部分です。
  • 子孫に影響を与えない変更: これは、エンティティへの変更のごく一部です。たとえば、フルテキスト コンテンツに含まれていないプロパティの追加や、継承の形式を提供しないリレーションの追加などです。

検証の変更

検証の変更には、エンティティ定義または対応するエンティティの保存に適用されるルールへの変更が含まれます。以下が含まれます。

  • エンティティ定義メンバーの必須フラグへの変更。
  • 必須メンバー条件の変更。
  • 必須の検証カルチャへの変更。
  • プロパティ定義の正規表現または検証式への変更。
  • 親または子の必須のルール/条件への変更。

表現の変更

表現の変更には、外部 API (REST API など) を介してエンティティ モデルを表現するために使用されるルールに関連する変更が含まれます。したがって、これらのルールは、既存のエンティティ モデルの形式に必須ではありません。以下が含まれます。

  • 更新を許可フラグの変更。
  • ナビゲーションを許可フラグの変更。
  • ネストフラグの変更。
  • ネストされたプロパティのリストへの変更。
  • ネスト アクセス許可フラグへの変更。
  • レンディション関係フラグへの変更。

エンティティの変更

エンティティ定義の形式でエンティティ スキーマが存在するため、エンティティの変更は 1 種類のみです。エンティティへの変更には以下が含まれます。

  • システム プロパティの値への変更 (例: modified onis locked)。
  • プロパティの値の変更。
  • 差分セットの形式によるリレーションを介してリンクされたエンティティの変更。
  • エンティティ リレーション プロパティの変更 (例: セキュリティを継承フラグ)。

エンティティ モデルのデータ フロー

エンティティ モデルは有向グラフとして表すことができるため、さまざまな形式の継承を使用できます。グラフは、期待される効果を提供するためにこの原則に基づいて構築されています。継承の基本的なタイプは次のとおりです。

  • タクソノミーの継承: エンティティにはタクソノミー階層が付加されており、このタクソノミー (ファセット) を使用して検索できます。
  • パスの継承: フル パスは、パスが有効なエンティティで使用できます。
  • トポロジの継承: エンティティはその親から直接継承します。
  • コンテンツの継承: エンティティは、その祖先のフルテキスト コンテンツを継承します。
  • 完了継承: エンティティには、その祖先の完了コンテンツがあります。
  • セキュリティの継承: エンティティは、エンティティ アクセスを定義する祖先からセキュリティを継承します。

このモデルは、多数の可能な設定を作成します。例は次のとおりです。

  • 全文検索に含める必要のあるエンティティ コンテンツへの変更: この変更には、エンティティ自体と、コンテンツを継承するすべての子孫の更新が必要になります。
  • エンティティをロックした: この情報は継承の一部ではないため、この特定のエンティティの関係のみを更新する必要があります。
  • エンティティがシステムから削除された。したがって、関係/継承を介して接続された子孫はすべて更新する必要があります。

依存関係の順序

基本原則は、エンティティまたは関係の情報への変更は、エンティティまたは継承を介してエンティティの子孫に表示されるため、システム内の関連エンティティに古い情報が含まれないように、完全に伝達する必要があるということです。

継承の以前の概念は、エンティティ (たとえば、親、子、孫) とエンティティ定義 (たとえば、アセット定義エンティティからファイル定義エンティティへのデータ フローがありますが、その逆はありません) に自然な順序を作成します。

この概念は依存関係の順序であり、複数のオブジェクトの相互依存関係を表します。依存関係が少ないエンティティとエンティティ定義 (高階層エンティティ) と、依存関係が多いエンティティ (低階層エンティティ) があります。

重要

上位階層のエンティティまたはエンティティ定義に変更を加えると、次のセクションで説明されているように、Graph サーバーにかなりの負荷がかかる可能性があります。

Graph サーバーが提供するサービス

Graph サーバーは、メモリ内のエンティティ データ モデル表現を備えた環境を提供し、祖先の高速な走査とコンテンツの取得を提供します。

注意

システム統計と Graph サーバーの詳細については、統計を参照してください。

Graph サーバーは、次のモジュールを提供します。

  • Elasticsearch グラフ ワーカー: 非正規化された検索サービス ドキュメントの作成を担当し、エンティティのデータ モデルに変更を加えた後、有効にします。
  • ビジネス監査グラフ ワーカー: エンティティのデータ モデルに影響を与えないものを含め、システム内の任意のイベントから監査エントリを作成します。

変更が Graph サーバーに与える影響

システムに変更を加えると、Graph サーバーで次の一連のイベントが発生します。

  1. イベントがエンティティ データ モデルへの変更を記述する場合、グラフ モデルが更新されます。

  2. グラフ モデルが更新されると、グラフの変更をリッスンしているグラフ ワーカーは、イベントのすべての効果を適用するように通知されます (たとえば、ElasticSearch グラフ ワーカーは、影響を受けるすべてのエンティティ バインド検索サービス ドキュメントをエクスポートします)。

  3. イベントがエンティティ データ モデルを変更しなかったためにグラフ モデルが影響を受けていない場合、そのような非変更 (メタ) イベントをリッスンしているグラフ ワーカーは、特定のアクションを実行するように通知されます (たとえば、ビジネス監査グラフ ワーカーは既存のグラフを使用して監査エントリを作成しリッチ コンテキスト情報を構成します)。

次のイベントは、グラフ モデルを変更しません。

  • エンティティ定義の検証の変更。
  • エンティティ定義の表現の変更。
  • エンティティ、エンティティ定義、およびデータ ソースの直接の変更または削除に関連しないイベント。

次のイベントがグラフ モデルを再読み込みします。

  • 子孫に影響を与えるコンテンツ エンティティ定義の変更は、対応するエンティティ定義のすべてのエンティティと、依存エンティティ定義のすべてのエンティティを再読み込みします。
  • 子孫に影響を与えないコンテンツ エンティティ定義を変更すると、対応するエンティティ定義のすべてのエンティティと、直接依存するエンティティ定義 (例: 子) のすべてのエンティティが再読み込みされます。
  • エンティティを変更すると、上記の原則に従って、このエンティティから情報を継承する子孫エンティティが対応するエンティティに再読み込みされます。
重要

上位階層のエンティティまたはエンティティ定義に変更を加えると、次のセクションで説明されているように、Graph サーバーにかなりの負荷がかかる可能性があります。

この記事を改善するための提案がある場合は、 お知らせください!