OCI SDK APIについて
Oracle Cloud Infrastructureには、カスタム・ソリューションの開発を容易にするための多数のソフトウェア開発キット(SDK)が用意されています。
ソフトウェア開発キット(SDK)は、Oracle Cloud Infrastructureサービスと統合するアプリケーションを構築およびデプロイするために使用されます。Java、Python、Go、.NET、Typescript、Javascript、RubyをサポートするOCI SDKが異なります。それぞれのSDKには、アプリケーション開発に必要なツールが用意されており、このツールには作成やテスト、トラブルシューティング用のコード・サンプルとドキュメントが含まれています。Oracle Cloud Infrastructure SDKを使用して、Oracle Cloud Infrastructureのリソースを管理するためのコードを記述できます。
OCI SDK APIの使用
OCI SDKを使用するには、次のものが必要です。
-
Oracle Cloud Infrastructureアカウント。
-
そのアカウントで作成されたユーザー。必要な権限を付与するポリシーがあるグループに含まれるユーザー。これに該当するのは、ユーザー自身であるか、またはAPIをコールする必要がある別の人物/システムです。
OCI SDK for Java: OCI SDK for Javaは、こちらからダウンロードできます。前述の要件に加えて、Javaバージョン8以上をインストールする必要があります。詳細は、SDK for Javaを参照してください。
ノート: OCI SDKは、Python、Go、Typescript、Javascript、.NETおよびRubyでも使用できます。OCI SDKガイドを参照してください。
OCI Java SDKを使用したシングルトン表の作成
createTableメソッド内でCreateTableRequestクラスを使用して、新しいNoSQL表を作成できます。
次のコード・スニペットは、OCI Java SDKを使用してシングルトン表を作成する方法を示しています。
private static final String DEF_OCI_CONFIG = "~/.oci/config";
private static final String DEF_PROFILE = "DEFAULT";
String tableName = "<table_name>";
String region = "<region_name>";
/* Initialize NoSQLHandle */
NosqlClient client = connect(endpoint, DEF_OCI_CONFIG, DEF_PROFILE);
/* Create table */
String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + "(" +
"id INTEGER, info JSON, PRIMARY KEY(id)) " ;
TableLimits limits = TableLimits.builder()
.maxReadUnits(50)
.maxWriteUnits(50)
.maxStorageInGBs(1)
.build();
CreateTableDetails.Builder payload = CreateTableDetails.builder()
.compartmentId(compartmentId)
.name(tableName)
.ddlStatement(ddl)
.tableLimits(limits);
CreateTableRequest tableReq = CreateTableRequest.builder()
.createTableDetails(payload.build())
.build();
CreateTableResponse tableRes = client.createTable(tableReq);
output("\nCreating table: " + ddl);
waitForComplete(client, tableRes.getOpcWorkRequestId());
output("Table created: " + tableName);
OCI Java SDKを使用したグローバル・アクティブ表の作成
OCI Java SDKを使用して、NDCSにグローバル・アクティブ表を作成できます。
グローバル・アクティブ表を作成するには:
-
1つ以上のJSON列を含むNoSQL表を作成します。
-
表のスキーマを凍結します。DDL CREATE TABLE文でスキーマをフリーズして追加することで、作成中に表をフリーズできます。
-
NoSQLデータベース表は、リージョナル・レプリカ表を追加した後にのみグローバル・アクティブ表になります。リージョナル・レプリカ表が別のリージョンに作成されます。
次のコード・スニペットは、OCI Java SDKを使用してグローバル・アクティブ表を作成する方法を示しています。
private static final String DEF_OCI_CONFIG = "~/.oci/config";
private static final String DEF_PROFILE = "DEFAULT";
String tableName = "<table_name>";
String region = "<region_name>";
/* Initialize NoSQLHandle */
NosqlClient client = connect(endpoint, DEF_OCI_CONFIG, DEF_PROFILE);
/* Create table */
String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + "(" +
"id INTEGER, info JSON, PRIMARY KEY(id)) " +
"with schema frozen";
TableLimits limits = TableLimits.builder()
.maxReadUnits(50)
.maxWriteUnits(50)
.maxStorageInGBs(1)
.build();
CreateTableDetails.Builder payload = CreateTableDetails.builder()
.compartmentId(compartmentId)
.name(tableName)
.ddlStatement(ddl)
.tableLimits(limits);
CreateTableRequest tableReq = CreateTableRequest.builder()
.createTableDetails(payload.build())
.build();
CreateTableResponse tableRes = client.createTable(tableReq);
output("\nCreating table: " + ddl);
waitForComplete(client, tableRes.getOpcWorkRequestId());
output("Table created: " + tableName);
/* Add replica ca-montreal-1 */
CreateReplicaDetails info = CreateReplicaDetails
.builder()
.region(region)
.compartmentId(compartmentId)
.build();
CreateReplicaRequest replicaReq = CreateReplicaRequest
.builder()
.tableNameOrId(tableName)
.createReplicaDetails(info)
.build();
CreateReplicaResponse replicaRes = client.createReplica(replicaReq);
output("\nAdding replica: " + region);
waitForComplete(client, replicaRes.getOpcWorkRequestId());
output("Added replica: " + region);