关于 OCI SDK API
Oracle Cloud Infrastructure 提供了许多软件开发工具包 (SDK),可帮助您开发定制解决方案。
软件开发工具包 (SDK) 用于构建和部署与 Oracle Cloud Infrastructure 服务集成的应用。不同的 OCI SDK 支持 Java、Python、Go、.NET、Typescript、Javascript 和 Ruby。每个 SDK 提供了开发应用所需的工具,包括代码示例和用于创建、测试和故障排除的文档。Oracle Cloud Infrastructure SDK 支持您编写代码来管理 Oracle Cloud Infrastructure 资源。
使用 OCI SDK API
要使用 OCI SDK,您必须具备以下功能:
- Oracle Cloud Infrastructure 账户。
- 使用授予所需权限的策略在该帐户中创建的用户。这可以是您自己的用户,也可以是需要调用 API 的其他人员/系统。
适用于 Java 的 OCI SDK:您可以在此处下载适用于 Java 的 OCI SDK。除了上述要求外,还需要安装 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 中创建全局活动表。
要创建全局活动表,请执行以下操作:
- 创建至少包含一个 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);