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

Object Storage V1 と Object Storage V2 の間の重大な変更点

Object Storage V1 (Phonograph) から Object Storage V2 (OSv2) への移行は、主要なアーキテクチャの変更を伴い、多くの重大な変更が必要です。従来の Object Storage V1 (Phonograph) は、大規模な API 表面積を持ち、低レベルのデータベース機能の多くを直接公開していました。対照的に、新しい Object Storage V2 アーキテクチャは、Object Data Funnel サービスを介してオブジェクトを専門のオブジェクトデータベースに同期させることで、スケール、パフォーマンス、柔軟性、セキュリティの向上を図ります。このアーキテクチャの移行により、2 つの主要なタイプの重大な変更が発生します。

  • 専門のオブジェクトデータベースは特定のユースケース向けに設計されているため、Object Storage V1 と同じ機能を提供しない場合があります。そのため、OSv2 ではワークフローを OSv1 とは異なる方法でモデル化する必要があるかもしれません。
  • Object Storage V1 で統合されていた 関心の次元 を分離するため、OSv1 API と直接対話する既存のクエリの一部をリファクタリングする必要があります。

これらの重大な変更により、リファクタリングや修正なしでは、OSv1 を利用したオブジェクトタイプの一部が OSv2 に移行できない場合があります。OSv2 への移行 に関するドキュメントには、これらの問題がユーザーにどのように表示されるか、および OSv1 から OSv2 への移行方法についての詳細が記載されています。

永続的な重大な変更

このセクションでは、Object Storage V1 (Phonograph) と Object Storage V2 (OSv2) の間の重大な変更点のリストを提供します。これらの重大な変更は、オブジェクトタイプを OSv2 に移行する前に対処する必要があります。OSv1 と OSv2 の間のこれらのすべての変更は、オントロジーに入力されるデータの品質を向上させ、より決定論的な動作を保証し、プラットフォーム全体の可読性を向上させることを目的としています。

アクションと編集

  • OSv2 はアクションを介したユーザー編集のみをサポートします。OSv1 編集 API の既存の直接クエリは、OSv2 に移行する前にアクションを使用するようにリファクタリングする必要があります。
  • OSv2 では「書き戻しデータセット」を「実体化」と呼びます。OSv1 では書き戻しデータセットが必要ですが、OSv2 では実体化はオプションです。実体化データセットの詳細については、Materializations を参照してください。

編集履歴

  • OSv1 から OSv2 へのオブジェクトタイプの移行時に、ユーザーの OSv1 編集履歴を保持することはできません。
  • OSv1 からの以前の編集は持続しますが、OSv1 の編集履歴は OSv2 では利用できません。
  • OSv2 では、オントロジーマネージャ内でオブジェクトタイプに対して ユーザー編集履歴を追跡 を有効にし、オブジェクトビューを更新して Edit History ウィジェット を追加し、ユーザー編集履歴を表示する必要があります。
  • ユーザーは、Action Log オブジェクトタイプを設定して、アクションがオブジェクトにどのように影響するかをキャプチャすることもできます。また、対象オブジェクト全体でアクションの履歴を表示するために Action Log Timeline ウィジェット を参照してください。

主キーと一意性

  • OSv2 はデータソースに対して一意のオブジェクト主キーを強制します。データソースに重複する主キーがある場合、そのデータソースをオントロジーにインデックスすることはできず、エラーが発生します。
  • OSv2 は、オントロジーモデリングベストプラクティスを奨励するために、特定のデータタイプを主キーとして使用することを防止します。以下のタイプは主キーとして使用できません:
    • Geohash
    • Geoshapes
    • 配列
    • time series プロパティ
    • 実数タイプ (decimal, double, float)

データとプロパティタイプの制限

  • OSv2 は、すべての同期でデータソーススキーマとオブジェクトタイプスキーマの間のデータタイプの整合性を強制します。プロパティのデータタイプが互換性がない場合、ビルドは失敗します。
  • OSv2 では、プロパティ値として NaN や ±無限大を許可しません。
    • OSv2 では空の文字列は許可されません。OSv1 では、空の文字列は黙って null に変換されていました。
    • Lat, Long は括弧なしのカンマ区切りの文字列である必要があります。たとえば -29.123, 150.982 のようにします。
  • OSv2 ではネストされた配列を持つプロパティは許可されません。
  • OSv2 では配列データタイプのプロパティに null 値を持たせることはできません。
    • OSv1 では、インデックス付き配列プロパティの null 値をスキップし、配列が null 値を含むものとして返します。そのため、null をクエリすると、null 値を持つオブジェクトと一致せず、オブジェクトのロードと検索の間に望ましくない不一致が生じる可能性があります。

変更ログとインクリメンタル更新

  • 変更ログデータソースを持つオブジェクトタイプの場合、OSv2 は 従来の変更ログデータセット で使用されていた「最新のタイムスタンプが勝つ」というセマンティクスを考慮しません。
    • OSv2 はすべてのパイプラインをデフォルトでインクリメンタルにインデックスします。すべての関連する変更ログ計算はバックグラウンドで Funnel によって自動的に実行され、「変更ログ python デコレータ」は不要になります。
  • OSv2 は Geohash プロパティに対してより厳格な検証を行います。

監視

Object Set Service (OSS) の変更

  • OSS API はクエリ文字列のサポートをしていません。OSv1 はクエリ文字列のサポートをしています。
  • OSS カーディナリティメトリクスは、Object Storage V1 と Object Storage V2 の両方のオブジェクトを含むオブジェクトセット(マルチバックエンドオブジェクトセットなど)ではサポートされていません。

一時的な重大な変更

このセクションでは、Object Storage V1 (Phonograph) と Object Storage V2 (OSv2) の間の現在の機能ギャップを列挙しています。これらの機能は開発中であり、重大な変更が解決され次第、リストが更新されます。

  • OSv2 は現在、上流と下流のターゲット間のパスが実体化を通過するスケジュールの接続をサポートしていません。

  • OSv2 には現在、検索応答でユーザーが見ることを許可されているデータよりも少ないデータを返すエッジケースがあります:

    • 次のすべての条件が満たされる場合に問題が発生します:
      • オブジェクトタイプが OSv2 にインデックスされ、制限付きビューのデータソースを使用している。
      • 制限付きビューのデータソースに、配列列にマーキングが適用されている。
      • 配列列に空の配列が含まれている行がある。
    • マーキングの定義によれば、ユーザーは空の配列を持つ行を見ることが許可されていますが、OSv2 は検索応答で対応する行を返しません。
    • 一時的な解決策として、各配列に要素を追加し、マーキングで使用される配列列が空の配列を含まないようにすることができます。たとえば、すべてのユーザーがアクセスできるマーキングを追加することができます。
  • OSv2 は現在、プロパティデータタイプとしての decimal をサポートしていません。

  • OSv2 は現在、制限付きビューのデータソースの詳細なアクセス権ポリシーにおける Not 条件をサポートしていません。

  • OSv2 は現在、カスタムアナライザーをサポートしていません。

  • OSv2 は現在、インクリメンタルに更新される元データセットに対するプロジェクションをサポートしていません。

  • OSv2 は現在、複数のトランザクションを持つインクリメンタルな View データセットをバックにしたオブジェクトタイプのインデックス作成をサポートしていません。

  • Foundry Rules Archetypes は現在、OSv2 の完全な機能セットをサポートしていません。たとえば、複数のデータソースをバックにしたオブジェクトタイプや複数の実体化を持つオブジェクトタイプはサポートされていません。詳細については、Foundry Rules ドキュメント を参照してください。