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


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

Ebben a rövid útmutatóban üzembe helyez egy alapszintű Azure Cosmos DB for NoSQL-alkalmazást az Azure SDK for Python 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. Az Azure SDK for Python használatával lekérdezheti a tárolókban lévő adatokat, és közös műveleteket végezhet az egyes elemeken.

API referenciadokumentáció | Kódtár forráskódja | Csomag (PyPI) | Azure Developer CLI

Előfeltételek

  • Azure Developer CLI
  • Docker Desktop
  • Python 3.12

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.

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

  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-nosql-python-quickstart
    
  4. Az inicializálás során konfiguráljon egy egyedi környezetnevet.

  5. Az Azure Cosmos DB-fiókot azd up használatával helyezze üzembe. 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

Az ügyfélkönyvtár a Python-csomagindexen keresztül érhető el, mint a azure-cosmos könyvtár.

  1. Nyisson meg egy terminált, és keresse meg a /src mappát.

    cd ./src
    
  2. Ha még nincs telepítve, a azure-cosmos csomagot telepítse a pip install segítségével.

    pip install azure-cosmos
    
  3. Emellett telepítse a azure-identity csomagot, ha még nincs telepítve.

    pip install azure-identity
    
  4. Nyissa meg és tekintse át az src/requirements.txt fájlt annak ellenőrzéséhez, hogy a azure-cosmos és a azure-identity bejegyzések egyaránt léteznek.

Könyvtárak importálása

Importálja az DefaultAzureCredential és CosmosClient típusokat az alkalmazáskódba.

from azure.identity import DefaultAzureCredential
from azure.cosmos import CosmosClient

Objektummodell

Név Leírás
CosmosClient Ez az osztály az elsődleges ügyfélosztály, és a fiókszintű metaadatok vagy adatbázisok kezelésére szolgál.
DatabaseProxy Ez az osztály egy adatbázist jelöl a fiókon belül.
ContainerProxy Ez az osztály elsősorban olvasási, frissítési és törlési műveletek végrehajtására szolgál a tárolón vagy a tárolóban tárolt elemeken.
PartitionKey Ez az osztály egy logikai partíciókulcsot jelöl. Ez az osztály számos gyakori művelethez és lekérdezéshez szükséges.

Kódpéldák

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 létrehoz egy új CosmosClient típusú példányt, és egy DefaultAzureCredential példánnyal hitelesít.

credential = DefaultAzureCredential()

client = CosmosClient(url="<azure-cosmos-db-nosql-account-endpoint>", credential=credential)

Adatbázis lekérése

A client.get_database_client használatával kérhető le a meglévő adatbázis, amelynek neve cosmicworks.

database = client.get_database_client("cosmicworks")

Szerezzen be egy tárolót

Lekérni a meglévő products tárolót a következővel: database.get_container_client.

container = database.get_container_client("products")

Elem létrehozása

Hozzon létre egy új objektumot a JSON-ba szerializálni kívánt összes taggal. 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 az értékesítés mezői. Hozzon létre egy elemet a tárolóban a következő használatával container.upsert_item: . Ez a módszer beszúrja az elemet, vagy ha már létezik, hatékonyan frissíti azt.

new_item = {
    "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "category": "gear-surf-surfboards",
    "name": "Yamba Surfboard",
    "quantity": 12,
    "sale": False,
}

created_item = container.upsert_item(new_item)

Tétel 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ó container.read_item .

existing_item = container.read_item(
    item="aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    partition_key="gear-surf-surfboards",
)

Lekérdezési tételek

Lekérdezés végrehajtása egy tároló több eleme felett a következő használatával container.GetItemQueryIterator: . Egy adott kategórián belüli összes elem megkeresése ezzel a paraméteres lekérdezéssel:

SELECT * FROM products p WHERE p.category = @category
queryText = "SELECT * FROM products p WHERE p.category = @category"

results = container.query_items(
    query=queryText,
    parameters=[
        dict(
            name="@category",
            value="gear-surf-surfboards",
        )
    ],
    enable_cross_partition_query=False,
)

Futtasd végig a lekérdezés eredményeit.

items = [item for item in results]

output = json.dumps(items, indent=True)

Fedezd fel az adataidat

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 rendezése

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