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

データ制限

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

主キーと一意性

OSv2 は、データソースのオブジェクト主キーの一意性を強制します。単一のトランザクション内に重複する主キーがある場合、インデックス化に失敗し、エラーが発生します。異なるトランザクション間で主キーが重複する場合、後のトランザクションのバージョンが使用されます。

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要素を超えるリレーションをモデル化する必要がある場合は、配列プロパティの代わりにリンクタイプの使用を検討してください。リンクは、オブジェクト間のリレーションを、より拡張性が高くクエリー可能な方法で表現します。