Freigeben über


Schnellstart: Verwenden von Azure Cosmos DB for Table mit Azure SDK für Java

In diesem Schnellstart stellen Sie eine einfache Azure Cosmos DB for Table-Anwendung mithilfe des Azure SDK für Java bereit. Azure Cosmos DB for Table ist ein schemaloser Datenspeicher, der es Anwendungen ermöglicht, strukturierte Tabellendaten in der Cloud zu speichern. Sie erfahren, wie Sie Tabellen, Zeilen und grundlegende Aufgaben innerhalb Ihrer Azure Cosmos DB-Ressource mithilfe des Azure-SDK für Java erstellen.

API-Referenzdokumentation | Quellcode der Bibliothek | Paket (Maven) | Azure Developer CLI

Voraussetzungen

  • Azure Developer CLI
  • Docker Desktop
  • Java 21

Sollten Sie kein Azure-Konto haben, erstellen Sie zunächst ein kostenloses Konto.

Initialisieren des Projekts

Verwenden Sie die Azure Developer CLI (azd), um ein Azure Cosmos DB for Table-Konto zu erstellen und eine containerisierte Beispielanwendung bereitzustellen. Die Beispielanwendung verwendet die Clientbibliothek zum Verwalten, Erstellen, Lesen und Abfragen von Beispieldaten.

  1. Öffnen Sie ein Terminal in einem leeren Verzeichnis.

  2. Wenn Sie noch nicht authentifiziert sind, authentifizieren Sie sich mithilfe von azd auth login bei der Azure Developer CLI. Führen Sie die vom Tool angegebenen Schritte aus, um sich mit Ihren bevorzugten Azure-Anmeldeinformationen bei der CLI zu authentifizieren.

    azd auth login
    
  3. Verwenden Sie azd init, um das Projekt zu initialisieren.

    azd init --template cosmos-db-table-java-quickstart
    
  4. Konfigurieren Sie während der Initialisierung einen eindeutigen Umgebungsnamen.

  5. Stellen Sie das Azure Cosmos DB-Konto mit azd up bereit. Die Bicep-Vorlagen stellen auch eine Beispielwebanwendung bereit.

    azd up
    
  6. Wählen Sie während des Bereitstellungsprozesses Ihr Abonnement, den gewünschten Standort und die Zielressourcengruppe aus. Warten Sie auf den Abschluss des Bereitstellungsvorgangs. Dieser Prozess kann ca. fünf Minuten dauern.

  7. Sobald die Bereitstellung Ihrer Azure-Ressourcen abgeschlossen ist, enthält die Ausgabe eine URL zur ausgeführten Webanwendung.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. Verwenden Sie die URL in der Konsole, um im Browser zu Ihrer Webanwendung zu navigieren. Sehen Sie sich die Ausgabe der ausgeführten App an.

Screenshot der ausgeführten Web-App.

Installieren der Clientbibliothek

Die Clientbibliothek ist über Maven als azure-data-tables-Paket verfügbar.

  1. Navigieren Sie zum /src/web-Ordner, und öffnen Sie die pom.xml-Datei.

    cd ./src
    
  2. Wenn sie noch nicht vorhanden ist, fügen Sie einen Eintrag für das azure-data-tables-Paket hinzu.

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-data-tables</artifactId>
    </dependency>
    

Importieren von Bibliotheken

Importieren Sie alle erforderlichen Namespaces in Ihren Anwendungscode.

import com.azure.core.http.rest.PagedFlux;
import com.azure.data.tables.TableAsyncClient;
import com.azure.data.tables.TableClientBuilder;
import com.azure.data.tables.models.ListEntitiesOptions;
import com.azure.data.tables.models.TableEntity;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;

Objektmodell

Name Beschreibung
TableServiceAsyncClient Dieser Typ ist der primäre Clienttyp und wird verwendet, um kontoweite Metadaten oder Datenbanken zu verwalten.
TableAsyncClient Dieser Typ stellt den Client für eine Tabelle innerhalb des Kontos dar.

Codebeispiele

Der Beispielcode in der Vorlage verwendet eine Tabelle mit dem Namen cosmicworks-products. Die Tabelle cosmicworks-products enthält Details wie Name, Kategorie, Menge, Preis, eindeutiger Bezeichner und ein Verkaufsflag für jedes Produkt. Der Container verwendet einen eindeutigen Bezeichner* als Zeilenschlüssel und Kategorie als Partitionsschlüssel.

Authentifizieren des Clients

Dieses Beispiel erstellt eine neue Instanz der TableServiceAsyncClient-Klasse.

DefaultAzureCredential azureTokenCredential = new DefaultAzureCredentialBuilder()
    .build();

TableServiceAsyncClient client = new TableServiceClientBuilder()
    .endpoint("<azure-cosmos-db-table-account-endpoint>")
    .credential(credential)
    .buildAsyncClient();

Tabelle abrufen

In diesem Beispiel wird eine Instanz der Klasse TableAsyncClient mithilfe der Methode GetTableClient der Klasse TableServiceClient erstellt.

TableAsyncClient table = client
    .getTableClient("<azure-cosmos-db-table-name>");

Eine Entität erstellen

Die einfachste Möglichkeit zum Erstellen einer neuen Entität in einer Tabelle besteht darin, createEntity zu verwenden.

String rowKey = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb";
String partitionKey = "gear-surf-surfboards";

TableEntity entity = new TableEntity(partitionKey, rowKey)
        .addProperty("Name", "Yamba Surfboard")
        .addProperty("Quantity", 12)
        .addProperty("Price", 850.00)
        .addProperty("Sale", false);

Erstellen Sie mithilfe von upsertEntity eine Entität in der Sammlung.

Mono<Void> response = table.upsertEntity(entity);

Abrufen einer Entität

Sie können mithilfe von getEntity eine bestimmte Entität aus einer Tabelle abrufen.

String rowKey = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb";
String partitionKey = "gear-surf-surfboards";

TableEntity entity = table.getEntity(partitionKey, rowKey);

Entitäten abfragen

Nachdem Sie eine Entität eingefügt haben, können Sie auch eine Abfrage ausführen, um alle Entitäten abzurufen, die einem bestimmten Filter entsprechen, indem Sie listEntities und die Klasse ListEntitiesOptions verwenden. Verwenden Sie die Methode setFilter, um einen OData-Zeichenfolgenfilter anzugeben.

ListEntitiesOptions options = new ListEntitiesOptions()
    .setFilter("PartitionKey eq 'gear-surf-surfboards'");

PagedFlux<TableEntity> tableEntities = table.listEntities(options, null, null);

Analysieren Sie die paginierten Ergebnisse der Abfrage mithilfe eines Abonnements.

tableEntities
    .DoOnNext(entity -> {
        // Do something
    });

Bereinigen von Ressourcen

Wenn Sie die Beispielanwendung oder Ressourcen nicht mehr benötigen, entfernen Sie die entsprechende Bereitstellung und alle Ressourcen.

azd down