OceanBaseデータベースでは、JSON/GIS/XMLなどの半構造化データをマルチモーダルデータ型として扱います。
マルチモーダルデータの特徴
- マルチモーダルデータ型は標準化されており、例えばRFC8259はJSONのデータ交換規格であり、OGC(Open Geospatial Consortium)は座標系およびその間の変換を記述するための一連のテキストマークアップ言語(WKT-CRS)を提供しています。また、W3CもXMLの標準を定義しています。
- マルチモーダルデータはSQLによって直接アクセス可能です。マルチモーダルデータはすべて半構造化データであり、内部の基本型はすべてSQL型とマッピングできます。マルチモーダルデータは構造的には論理ツリーのカスケード方式を通じて、一連の基本的なSQL型を複雑な複合データ型として組織します。
- マルチモーダルデータの計算関数は比較的固定されています。マルチモーダル型には標準化された形式があり、その標準化された形式ではデータの交換形式だけでなく、マルチモーダルデータの計算APIについても推奨事項が定められています。
マルチモーダルデータのクエリと計算
マルチモーダル型は柔軟な構造を持ち、データベースはマルチモーダル型の標準に基づいて、マルチモーダルデータの構築、クエリ、計算をサポートする豊富な関数を提供しています。
- データ構築:例えば、JSONやXMLは集約関数を提供し、リレーショナルテーブルから基本データを抽出し、特定の集約ルールを組み合わせることで、JSONやXMLオブジェクトを構築します。
- データクエリ:例えば、JSONやXMLはパスに基づいて、マルチモーダルデータオブジェクトの部分集合や特定の基本的なSQL要素にアクセスできます。
- データ計算:例えば、GISの関数を利用して空間オブジェクト間の関係を計算します。
マルチモーダルデータのストレージ
マルチモーダルデータ型は複合型であり、データは一般的に可変長であり、非常に大きなマルチモーダルデータを構築することも可能です。ストレージの利便性を考慮して、マルチモーダルデータは通常、大規模オブジェクトデータのストレージ機能を継承します。理論的には、大規模オブジェクトデータのストレージ上限がマルチモーダルデータの上限となりますが、実際には非常に大きなマルチモーダルデータの計算やストレージは非常に非効率的であるため、超大規模なマルチモーダルデータの構築は推奨されません。
- Text/Varchar2型:標準的に定義されたテキスト形式に基づいて、Text/Varchar2型として直接データベースに保存できます。この方法の欠点は、マルチモーダルデータに対するクエリのたびに解析が必要になるため、マルチモーダルデータのストレージには推奨されません。
- ネイティブマルチモーダル型:ストレージされるデータ形式はすべてデータベースによって解析最適化されており、一度マルチモーダルデータがデータベースに保存されると、次回のクエリ時に再解析する必要がなく、ストレージ容量においても一定の最適化が図られています。そのため、ネイティブマルチモーダル型を使用したストレージを推奨します。
マルチモーダルデータのデータ交換
マルチモーダルデータはすべて標準的に定義された形式に基づいて他のシステムとデータ交換を行います。
注意
- MySQLモードでは、現在のバージョンではマルチモーダルデータ型としてGISとJSONのみがサポートされています。
- MySQLモードでは、JSONに基づく仮想生成関数を使用して、任意のJSON内のサブ要素にセカンダリインデックスを作成できます。