Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a rövid útmutatóban üzembe helyez egy alapszintű Azure Cosmos DB for NoSQL-alkalmazást az Azure SDK for Java használatával. Az Azure Cosmos DB for NoSQL egy séma nélküli adattár, amellyel az alkalmazások strukturálatlan adatokat tárolnak a felhőben. Adatokat kérdezhet le a tárolókban, és az Azure SDK for Java használatával közös műveleteket hajt végre az egyes elemeken.
API-referenciadokumentáció | Kódtár forráskódja | Csomag (Maven) | Azure fejlesztői 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 NoSQL-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.
Nyiss 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 loginA projekt inicializálására használható
azd init.azd init --template cosmos-db-nosql-java-quickstartAz 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 upA 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/webmappára, és nyissa meg a pom.xml fájlt.Ha még nem létezik, adjon hozzá egy bejegyzést a
azure-spring-data-cosmoscsomaghoz.<dependency> <groupId>com.azure</groupId> <artifactId>azure-spring-data-cosmos</artifactId> </dependency>Emellett adjon hozzá egy másik függőséget a
azure-identitycsomaghoz, ha még nem létezik.<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> </dependency>
Könyvtárak importálása
Importálja az összes szükséges névteret az alkalmazáskódba.
import com.azure.cosmos.CosmosClientBuilder;
import com.azure.cosmos.models.PartitionKey;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.spring.data.cosmos.config.AbstractCosmosConfiguration;
import com.azure.spring.data.cosmos.config.CosmosConfig;
import com.azure.spring.data.cosmos.core.mapping.Container;
import com.azure.spring.data.cosmos.core.mapping.PartitionKey;
import com.azure.spring.data.cosmos.repository.CosmosRepository;
import com.azure.spring.data.cosmos.repository.Query;
import com.azure.spring.data.cosmos.repository.config.EnableCosmosRepositories;
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 productshaszná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 a AbstractCosmosConfiguration osztályból örököl a NoSQL-hez való Azure Cosmos DB 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 a CosmosClientBuilder osztály új példányát, és egy DefaultAzureCredential példány használatával konfigurálja a hitelesítést.
@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 cosmicworksadatbázis nevének visszaadására.
@Override
protected String getDatabaseName() {
return "cosmicworks";
}
Szerezz egy tárolót
A metódus dekorátorával Container konfigurálhat egy osztályt egy tároló elemeinek ábrázolására. Hozza létre az osztályt úgy, hogy a JSON-ba szerializálni kívánt összes tagot belefoglalja. Ebben a példában a típus egyedi azonosítóval rendelkezik, valamint mezőkkel a kategória, a név, a mennyiség, az ár és a kiárusítás számára.
@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
}
Fedezze fel adatait
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 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