Megosztás a következőn keresztül:


Rövid útmutató: Az Azure Cosmos DB for Table használata a Java-hoz készült Azure SDK-val

Ebben a rövid útmutatóban üzembe helyez egy alapszintű Azure Cosmos DB for Table alkalmazást az Azure SDK for Java használatával. Az Azure Cosmos DB for Table egy séma nélküli adattár, amely lehetővé teszi, hogy az alkalmazások strukturált táblaadatokat tároljanak a felhőben. Megtudhatja, hogyan hozhat létre táblákat, sorokat, és hogyan hajthat végre alapvető feladatokat az Azure Cosmos DB-erőforráson belül az Azure SDK for Java használatával.

API-referenciadokumentáció | Kódtár forráskódja | csomag (Maven) | Azure Developer CLI

Előfeltételek

  • Azure Developer CLI
  • Docker Desktop
  • Java 21

Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.

A projekt inicializálása

Az Azure Developer CLI (azd) használatával hozzon létre egy Azure Cosmos DB for Table-fiókot, és helyezzen üzembe egy tárolóalapú mintaalkalmazást. A mintaalkalmazás az ügyfélkódtárat használja a mintaadatok kezelésére, létrehozására, olvasására és lekérdezésére.

  1. Nyisson egy terminált egy üres könyvtárban.

  2. Ha még nincs hitelesítve, jelentkezzen be az Azure Developer CLI-be a használatával azd auth login. Kövesse az eszköz által megadott lépéseket a parancssori felületre való hitelesítéshez az ön által előnyben részesített Azure-hitelesítő adatokkal.

    azd auth login
    
  3. A projekt inicializálására használható azd init .

    azd init --template cosmos-db-table-java-quickstart
    
  4. Az inicializálás során konfiguráljon egy egyedi környezetnevet.

  5. Az Azure Cosmos DB-fiók üzembe helyezése a azd up használatával. A Bicep-sablonok egy minta webalkalmazást is üzembe helyeznek.

    azd up
    
  6. A kiépítési folyamat során válassza ki az előfizetést, a kívánt helyet és a célerőforrás-csoportot. Várja meg, amíg a kiépítési folyamat befejeződik. A folyamat körülbelül öt percet vehet igénybe.

  7. Az Azure-erőforrások kiépítése után a kimenet tartalmazza a futó webalkalmazás URL-címét.

    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. A konzol URL-címével keresse meg a webalkalmazást a böngészőben. Figyelje meg a futó alkalmazás kimenetét.

Képernyőkép a futó webalkalmazásról.

Telepítse az ügyfélkönyvtárat

A klienskönyvtár a azure-data-tables csomagként érhető el a Mavenen keresztül.

  1. Lépjen a /src/web mappára, és nyissa meg a pom.xml fájlt.

    cd ./src
    
  2. Ha még nem létezik, adjon hozzá egy bejegyzést a azure-data-tables csomaghoz.

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

Könyvtárak importálása

Importálja az összes szükséges névteret az alkalmazáskódba.

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;

Objektummodell

Név Leírás
TableServiceAsyncClient Ez a típus az elsődleges ügyféltípus, és a fiókszintű metaadatok vagy adatbázisok kezelésére szolgál.
TableAsyncClient Ez a típus a fiókon belüli tábla ügyfélét jelöli.

Kódpéldák

A sablonban lévő mintakód egy nevű táblát cosmicworks-productshasznál. A cosmicworks-products táblázat olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az ár, az egyedi azonosító és az egyes termékek értékesítési jelzője. A tároló egy egyedi azonosítót* használ sorkulcsként és kategóriaként partíciókulcsként.

Az ügyfél hitelesítése

Ez a példa létrehozza a(z) TableServiceAsyncClient osztály egy új példányát.

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

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

Szerezz egy asztalt

Ez a minta az TableAsyncClient osztály egy példányát hozza létre a GetTableClient osztály TableServiceClient metódusának használatával.

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

Entitás létrehozása

Az új entitások táblabeli létrehozásának legegyszerűbb módja az createEntity használata.

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);

Hozzon létre egy entitást a gyűjteményben a következő használatával upsertEntity: .

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

Entitás lekérése

Egy adott entitást lekérhet egy táblából a következő használatával getEntity: .

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

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

Entitások lekérdezése

Miután beszúrt egy entitást, egy lekérdezést is futtathat, hogy lekérje az adott szűrőnek megfelelő összes entitást a használatával listEntities és az ListEntitiesOptions osztálysal. setFilter A metódussal sztring OData-szűrőt adhat meg.

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

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

Elemezheti a lekérdezés lapszámozott eredményeit egy előfizetés használatával.

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

Az erőforrások tisztítása

Ha már nincs szüksége a mintaalkalmazásra vagy erőforrásokra, távolítsa el a megfelelő üzembe helyezést és az összes erőforrást.

azd down