Rövid útmutató: Az Azure Cosmos DB for NoSQL 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ódcsomagja | (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.
Nyisson meg egy terminált egy üres könyvtárban.
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
A projekt inicializálására használható
azd init
.azd init --template cosmos-db-nosql-java-quickstart
Az inicializálás során konfiguráljon egy egyedi környezetnevet.
Az Azure Cosmos DB-fiók üzembe helyezése a következő használatával
azd up
: . A Bicep-sablonok egy minta webalkalmazást is üzembe helyeznek.azd up
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.
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.
A konzol URL-címével keresse meg a webalkalmazást a böngészőben. Figyelje meg a futó alkalmazás kimenetét.
Telepítse az ügyfélkódtárat
Az ügyfélkódtár csomagként azure-spring-data-cosmos
a Mavenen keresztül érhető el.
Lépjen a
/src/web
mappára, és nyissa meg a pom.xml fájlt.Ha még nem létezik, adjon hozzá egy bejegyzést a
azure-spring-data-cosmos
csomaghoz.<dependency> <groupId>com.azure</groupId> <artifactId>azure-spring-data-cosmos</artifactId> </dependency>
Emellett adjon hozzá egy másik függőséget a
azure-identity
csomaghoz, ha még nem létezik.<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> </dependency>
Objektummodell
Név | Leírás |
---|---|
EnableCosmosRepositories |
Ez a típus egy metódus-dekorátor, amellyel egy adattárat konfigurálhat az Azure Cosmos DB for NoSQL eléréséhez. |
CosmosRepository |
Ez az osztály az elsődleges ügyfélosztály, amely egy tárolón belüli adatok kezelésére szolgál. |
CosmosClientBuilder |
Ez az osztály az adattár által használt ügyfél létrehozásához használt gyár. |
Query |
Ez a típus egy metódusdekorátor, amellyel megadhatja az adattár által végrehajtott lekérdezést. |
Kódpéldák
- Az ügyfél hitelesítése
- Adatbázis lekérése
- Tároló lekérése
- Elem létrehozása
- Elem lekérése
- Lekérdezési elemek
A sablon mintakódja egy névvel ellátott cosmicworks
adatbázist és egy nevű tárolót products
használ. A products
tároló olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az egyedi azonosító és az egyes termékekhez tartozó értékesítési jelző. A tároló a tulajdonságot /category
logikai partíciókulcsként használja.
Az ügyfél hitelesítése
Ez a minta először létrehoz egy új osztályt, amely örökli AbstractCosmosConfiguration
az Azure Cosmos DB for NoSQL-hez való kapcsolat konfigurálásához.
@Configuration
@EnableCosmosRepositories
public class CosmosConfiguration extends AbstractCosmosConfiguration {
}
A konfigurációs osztályon belül ez a minta létrehozza az osztály új példányát, és egy példány használatával konfigurálja a CosmosClientBuilder
hitelesítést DefaultAzureCredential
.
@Bean
public CosmosClientBuilder getCosmosClientBuilder() {
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.build();
return new CosmosClientBuilder()
.endpoint("<azure-cosmos-db-nosql-account-endpoint>")
.credential(credential);
}
Adatbázis lekérése
A konfigurációs osztályban a minta egy metódust implementál a meglévő, elnevezett cosmicworks
adatbázis nevének visszaadására.
@Override
protected String getDatabaseName() {
return "cosmicworks";
}
Tároló lekérése
A metódus dekorátorával Container
konfigurálhat egy osztályt egy tároló elemeinek ábrázolására. Írja be az osztályt a JSON-ba szerializálni kívánt összes tag belefoglalásához. Ebben a példában a típus egyedi azonosítóval rendelkezik, és a kategória, a név, a mennyiség, az ár és a vámkezelés mezői.
@Container(containerName = "products", autoCreateContainer = false)
public class Item {
private String id;
private String name;
private Integer quantity;
private Boolean sale;
@PartitionKey
private String category;
// Extra members omitted for brevity
}
Elem létrehozása
Hozzon létre egy elemet a tárolóban a következő használatával repository.save
: .
Item item = new Item(
"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"gear-surf-surfboards",
"Yamba Surfboard",
12,
false
);
Item created_item = repository.save(item);
Elem olvasása
Pontolvasási műveletet hajt végre az egyedi azonosító (id
) és a partíciókulcs mezőinek használatával. Az adott elem hatékony lekérésére használható repository.findById
.
PartitionKey partitionKey = new PartitionKey("gear-surf-surfboards");
Optional<Item> existing_item = repository.findById("aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", partitionKey);
if (existing_item.isPresent()) {
// Do something
}
Lekérdezési elemek
Lekérdezés végrehajtása egy tároló több elemén egy lekérdezés definiálásával az adattár felületén. Ez a minta a Query
metódusdekorátor használatával határoz meg egy metódust, amely végrehajtja ezt a paraméteres lekérdezést:
SELECT * FROM products p WHERE p.category = @category
@Repository
public interface ItemRepository extends CosmosRepository<Item, String> {
@Query("SELECT * FROM products p WHERE p.category = @category")
List<Item> getItemsByCategory(@Param("category") String category);
}
A lekérdezés összes eredményének lekérése a következő használatával repository.getItemsByCategory
: . Futtasd végig a lekérdezés eredményeit.
List<Item> items = repository.getItemsByCategory("gear-surf-surfboards");
for (Item item : items) {
// Do something
}
Az adatok felfedezése
A NoSQL-adatok megismeréséhez használja az Azure Cosmos DB Visual Studio Code-bővítményét. Alapvető adatbázisműveleteket hajthat végre, beleértve, de nem kizárólagosan az alábbiakat:
- Lekérdezések végrehajtása egy album vagy a lekérdezésszerkesztő használatával
- Elemek módosítása, frissítése, létrehozása és törlése
- Tömeges adatok importálása más forrásokból
- Adatbázisok és tárolók kezelése
További információ: A Visual Studio Code bővítmény használata az Azure Cosmos DB for NoSQL-adatok megismeréséhez.
Az erőforrások eltávolí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