Sobre APIs do OCI SDK
A Oracle Cloud Infrastructure apresenta vários Software Development Kits (SDKs) para facilitar o desenvolvimento de soluções personalizadas.
Os Kits de Desenvolvimento de Software (SDKs) são usados para criar e implantar aplicativos que são integrados aos serviços doOracle Cloud Infrastructure. Existem diferentes SDKs do OCI que suportam Java, Python, Go, .NET, Typescript, Javascript e Ruby. Cada SDK fornece as ferramentas necessárias ao desenvolvimento de um aplicativo, incluindo amostras de código e documentação para criar, testar, diagnosticar e solucionar problemas. O Oracle Cloud Infrastructure SDK permite que você grave um código para gerenciar os recursos da Oracle Cloud Infrastructure.
Usando APIs do OCI SDK
Para usar os SDKs do OCI, você deve ter o seguinte:
-
Uma conta no Oracle Cloud Infrastructure.
-
Um usuário criado nessa conta em um grupo com uma apólice que concede as permissões desejadas. Pode ser um usuário para você mesmo ou outra pessoa/sistema que precise chamar a API.
OCI SDK for Java: Você pode fazer download do OCI SDK for Java aqui. Além dos requisitos acima, você precisa ter o Java Versão 8 ou mais instalado. Para obter mais detalhes, consulte SDK para Java.
Observação: O OCI SDK também está disponível para Python, Go, Typescript, Javascript, .NET e Ruby. Consulte Guias do OCI SDK.
Criando tabela Singleton com o OCI Java SDK
Você pode usar a classe CreateTableRequest dentro de um método createTable para criar uma nova tabela NoSQL.
O trecho de código a seguir mostra como usar o OCI Java SDK para criar uma tabela singleton.
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);
Criando tabela Global Ativa usando o OCI Java SDK
Você pode usar o OCI Java SDK para criar uma tabela Global Active no NDCS.
Para criar uma tabela Global Ativa:
-
Crie uma tabela NoSQL com pelo menos uma coluna JSON nela.
-
Congele o esquema da tabela. Você pode congelar a tabela ao criá-la, adicionando com o esquema congelado na instrução DDL CREATE TABLE.
-
Uma tabela do Banco de Dados NoSQL torna-se uma tabela Global Ativa somente após adicionar uma tabela de réplica regional. A tabela de réplica regional é criada em outra região.
O trecho de código a seguir mostra como criar uma tabela Global Ativa usando o 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);