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

データの制限

Object Storage v2 (OSv2) は、オントロジーに取り込まれるデータの品質を確保し、より決定論的な動作を実現し、プラットフォーム全体でのわかりやすさを向上させるために、データに制限を適用します。これらの制限はインデックス化時に検証されます。バッチデータソースを元にするオブジェクトタイプでは、違反があるとインデックス化ジョブが失敗します。ストリーミングデータソースを元にするオブジェクトタイプでは、これらの制限に違反するレコードが削除されます。

主キーと一意性

OSv2 ではオブジェクトの主キーが一意である必要がありますが、一意性の評価方法はデータソースの種類によって異なります。データセットデータソースでは、主キーは各トランザクション内で一意である必要があります。単一のトランザクションに重複する主キーが含まれている場合、インデックス化は失敗し、エラーがスローされます。インクリメンタル(差分)データセットをインデックス化する際に、同じ主キーが複数のトランザクションに現れる場合、OSv2 は最新のトランザクションの行を使用します。

Iceberg テーブルデータソースでは、別々の書き込みで追加された行も含め、テーブルの現在の内容全体で主キーが一意である必要があります。キーの重複はサポートされておらず、最初のインクリメンタルなインデックス化が成功した場合でも、インデックス化済みデータが不正確になったり、その後の完全な再インデックス化が失敗したりする可能性があります。Iceberg テーブルデータソースを参照してください。

OSv2 では、オントロジーのモデリングのベストプラクティスを促進するために、特定のデータ型を主キーとして使用できないようにしています。次のデータ型は主キーとして使用できません。

  • Geopoint
  • Geoshape
  • 配列
  • 時系列プロパティ
  • 実数型(Decimal、Double、Float)

プロパティタイプの制限

  • OSv2 は、同期のたびにデータソースのスキーマとオブジェクトタイプのスキーマの間でデータ型の整合性を強制します。プロパティのデータ型に互換性がない場合、ビルドは失敗します。
  • 既存のプロパティのベースタイプを変更する場合(たとえば、Double から Integer へ)、そのプロパティの既存の値はすべて、変更先のデータ型と厳密に互換性がある必要があります。新しいデータ型と互換性のない値(Integer に変更する際の小数や、通貨記号など)がデータエントリに含まれている場合、移行は失敗し、A property could not be cast to the new type などのエラーが発生します。互換性のない値が存在する場合、スキーマ移行は進行せず、移行プロセスでこれらの値を自動的にクレンジングしたり、型変換したりすることはできません。
  • OSv2 では、プロパティ値として NaN または ±infinity を許容しません。
  • OSv2 では空の文字列を許容しません。OSv1 では、空の文字列は通知なく null に変換されていました。
  • Lat, Long は、括弧なしのカンマ区切りの文字列にする必要があります(例:-29.123, 150.982)。
  • OSv2 では、入れ子の配列を含むプロパティを許容しません。
  • OSv2 では、配列データ型のプロパティにおいて、配列内の null 要素を許容しません。
  • OSv2 は、制限付きビューデータソースの詳細な権限設定ポリシーで、否定対象のフィールドがコレクションであり、空でないという制約がある場合に、Not 条件をサポートします。これは、Ontology Manager で該当するプロパティを必須に設定することで構成できます。
  • OSv2 では、Geopoint プロパティに対してより厳密な検証が行われます。

プロパティのサイズ制限

OSv2 は、インデックス化のパフォーマンスと安定性を確保するために、個々のプロパティにサイズ制限を適用します。これらの制限は、大きなプロパティ値を処理する際に発生する可能性のあるシリアライズの制約やメモリーへの負荷に対処するものです。

プロパティタイプ最大サイズ
文字列プロパティ12 MB
配列プロパティ100,000要素

これらの制限を超えるプロパティがあると、インデックス化ジョブは失敗します。これらの制限は、まずバッチデータソースを元にするオブジェクトタイプに適用されます。今後、ストリーミングデータソースを使用するオブジェクトタイプにも同様の制限が適用される予定です。

大きなデータに関する推奨事項

  • 大きな文字列プロパティ: 12 MB を超えるデータを保存する必要がある場合は、代わりに Media Reference プロパティを使用します。Media Reference を使用すると、インデックス化のパフォーマンスに影響を与えることなく、大きなファイルやバイナリコンテンツをオブジェクトに関連付けることができます。
  • 大きな配列: 100,000要素を超えるような関係をモデル化する必要がある場合は、配列プロパティの代わりにリンクタイプの使用を検討してください。リンクを使用すると、オブジェクト間の関係を、よりスケーラブルでクエリ可能な形で表現できます。