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