OCI-SDK-APIs
Oracle Cloud Infrastructure stellt eine Reihe von Software Development Kits (SDKs) bereit, um die Entwicklung benutzerdefinierter Lösungen zu vereinfachen.
Software Development Kits (SDKs) werden zum Erstellen und Bereitstellen von Apps verwendet, die in Oracle Cloud Infrastructure-Services integriert werden. Verschiedene OCI-SDKs unterstützen Java, Python, Go, .NET, Typescript, Javascript und Ruby. Jedes SDK bietet die für die Entwicklung einer Anwendung erforderlichen Tools, einschließlich Codebeispiele und Dokumentation für Erstellung, Tests und Fehlerbehebung. Mit dem Oracle Cloud Infrastructure-SDK können Sie Code schreiben, um Oracle Cloud Infrastructure-Ressourcen zu verwalten.
OCI SDK-APIs verwenden
Um die OCI-SDKs verwenden zu können, benötigen Sie Folgendes:
-
Einen Oracle Cloud Infrastructure-Account.
-
Ein Benutzer, der in diesem Account in einer Gruppe mit einer Policy erstellt wird, die die gewünschten Berechtigungen erteilt. Dies kann ein Benutzer für Sie selbst oder ein anderer Benutzer/ein anderes System sein, die/das die API aufrufen muss.
OCI-SDK für Java: Sie können das OCI-SDK für Java hier herunterladen. Zusätzlich zu den oben genannten Anforderungen müssen Sie Java Version 8 oder mehr installieren. Weitere Informationen finden Sie unter SDK für Java.
Hinweis: Das OCI-SDK ist auch für Python, Go, Typescript, Javascript, .NET und Ruby verfügbar. Siehe OCI-SDK-Handbücher.
Singleton-Tabelle mit OCI-Java-SDK erstellen
Sie können die Klasse CreateTableRequest innerhalb einer Methode createTable verwenden, um eine neue NoSQL-Tabelle zu erstellen.
Das folgende Code-Snippet zeigt, wie Sie mit dem OCI-Java-SDK eine Singleton-Tabelle erstellen.
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);
Globale aktive Tabelle mit OCI-Java-SDK erstellen
Mit dem OCI-Java-SDK können Sie eine Tabelle "Global Active" in NDCS erstellen.
So erstellen Sie eine globale aktive Tabelle:
-
Erstellen Sie eine NoSQL-Tabelle mit mindestens einer JSON-Spalte.
-
Sperren Sie das Schema der Tabelle. Sie können die Tabelle beim Erstellen einfrieren, indem Sie sie mit einem Schema hinzufügen, das in der DDL CREATE TABLE-Anweisung gesperrt ist.
-
Eine NoSQL-Datenbanktabelle wird erst dann zu einer Global Active-Tabelle, wenn eine regionale Replikattabelle hinzugefügt wurde. Die regionale Replikattabelle wird in einer anderen Region erstellt.
Das folgende Code-Snippet zeigt, wie Sie eine globale aktive Tabelle mit dem OCI-Java-SDK erstellen.
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);