OceanBaseデータベースV4.3.5BP2以前のバージョンでは、外部データソースにアクセスするために、CREATE EXTERNAL TABLEを使用してマッピングテーブルを手動で作成する必要がありました。外部データソースに多数のテーブルが含まれる場合、ユーザーが1つずつ手動でマッピングを行う必要があり、柔軟性に欠けていました。
さまざまな外部データソースに保存されているデータを容易に参照できるよう、OceanBaseデータベースではCatalog(データディレクトリ)機能が導入されました。新たなデータ階層を追加することで、外部データソースを統一的に管理できます。
Catalogの種類
Catalogは以下の2種類に分類されます。
Internal Catalog(内部データディレクトリ)
OceanBaseデータベース内部に保存されているデータを管理するためのCatalogです。各テナントには、
internalという名前のInternal Catalogが1つだけ存在します。V4.3.5BP2以前に作成されたデータベースおよびデータベース内のオブジェクト(例:テーブル)は、すべてinternalに保存されているものとみなされます。Internal Catalogは作成、削除、変更ができません。External Catalog(外部データディレクトリ)
外部データソースに接続し、外部データのメタ情報を取得するためのCatalogです。External Catalogを通じて、データのインポートや移行を行うことなく、外部データを直接クエリできます。
Catalogのメリット
多階層データ管理アーキテクチャ
従来のDatabase-Table階層にCatalog階層を追加し、Catalog-Database-Tableの3層構造を実現します。これにより、外部データソースのディレクトリツリーに直接アクセスできます。
自動マッピングとオンデマンドクエリ
CREATE EXTERNAL CATALOGで外部データソースとの接続を定義するだけで、外部テーブルを透過的にクエリできます。マッピングテーブルを手動で作成する必要はありません。統一されたクエリ体験
外部データソースをクエリする際も、ローカルテーブルと同一の構文を使用でき、データソースをまたいだ結合分析をサポートします。
Catalogの機能特性
複数データソース対応
ODPS(MaxCompute)などの外部データソースをサポートします。
権限制御
Catalog階層で外部データソースへのアクセス権限を制御し、データセキュリティを確保します。
パフォーマンス最適化
Catalogを基盤としたクエリプラン最適化により、中間データ転送を削減し、クロスソースクエリの性能を向上させます。
利用シーン
統合分析
OceanBaseデータベースのデータと外部データソースを組み合わせて分析する場合。
データレイク/データウェアハウス連携
統一されたデータレイクアーキテクチャを構築し、ODPSなどの外部システムに保存された大量データを直接クエリする場合。
ETLパイプラインの最適化
データ移行の手順を削減し、Catalogを通じてソースシステムのデータに直接アクセスすることで、ETL開発の複雑さを軽減します。
使用制限
現行バージョンでは、Catalog内のデータは読み取り専用(read-only)です。変更操作はサポートされておらず、Catalog配下のオブジェクトに対するすべての更新系SQLは実行できません。たとえば、DROP TABLEやINSERT INTOなどの文は使用できません。