オントロジーオブジェクトの編集と実体化スキーマ変更の管理

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

スキーマ変更の管理

オブジェクトタイプスキーマの変更

Foundry オントロジーを基盤としたワークフローとアプリケーションは、組織のニーズが変化するにつれて進化するべきです。その一部では、オブジェクトタイプのスキーマを更新することで、他の場所で追加の変更が必要となるような進化(「破壊的な変更」)が発生するかもしれません。スキーマへの破壊的な変更の例としては、既存のプロパティのデータタイプを変更する、オブジェクトタイプのバックエンドデータソースを変更する、オブジェクトタイプの主キーを変更する、などがあります。破壊的なスキーマ変更の全リストについては下記を参照してください。

Object Storage V1(Phonograph)では、ユーザーインターフェースがこのようなスキーマ変更を制限し、特にオブジェクトタイプがユーザーからの編集を受けている場合には強く制限します。これは、OSv1ではこのようなユーザー編集を移行できないためであり、代わりに、破壊的な変更は既存のユーザー編集の損失を招くことになります。そのため、時間と労力をかけて複雑な手動介入が行える場合に限ります。

Object Storage V2はこのスキーマ変更の制限を取り除き、柔軟で反復的なワークフロービルディングを支援します。そのため、OSv2は、破壊的なスキーマ変更後に既存のユーザー編集に適用できる事前定義された移行のリストを持つスキーマ移行フレームワークを提供します。オントロジーマネージャーは破壊的なスキーマ変更を自動的に検出し、ユーザーに事前定義されたリストから移行オプションを選択するように誘導します。完全にサポートされている移行の全リストについては下記を参照してください。

ワークフローの例

このワークフローの例では、ユーザーが既存のユーザー編集を持つオブジェクトタイプから Year プロパティを削除します。オントロジーマネージャーは自動的にこれを破壊的なスキーマ変更として識別し、移行が必要であるという警告を表示します。以下のように表示されます。

破壊的な変更の警告

警告を表示するだけでなく、ユーザーがオントロジーに変更を保存したいときに、オントロジーマネージャーは Review edits インターフェースに Migrations タブを表示します。オントロジーマネージャーは、破壊的な変更のための移行をユーザーが定義するまで、ユーザーが変更を保存することをブロックします。これにより、他のワークフローが壊れるのを防ぎます。

ユーザーが Migrations タブに移動すると、オントロジーマネージャーは破壊的な変更のタイプに基づいて利用可能な移行オプションを表示します。以下に示すように表示されます。

Review edits

オントロジーマネージャーでユーザーによってスキーマ変更が指定され保存されると、バックエンドでオブジェクトタイプの新しいスキーマバージョンが作成され、対応するreplacement Funnel pipelineがオブジェクトタイプのインデックスを更新するためにオーケストレーションされます。新しいオブジェクトタイプバージョンは、replacement pipelineが完了し、新しいバージョンが完全に オブジェクトデータベースによって hydratedであると宣言されるとすぐに、Object Set Service(OSS)およびオントロジーAPIの他の消費者からクエリ可能になります。

破壊的なスキーマ変更のリスト

以下のオントロジーの変更は、破壊的なスキーマ変更と考えられています。

  • オブジェクトタイプの入力データソースを変更する
  • オブジェクトタイプの主キーを変更する
  • プロパティのデータタイプを変更する
  • ユーザーの編集を受けたプロパティのIDを変更する
  • ユーザーの編集を受けたプロパティを削除する

破壊的でないスキーマ変更のリスト

以下のオントロジーの変更は、破壊的なスキーマ変更とは見なされません

  • ユーザーの編集を受けたプロパティの表示名、タイトルキー、レンダリングヒント、タイプクラス、または可視性を変更する
  • ユーザーの編集を受けていないプロパティに対してプロパティを削除するか、スキーマを変更する

OSv2でサポートされているスキーマ移行のリスト

以下は、現在Object Storage V2でサポートされているスキーマ移行の全リストです。

  • すべてのプロパティ編集を削除: この移行指示は、オブジェクトタイプの特定のプロパティに対する既存のユーザー編集をすべて削除します。オブジェクトタイプの他のプロパティに対するユーザー編集は影響を受けません。この指示は一般的に、オブジェクトタイプからプロパティを削除し、代替となる新しいプロパティがない場合に使用されます。
  • すべての編集を削除: この移行指示は、オブジェクトタイプのすべてのプロパティに対する既存のユーザー編集をすべて削除します。この移行が実行されると、オブジェクトタイプのすべてのオブジェクトインスタンスの状態は、入力データソースのデータにリセットされます。
  • 編集を移動: この移行指示は、特定のプロパティまたは全体のオブジェクトタイプに対する既存のユーザー編集をすべて移動します。この指示は一般的に2つのケースで使用されます。
    • 既存のプロパティがリネームされたり削除されて新しいプロパティに置き換えられる場合、または
    • オブジェクトタイプの入力データソースが別のデータソースに置き換えられる場合。

移行ごとに最大50の編集を適用できます。編集の数がこの限度を超える場合、移行はバッチで行わなければなりません。

  • 新しいタイプにキャスト: この移行指示は、特定のプロパティに対する既存のユーザー編集のデータタイプを、プロパティの新しいデータタイプにキャストします。サポートされているデータタイプキャストのリストは次の通りです。
    • 添付 → 文字列
    • ブール値 → 文字列
    • 日付 → 文字列
    • ダブル → 整数
    • ダブル → 長
    • ダブル → 文字列
    • ジオハッシュ → 文字列
    • ジオシェイプ → 文字列
    • 整数 → 長
    • 整数 → ダブル
    • 整数 → 文字列
    • 長 → 整数
    • 長 → ダブル
    • 長 → 文字列
    • 強制的なマーキング → 文字列
    • 文字列 → 整数
    • 文字列 → 長
    • 文字列 → ダブル
    • 文字列 → ブール値
    • 文字列 → 日付
    • 文字列 → タイムスタンプ
    • 文字列 → ジオハッシュ
    • 文字列 → ジオシェイプ
    • タイムスタンプ → 文字列
  • 移行を元に戻す: この移行指示は、以前に適用されたスキーマ移行を元に戻します。この指示は一般的に、保存されたオントロジーの変更がオントロジーマネージャーの History セクションを通じて元に戻される場合に使用されます。

現在のスキーマ移行フレームワークは、オブジェクトタイプの主キープロパティに移行指示を適用することをサポートしていません。主キー移行のサポートは将来追加される予定です。