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

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

スキーマ変更を管理する

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

Foundry オントロジー上に構築されたワークフローやアプリケーションは、組織のニーズの変化に応じて進化する必要があります。この進化には、ほかの箇所にも追加の変更が必要となるようなオブジェクトタイプのスキーマの更新(「破壊的変更」)が伴う場合があります。スキーマの破壊的変更の例として、既存のプロパティのデータ型の変更、オブジェクトタイプの元データソースの変更、オブジェクトタイプの主キーの変更などがあります。スキーマの破壊的変更の全一覧は、以下を参照してください。

Object Storage v1 (Phonograph) では、特にオブジェクトタイプにユーザーによる編集がある場合、ユーザーインターフェースはこのようなスキーマ変更を推奨していません。これは、OSv1 ではユーザーによる編集を移行できないためです。時間がかかる複雑な手動対応を実施できない限り、破壊的変更によって既存のユーザー編集が失われます。

Object Storage v2 では、柔軟かつ反復的なワークフロー構築を容易にするため、スキーマ変更に対するこの制限が取り除かれています。このため、OSv2 は、スキーマの破壊的変更後に既存のユーザー編集に適用できる、事前定義された移行の一覧を備えたスキーマ移行フレームワークを提供します。Ontology Manager はスキーマの破壊的変更を自動的に検出し、事前定義された一覧から移行の選択肢を選ぶようユーザーを案内します。サポートされている移行の全一覧は、以下を参照してください。

ワークフローの例

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

破壊的変更の警告

警告の表示に加えて、ユーザーがオントロジーへの変更を保存しようとすると、Ontology Manager は変更を確認インターフェースに移行タブを表示します。Ontology Manager は、破壊的変更に対する移行をユーザーが定義するまで、変更の保存をブロックします。これにより、その変更がほかのワークフローを破壊することを防ぎます。

ユーザーが移行タブに移動すると、Ontology Manager は以下に示すように、破壊的変更の種類に応じて利用可能な移行の選択肢を表示します。

編集を確認

ユーザーが Ontology Manager でスキーマ変更を指定して保存すると、バックエンドでオブジェクトタイプの新しいスキーマバージョンが作成され、対応する置き換え用 Funnel バッチパイプラインがオーケストレーションされて、オブジェクトタイプのインデックスが更新されます。置き換え用パイプラインが完了し、新しいバージョンがオブジェクトデータベースによって完全にハイドレーションされたと宣言されるとすぐに、Object Set Service (OSS) およびオントロジー API を利用するほかのコンシューマーから、オブジェクトタイプの新しいバージョンにクエリを実行できるようになります。

スキーマの破壊的変更の一覧

オントロジーにおける以下の変更は、スキーマの破壊的変更とみなされます。

  • オブジェクトタイプの入力データソースの変更
  • オブジェクトタイプの主キーの変更
  • プロパティのデータ型の変更
  • ユーザーによる編集があるプロパティの ID の変更
  • ユーザーによる編集があるプロパティの削除
  • ユーザーによる編集がある構造体フィールドの削除
  • 構造体フィールドのデータ型の変更

スキーマの非破壊的変更の一覧

オントロジーにおける以下の変更は、スキーマの破壊的変更とはみなされません。

  • ユーザーによる編集があるプロパティの表示名、タイトルキー、レンダリングヒント、タイプクラス、または重要性の変更
  • ユーザーによる編集が一度も行われていないプロパティの削除、またはそのプロパティのスキーマ変更
  • ユーザーによる編集が一度も行われていない構造体フィールドの削除、またはその構造体フィールドのスキーマ変更

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

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

  • すべてのプロパティ編集を削除: この移行命令は、オブジェクトタイプの特定のプロパティに対する既存のユーザー編集をすべて削除します。オブジェクトタイプのほかのプロパティに対するユーザー編集には影響しません。この命令は通常、オブジェクトタイプからプロパティを削除し、置き換え先となる新しいプロパティがない場合に使用します。

  • すべての構造体フィールド編集を削除: この移行命令は、オブジェクトタイプの構造体プロパティ内の特定の構造体フィールドに対する既存のユーザー編集をすべて削除します。同じ構造体プロパティ内のほかの構造体フィールドに対するユーザー編集には影響しません。この命令は通常、構造体プロパティから構造体フィールドを削除し、置き換え先となる新しい構造体フィールドがない場合に使用します。

  • すべての編集を削除: この移行命令は、オブジェクトタイプのすべてのプロパティに対する既存のユーザー編集をすべて削除します。この移行が実行されると、オブジェクトタイプのすべてのオブジェクトの状態が、入力データソースのデータにリセットされます。この移行を実行するには、オブジェクトタイプのデータソースタブに移動し、編集セクションにある編集を削除を選択します。

  • 編集を移動: この移行命令は、特定のプロパティまたはオブジェクトタイプ全体に対する既存のユーザー編集をすべて移動します。この命令は通常、次の2つの場合に使用します。

    • 既存のプロパティの名前を変更するか、既存のプロパティを削除して新しいプロパティに置き換える場合、または
    • オブジェクトタイプの入力データソースを別のデータソースに置き換える場合。
  • 構造体フィールド編集を移動: この移行命令は、特定の構造体フィールドに対する既存のユーザー編集をすべて別の構造体フィールドに移動します。この命令は通常、既存の構造体フィールドを削除して新しい構造体フィールドに置き換える場合に使用します。

  • プロパティを新しいデータ型にキャスト: この移行命令は、特定のプロパティに対する既存のユーザー編集のデータ型を、そのプロパティの新しいデータ型にキャストします。サポートされているデータ型のキャストは次のとおりです。

    • 添付ファイル → 文字列
    • ブール値 → 文字列
    • 日付 → 文字列
    • Double → Integer
    • Double → Long
    • Double → 文字列
    • Geopoint → 文字列
    • Geoshape → 文字列
    • Integer → Long
    • Integer → Double
    • Integer → 文字列
    • Long → Integer
    • Long → Double
    • Long → 文字列
    • 必須マーキング → 文字列
    • 文字列 → Integer
    • 文字列 → Long
    • 文字列 → Double
    • 文字列 → ブール値
    • 文字列 → 日付
    • 文字列 → タイムスタンプ
    • 文字列 → Geopoint
    • 文字列 → Geoshape
    • タイムスタンプ → 文字列
  • 構造体フィールドを新しいデータ型にキャスト: この移行命令は、特定の構造体フィールドに対する既存のユーザー編集のデータ型を、その構造体フィールドの新しいデータ型にキャストします。サポートされているデータ型のキャストは次のとおりです。

    • ブール値 → 文字列
    • 日付 → 文字列
    • Double → Integer
    • Double → Long
    • Double → 文字列
    • Geopoint → 文字列
    • Integer → Long
    • Integer → Double
    • Integer → 文字列
    • Long → Integer
    • Long → Double
    • Long → 文字列
    • 文字列 → Integer
    • 文字列 → Long
    • 文字列 → Double
    • 文字列 → ブール値
    • 文字列 → 日付
    • 文字列 → タイムスタンプ
    • 文字列 → Geopoint
    • タイムスタンプ → 文字列
  • 値をバックフィル: この移行命令は、ユーザー編集によって作成されたオブジェクトのプロパティが未設定の場合にのみ、そのプロパティを指定された値に設定します。明示的に null に設定された値を含め、既存の値は上書きしません。この命令は通常、オブジェクトタイプにプロパティを追加した後、ユーザー編集によって作成された既存のオブジェクトにデフォルト値を割り当てるために使用します。

  • マイグレーションを元に戻す: この移行命令は、以前適用されたスキーマ移行を元に戻します。この命令は通常、Ontology Manager の履歴セクションから、保存済みのオントロジーの変更を元に戻す場合に使用します。

    • 移行を元に戻すには、対象のオントロジーの Ontology Manager で履歴セクションに移動し、履歴イベント内の移行セクションを展開して、移行イベントの ... メニューを開き、元に戻すを選択します。移行を元に戻したら、Ontology Manager 内で変更を保存します。

移行を元に戻す

一度に適用できるスキーマ移行は最大500件です。スキーマ変更の数がこの上限を超える場合は、移行を複数のバッチに分けて実行する必要があります。

現在のスキーマ移行フレームワークでは、オブジェクトタイプの主キープロパティへの移行命令の適用に対応していません。

  • 失敗したスキーマ移行からの復旧: スキーマ移行が完了せず失敗した場合、データソースタブの置き換え用パイプラインの上にエラーメッセージが表示され、インデックス化の失敗からオブジェクトタイプを復旧するための情報が示されます。失敗からの復旧に追加のスキーマ移行のステージングが必要な場合、エラーメッセージにスキーマ移行を修正オプションが表示され、必要な移行をステージングできます。

データソースタブには、置き換え用パイプラインの上にエラーメッセージが表示され、失敗したスキーマ移行からオブジェクトタイプを復旧するためのオプションが示されます。