OceanBaseデータリンクは、クライアントからデータベースエンドまでの最適なデータアクセス機能を提供し、ユーザーがOceanBase分散データベースを意識することなく、分散データベースのスケーラビリティ、高性能、高可用性のサービス機能を実現します。データリンクには、データベースプロキシとデータベースドライバーの2つの部分が含まれます。
データベースプロキシ
OceanBaseデータベースプロキシODP(OceanBase Database Proxy、別名obproxy)は、OceanBase専用のプロキシサービスです。OceanBaseデータベース内のデータは複数レプリカとして各OBServerノードに保存され、ODPはユーザーのSQLリクエストを受信し、リクエストに含まれるデータの分散状況を考慮して、最適なOBServerノードに転送します。OBServerノードでの実行完了後、結果を受け取りユーザーに返します。
ODPはOceanBaseデータベースの重要なコンポーネントとして、以下の特徴を備えています:
高性能な転送
ODPはMySQLプロトコルと完全に互換性があり、OceanBase独自のプロトコルもサポートしています。マルチスレッド非同期フレームワークと透過的ストリーミング転送の設計により、データの高性能な転送を保証すると同時に、自身のマシンリソース消費を最小限に抑えます。
最適なルーティング
ODPは、ユーザーリクエストに関連するレプリカの位置、ユーザー設定の読み書き分離ルーティングポリシー、OceanBaseの複数地域展開における最適なリンク、およびOceanBase各マシンの状態と負荷状況を十分に考慮し、ユーザーのリクエストを最適なOBServerにルーティングします。これにより、OceanBase全体の高性能な運用を最大限に保証します。
接続管理
あるクライアントの物理接続に対して、ODPは自身からバックエンドの複数OBServerノードへの接続を維持し、バージョン番号に基づく増分同期方式で各OBServerノード接続のセッション状態を維持します。これにより、クライアントが各OBServerに効率的にアクセスできるようにします。
専用プロトコル
ODPはOBServerノードとの通信において、デフォルトでOceanBase専用プロトコルを採用しています。例えば、OBServerノード間のリンクの正確性を保証するためにパケットのCRC検証を追加したり、Oracle互換性に必要なデータ型やインタラクションモデルをサポートするために伝送プロトコルを強化したりしています。
保守・運用の容易さ
ODPは自己状態を保持せず、無限の水平スケーリングをサポートし、複数のOceanBaseクラスタへの同時アクセスに対応しています。豊富な内部コマンドを通じて自身の状態をリアルタイムに監視できるため、保守・運用が非常に容易です。
データベースプロキシの詳細については、データベースプロキシを参照してください。
データベースドライバー
データベースドライバーは、データベースベンダーまたは専門にデータベースドライバーを開発するベンダーによって提供され、外部アプリケーションがそのデータベースにアクセスするためのインターフェースを提供します。OceanBaseデータベースは現在、MySQLモードデータベース(MySQL互換)とOracleモードデータベース(Oracle互換)を提供しています。OceanBaseのMySQLモードでは、ユーザーはMySQL公式が提供するConnectorを直接使用してOceanBaseデータベースを利用できます。OceanBaseのOracleモードでは、OceanBase独自開発のデータベースドライバーを使用する必要があります。OceanBaseデータベースドライバーは、OceanBaseのMySQLモードとOracleモードの両方をサポートしており、使用時にOceanBaseの実行モードがMySQLかOracleかを自動的に識別し、追加の設定は不要です。
機能の適用範囲
OceanBaseデータベースCommunity Editionは、MySQLモードのみを提供しています。
OceanBaseデータベースは各種言語のデータベースドライバーをサポートしており、主な製品は以下の通りです:
OBCI
OCIインターフェースに互換性があり、OceanBase OracleモードのC言語ドライバーをサポートします。
OBCIの詳細については、OBCIを参照してください。
OceanBase Connector/C
ODBCインターフェースに互換性があり、OceanBase MySQLモードおよびOceanBase OracleモードのC言語ドライバーをサポートします。
OceanBase Connector/Cの詳細については、OceanBase Connector/Cを参照してください。
OceanBase Connector/J
JDBCインターフェースに互換性があり、OceanBase MySQLモードおよびOceanBase OracleモードのJava言語ドライバーをサポートします。
OceanBase Connector/Jの詳細については、OceanBase Connector/Jを参照してください。
データベースドライバーの詳細については、データベースドライバーを参照してください。