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