スキーマの変更、継承、グラフ・サーバー
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
グラフ・サーバーは、エンティティ・データのインメモリー・モデルを提供するだけでなく、高速な祖先トラバーサルとコンテンツ取得も提供します。これには、次のものが含まれます。
-
Elasticsearchグラフワーカーは、エンティティデータモデルへの変更後にアクティブ化される非正規化された検索サービスドキュメントを作成します。
-
ビジネス監査グラフワーカーは、エンティティデータモデルに影響を与えないイベントを含め、システム内の任意のイベントから監査エントリを作成します。
以下では、Sitecore Content Hubのさまざまなスキーマ変更タイプ、継承モデル、およびグラフ サーバーに対する変更の影響について説明します。
エンティティ定義を変更すると、データの構造も変更されます。既存のエンティティ定義を変更する場合は注意してください。エンティティ定義を削除できるのは、定義自体にリンクされたリレーションまたはタクソノミーがない場合のみです。削除するエンティティ定義の下に作成されたすべてのエンティティは失われます。
スキーマ変更タイプ
|
変更タイプ |
形容 |
含む |
|---|---|---|
|
コンテンツ |
エンティティ モデルによって直接表すことができるエンティティ定義の変更 (リレーション フラグの変更、継承、新規または削除されたメンバーなど)。 |
変更点: 子孫に影響します。これは、エンティティ間に多数の関係があるため、ほとんどの変更に当てはまります。子孫に影響を与えません。たとえば、フルテキスト コンテンツに含まれていないプロパティの追加や、継承を提供しないリレーションの追加などです。 |
|
検証 |
エンティティ定義に適用されるルールの変更。 |
変更先: エンティティ定義メンバーの必須フラグ。必須のメンバー条件。必須の検証カルチャ。プロパティ定義の正規表現または検証式。親または子の必須のルールと条件。 |
|
表現 |
外部API (REST APIなど) を使用してエンティティモデルを表すルールの変更。これらのルールは、既存のエンティティモデルには必須ではありません。 |
ネストされたプロパティのリストと次のフラグへの変更: 更新を許可 ナビゲーションを許可する ネストされた権限 は レンディション リレーション |
|
実体 |
エンティティ項目の変更。 |
システム・プロパティーの値 (変更日やロックされているフラグなど) の変更プロパティの値。差分セットの形式でリレーションを介してリンクされたエンティティ。エンティティ関係プロパティ (継承セキュリティ フラグなど)。 |
継承と依存関係
Content Hubデータ モデルは有向グラフとして表すことができ、これにより複数の形式の継承が可能になります。
-
Taxonomy inheritance - エンティティにはタクソノミー階層がアタッチされており、このタクソノミーをファセットとして使用して検索できます。
-
Path inheritance - フルパスは、パス対応エンティティで使用できます。
-
Topology inheritance - エンティティは、親から直接継承します。
-
Content inheritance - エンティティは、その先祖のフルテキスト コンテンツを継承します。
-
Completion inheritance - エンティティは、親エンティティと祖先エンティティからすべてのコンテンツを継承します。
-
Security inheritance - エンティティは、その先祖からセキュリティ設定を継承し、そのエンティティへのアクセスを決定します。
パフォーマンス上の理由から、継承のレベルが2つ以上ある場合は、Inherits securityスイッチをオフにすることをお勧めします。このスイッチは、エンティティ詳細ページの Technicalグループにあります。
このモデルでは、次のようなさまざまな変更設定が作成されます。
-
Entity content changed - エンティティと、エンティティから継承する子孫の更新を必要とする変更。
-
Entity locked - エンティティのリレーションの更新が必要な変更。
-
エンティティがシステムから削除されました - リレーションと継承を通じて接続された子孫への更新が必要な変更。
エンティティまたはリレーション情報に対する変更は、エンティティまたは継承によってエンティティの子孫に表示されるため、システム内のリレート エンティティに古い情報が含まれないように反映する必要があります。
継承の概念は、エンティティ(祖先、親、子、子孫など)とエンティティ定義に自然な秩序を生み出します。たとえば、アセット定義エンティティからファイル定義エンティティへのデータの流れはありますが、その逆はありません。
この概念は、複数のオブジェクトの相互依存性を表します。依存関係が少ないエンティティとエンティティ定義は上位階層と呼ばれ、依存関係が多いエンティティとエンティティ定義は下位階層と呼ばれます。
グラフ・サーバの動作
システムに何らかの変更が加えられると、グラフ・サーバーで次の一連のイベントがトリガーされます。
-
イベントがエンティティデータモデルへの変更を説明する場合、グラフモデルは更新されます。
-
グラフ モデルが更新されると、グラフの変更をリッスンしているすべてのグラフ ワーカーは、イベントのすべての効果を適用するように指示されます。たとえば、ElasticSearchグラフワーカーは、影響を受けるすべてのエンティティバインド検索サービスドキュメントをエクスポートします。
-
イベントによってエンティティ データ モデルが変更されず、グラフ モデルが更新されなかった場合、変更されていないイベントをリッスンしているグラフ ワーカーは、対応するアクションを実行するように指示されます。たとえば、ビジネス監査グラフワーカーは、既存のグラフデータを使用して豊富なコンテキスト情報を作成しながら、監査エントリを作成します。
次のイベントでは、グラフ モデルは変更されません。
-
エンティティ定義に対する検証の変更。
-
エンティティ定義に対する表現の変更。
-
エンティティ、エンティティ定義、およびデータソースの直接的な変更または削除に関連しないイベント。
次のイベントにより、グラフモデルが再読み込みされます。
|
変更 |
積み直す |
|---|---|
|
子孫にも影響を与えるコンテンツ エンティティ定義 |
対応するエンティティ定義内のすべてのエンティティ、および依存エンティティ定義内のすべてのエンティティ。 |
|
子孫に影響を与えないコンテンツ エンティティ定義 |
対応するエンティティ定義内のすべてのエンティティ、および子エンティティ定義内のすべてのエンティティ。 |
|
エンティティ |
対応するエンティティ、および影響を受けるエンティティから情報を継承する子孫エンティティ (このトピックで説明するロジックに従う)。 |
変更の結果としてグラフ・サーバーに重大なワークロードがかかる可能性があることに注意してください。大幅な変更 (特に上位階層エンティティとエンティティ定義に関連する変更) を行う場合は、適切なダウンタイム期間を計画するか、標準作業時間外に変更を行います。