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文にスキーマfrozenを追加して、作成中に表をフリーズできます。
  • 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);