OBKV-Table Javaクライアントは、OceanBaseデータベースへのアクセスを提供する豊富なAPIを備えています。本記事では、OBKV-Table Javaクライアントの初期化方法と、クラスタへの接続方法について説明します。
OBKV-Tableクライアントを使用してOBKV-Tableクラスタに接続し、データ処理を行う前に、事前準備が完了していることを確認してください。詳細については、OBKV-Table開発の準備を参照してください。
OBKV-Table Java SDKのインストール
MavenプロジェクトでOBKV-Table Java SDKを使用するには、pom.xmlファイルに対応する依存関係を追加するだけです。ファイルのdependenciesセクションに以下の内容を追加します:
<dependency>
<groupId>com.oceanbase</groupId>
<artifactId>obkv-table-client</artifactId>
<version>1.2.12</version>
</dependency>
以下の点に注意してください:
- OBKV-Table Java SDKはJDK 1.8以上が必要です。
- 可能な限り最新バージョンのJARパッケージを使用してください。古いバージョンのJARパッケージは新しいバージョンのサーバーに対応していない可能性があります。
- ここでのバージョン番号は最新ではない場合があります。Central Repositoryで公開されているOBKV-Tableのバージョンを参照し、バージョン番号を最新の公開バージョン番号に置き換えてください。
ObTableClientの初期化
ObTableClientは、OBKV-Table Java SDKでOceanBaseデータベースにアクセスするためのクライアントオブジェクトです。初期化方法は、直接接続モードとODPモードで異なります。
直接接続モード
パラメータの説明
直接接続モードでは、ObTableClientの以下の5つのパラメータを設定する必要があります。
- setParamURL(String paramURL)
- setFullUserName(String fullUserName)
- setPassword(String password)
- setSysUserName(String sysUserName)
- setSysPassword(String sysPassword)
詳細は以下のとおりです。
パラメータ名 |
パラメータ形式 |
パラメータ説明 |
パラメータ例 |
|---|---|---|---|
| paramURL | http://ip:port/services?Action=ObRootServiceInfo&ObCluster=clusterName&database=databaseName |
パラメータURL、すなわちOBKV-Table開発準備のConfig URLです。注意:直接接続モードでは、paramURLパラメータにアクセスするデータベースを指定する必要があります。具体的には、paramURLの後に&database=databaseNameを追加します。 |
http://127.0.0.1:8080/services?Action=ObRootServiceInfo&ObCluster=obkv&database=obkv_table_db
|
| fullUserName | userName@tenantName#clusterName |
データベースにアクセスするユーザーであり、フルユーザー名(3部構成のユーザー名)です。ユーザー名、テナント名、クラスタ名の3つの部分から構成され、区切り文字@と#で区切られています。 |
test@obkv_table#obkv
|
| password | ユーザーがデータベースにアクセスするためのパスワード、すなわちfullUserNameパラメータのuserNameに対応するパスワードです。 |
||
| sysUserName | SYSテナントのユーザー名、すなわちOBKV-Table開発準備で述べたシステムテナントのユーザーです。直接接続モードでは、ルーティングテーブルにアクセスする権限を持つのはシステムテナントのユーザーのみです。 | ||
| sysPassword | ユーザーがSYSテナントにアクセスするためのパスワード、すなわちsysUserNameで指定したユーザーのパスワードです。 |
初期化例
## 現在のクラスタは以下のとおりです
## クラスタ名:obkv
## テナント名:obkv_table
## データベース名: obkv_table_db
## ユーザー名:test_user
## ユーザーパスワード:admin123
## システムテナントのユーザー:test_sys_user
## システムテナントのユーザーパスワード:sys123
## Config URL: http://127.0.0.1:8080/services?Action=ObRootServiceInfo&ObCluster=obkv
String paramURL = "http://127.0.0.1:8080/services?Action=ObRootServiceInfo&ObCluster=obkv&database=obkv_table_db";
ObTableClient obkvHandle = new ObTableClient();
obkvHandle.setParamURL(paramURL);
obkvHandle.setFullUserName("test_user@obkv_table#obkv");
obkvHandle.setPassword("admin123");
obkvHandle.setSysUserName("test_sys_user");
obkvHandle.setSysPassword("sys123");
obkvHandle.init();
ODPモード
ODPモードでは、ObTableClientの以下の6つのパラメータを設定する必要があります:
- setOdpMode(boolean odpMode)
- setOdpAddr(String odpAddr)
- setOdpPort(int odpPort)
- setFullUserName(String fullUserName)
- setPassword(String password)
- setDatabase(String database)
詳細は以下のとおりです:
パラメータ名 |
パラメータ説明 |
パラメータ例 |
|---|---|---|
| odpMode | ODPモードの識別子。true はODPモード、false は直接接続モードを表します。ODPモードでは true に設定する必要があります。 |
|
| odpAddr | ODPサーバーのドメイン名/IPアドレス。 | |
| odpPort | ODPサーバーのポート。注意:クラウドでは、パブリックネットワークを介してSLBで外部に公開されているデフォルトポート 3307 を使用する必要があります。その他のシナリオではデフォルトポートは 2885 です。 |
|
| fullUserName | fullUserNameはユーザー名を表します。形式は直接接続モードと異なり、場合によって区別する必要があります。
|
test_user / test_user@obkv_table#obkv |
| password | データへのアクセスパスワード。 | admin123 |
| database | アクセス対象のデータベース名。 |
初期化例
## 現在のクラスタは以下のように仮定します
## クラスタ名:obkv
## テナント名:obkv_table
## データベース名: obkv_table_db
## ユーザー名:test_user
## ユーザーパスワード:admin123
## ODPアドレス: 127.0.0.1
## ODPポート: 3307
ObTableClient obkvHandle = new ObTableClient();
obkvHandle.setOdpMode(true);
obkvHandle.setOdpAddr("127.0.0.1");
obkvHandle.setOdpPort(3307);
obkvHandle.setDatabase("obkv_table_db");
obkvHandle.setFullUserName("test_user");
obkvHandle.setPassword("admin123");
obkvHandle.init();
次のステップ
- OBKV-Tableがサポートするすべての操作タイプについては、OBKV-Tableでサポートされている操作タイプを参照してください。
- OBKV-Tableがサポートするすべてのデータ型については、OBKV-Tableでサポートされているデータ型を参照してください。
- クライアントを使用したデータ操作の例については、データ操作の例を参照してください。
- OBKV-Tableクライアントの接続設定情報は、以下のビューで確認できます: GV$OB_KV_CLIENT_INFO V$OB_KV_CLIENT_INFO