注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Object Storage v2 (OSv2) は、オントロジーに取り込まれるデータの品質を確保し、より決定論的な動作を実現し、プラットフォーム全体でのわかりやすさを向上させるために、データに制限を適用します。これらの制限はインデックス化時に検証されます。バッチデータソースを元にするオブジェクトタイプでは、違反があるとインデックス化ジョブが失敗します。ストリーミングデータソースを元にするオブジェクトタイプでは、これらの制限に違反するレコードが削除されます。
OSv2 ではオブジェクトの主キーが一意である必要がありますが、一意性の評価方法はデータソースの種類によって異なります。データセットデータソースでは、主キーは各トランザクション内で一意である必要があります。単一のトランザクションに重複する主キーが含まれている場合、インデックス化は失敗し、エラーがスローされます。インクリメンタル(差分)データセットをインデックス化する際に、同じ主キーが複数のトランザクションに現れる場合、OSv2 は最新のトランザクションの行を使用します。
Iceberg テーブルデータソースでは、別々の書き込みで追加された行も含め、テーブルの現在の内容全体で主キーが一意である必要があります。キーの重複はサポートされておらず、最初のインクリメンタルなインデックス化が成功した場合でも、インデックス化済みデータが不正確になったり、その後の完全な再インデックス化が失敗したりする可能性があります。Iceberg テーブルデータソースを参照してください。
OSv2 では、オントロジーのモデリングのベストプラクティスを促進するために、特定のデータ型を主キーとして使用できないようにしています。次のデータ型は主キーとして使用できません。
Double から Integer へ)、そのプロパティの既存の値はすべて、変更先のデータ型と厳密に互換性がある必要があります。新しいデータ型と互換性のない値(Integer に変更する際の小数や、通貨記号など)がデータエントリに含まれている場合、移行は失敗し、A property could not be cast to the new type などのエラーが発生します。互換性のない値が存在する場合、スキーマ移行は進行せず、移行プロセスでこれらの値を自動的にクレンジングしたり、型変換したりすることはできません。NaN または ±infinity を許容しません。Lat, Long は、括弧なしのカンマ区切りの文字列にする必要があります(例:-29.123, 150.982)。Not 条件をサポートします。これは、Ontology Manager で該当するプロパティを必須に設定することで構成できます。OSv2 は、インデックス化のパフォーマンスと安定性を確保するために、個々のプロパティにサイズ制限を適用します。これらの制限は、大きなプロパティ値を処理する際に発生する可能性のあるシリアライズの制約やメモリーへの負荷に対処するものです。
| プロパティタイプ | 最大サイズ |
|---|---|
| 文字列プロパティ | 12 MB |
| 配列プロパティ | 100,000要素 |
これらの制限を超えるプロパティがあると、インデックス化ジョブは失敗します。これらの制限は、まずバッチデータソースを元にするオブジェクトタイプに適用されます。今後、ストリーミングデータソースを使用するオブジェクトタイプにも同様の制限が適用される予定です。