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