Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Začínáme s klientskou knihovnou Azure Cosmos DB for Apache Cassandra pro Python pro ukládání, správu a dotazování nestrukturovaných dat Postupujte podle kroků v tomto průvodci a vytvořte nový účet, nainstalujte klientskou knihovnu Pythonu, připojte se k účtu, proveďte běžné operace a dotazujte se na konečná ukázková data.
Referenční dokumentace API | Zdrojový kód knihovny | Balíček (PyPI)
Požadavky
Předplatné Azure
- Pokud nemáte předplatné Azure, vytvořte si bezplatný účet před zahájením.
Nejnovější verze Azure CLI v Azure Cloud Shellu
- Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, přihlaste se k Azure CLI pomocí
az loginpříkazu.
- Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, přihlaste se k Azure CLI pomocí
- Python 3.12 nebo novější
Instalace
Nejprve pro tuto příručku nastavte účet a vývojové prostředí. Tato část vás provede procesem vytvoření účtu, získáním jeho přihlašovacích údajů a následnou přípravou vývojového prostředí.
Vytvoření účtu
Začněte vytvořením rozhraní API pro účet Apache Cassandra. Po vytvoření účtu vytvořte klíčový prostor a tabulkové zdroje.
Pokud ještě nemáte cílovou skupinu prostředků, použijte
az group createpříkaz k vytvoření nové skupiny prostředků ve vašem předplatném.az group create \ --name "<resource-group-name>" \ --location "<location>"az cosmosdb createPomocí příkazu vytvořte nový účet Azure Cosmos DB pro Apache Cassandra s výchozím nastavením.az cosmosdb create \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --locations "regionName=<location>" \ --capabilities "EnableCassandra"Vytvořte nový keyspace pojmenovaný
az cosmosdb cassandra keyspace createcosmicworks.az cosmosdb cassandra keyspace create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --name "cosmicworks"Vytvořte nový objekt JSON, který bude reprezentovat schéma pomocí příkazu Bash s více řádky. Potom pomocí
az cosmosdb cassandra table createpříkazu vytvořte novou tabulku s názvemproducts.schemaJson=$(cat <<EOF { "columns": [ { "name": "id", "type": "text" }, { "name": "name", "type": "text" }, { "name": "category", "type": "text" }, { "name": "quantity", "type": "int" }, { "name": "price", "type": "decimal" }, { "name": "clearance", "type": "boolean" } ], "partitionKeys": [ { "name": "id" } ] } EOF )az cosmosdb cassandra table create \ --resource-group "<resource-group-name>" \ --account-name "<account-name>" \ --keyspace-name "cosmicworks" \ --name "product" \ --schema "$schemaJson"
Získání přihlašovacích údajů
Teď získejte heslo pro klientskou knihovnu, které se má použít k vytvoření připojení k nedávno vytvořenému účtu.
Slouží
az cosmosdb showk získání kontaktního bodu a uživatelského jména pro účet.az cosmosdb show \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --query "{username:name,contactPoint:documentEndpoint}"Poznamenejte si hodnotu
contactPointausernamevlastnosti z výstupu předchozích příkazů. Hodnoty těchto vlastností jsou kontaktní bod a uživatelské jméno , které použijete později v tomto průvodci pro připojení k účtu s knihovnou.Slouží
az cosmosdb keys listk získání klíčů pro účet.az cosmosdb keys list \ --resource-group "<resource-group-name>" \ --name "<account-name>" \ --type "keys"Poznamenejte si hodnotu
primaryMasterKeyvlastnosti z výstupu předchozích příkazů. Hodnota této vlastnosti je heslo , které použijete později v tomto průvodci pro připojení k účtu s knihovnou.
Příprava vývojového prostředí
Potom nakonfigurujte vývojové prostředí s novým projektem a klientskou knihovnou. Tento krok je posledním požadovaným předpokladem před přechodem na zbytek této příručky.
Začněte v prázdném adresáři.
cassandra-driverImportujte balíček z indexu balíčků Pythonu (PyPI).pip install cassandra-driverVytvořte soubor app.py.
Objektový model
| Popis | |
|---|---|
Cluster |
Představuje konkrétní připojení ke clusteru. |
Příklady kódu
Ověření klienta
Začněte ověřením klienta pomocí přihlašovacích údajů shromážděných dříve v této příručce.
Otevřete soubor app.py v integrovaném vývojovém prostředí (IDE).
Importujte z
cassandra-drivermodulu následující typy:cassandra.cluster.Clustercassandra.auth.PlainTextAuthProvider
from cassandra.cluster import Cluster from cassandra.auth import PlainTextAuthProviderImportujte z
sslmodulu následující typy:ssl.PROTOCOL_TLS_CLIENTssl.SSLContextssl.CERT_NONE
from ssl import PROTOCOL_TLS_CLIENT, SSLContext, CERT_NONEVytvořte řetězcové proměnné pro přihlašovací údaje shromážděné dříve v této příručce. Pojmenujte proměnné
username,passwordacontactPoint.username = "<username>" password = "<password>" contactPoint = "<contact-point>"SSLContextNakonfigurujte tak, že vytvoříte novou proměnnou s názvemssl_context, nastavíte protokol naPROTOCOL_TLS_CLIENT, zakážete kontrolu názvu hostitele a nastavíte režim ověřování naCERT_NONE.ssl_context = SSLContext(PROTOCOL_TLS_CLIENT) ssl_context.check_hostname = False ssl_context.verify_mode = CERT_NONEVytvořte nový
PlainTextAuthProviderobjekt s přihlašovacími údaji zadanými v předchozích krocích. Uložte výsledek do proměnné s názvemauth_provider.auth_provider = PlainTextAuthProvider(username=username, password=password)Vytvořte
Clusterobjekt pomocí přihlašovacích údajů a konfiguračních proměnných vytvořených v předchozích krocích. Uložte výsledek do proměnné s názvemcluster.cluster = Cluster([contactPoint], port=10350, auth_provider=auth_provider, ssl_context=ssl_context)Připojte se ke clusteru.
session = cluster.connect("cosmicworks")
Výstraha
Úplné ověření protokolu TLS (Transport Layer Security) je v tomto průvodci zakázané, aby se zjednodušilo ověřování. Pro produkční nasazení plně povolte ověřování.
Vložit nebo aktualizovat data
V dalším kroku přepište nová data do tabulky. Přenesení zajistí, že se data vytvoří nebo nahradí odpovídajícím způsobem v závislosti na tom, jestli stejná data již v tabulce existují.
Vytvořte novou řetězcovou proměnnou s názvem
insertQuerydotazu Cassandra Query Language (CQL) pro vložení nového řádku.insertQuery = """ INSERT INTO product (id, name, category, quantity, price, clearance) VALUES (%(id)s, %(name)s, %(category)s, %(quantity)s, %(price)s, %(clearance)s) """Vytvořte nový objekt s různými vlastnostmi nového produktu a uložte ho do proměnné s názvem
params.params = { "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "name": "Yamba Surfboard", "category": "gear-surf-surfboards", "quantity": 12, "price": 850.00, "clearance": False }executePomocí funkce spusťte dotaz se zadanými parametry.session.execute(insertQuery, params)
Čtení dat
Potom načtěte data, která byla dříve převedena do tabulky.
Vytvořte novou řetězcovou proměnnou pojmenovanou
readQuerys dotazem CQL, který odpovídá položkám se stejným polemid.readQuery = "SELECT * FROM product WHERE id = %s LIMIT 1"Vytvořte řetězcovou proměnnou s názvem
idse stejnou hodnotou jako produkt vytvořený dříve v této příručce.id = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"Pomocí funkce
executespusťte dotaz uložený vreadQuery, přičemž proměnnouidpoužijte jako argument. Uložte výsledek do proměnné s názvemreadResults.readResults = session.execute(readQuery, (id,))onePoužijte funkci, která získá očekávaný jediný výsledek. Uložte tento jediný výsledek do proměnné s názvemmatchedProduct.matchedProduct = readResults.one()
Dotaz k datům
Nakonec pomocí dotazu najděte všechna data, která odpovídají určitému filtru v tabulce.
Vytvořte řetězcové proměnné pojmenované
findQueryacategorypomocí dotazu CQL a požadovaného parametru.findQuery = "SELECT * FROM product WHERE category = %s ALLOW FILTERING" category = "gear-surf-surfboards"Pomocí dvou řetězcových proměnných a
executefunkce můžete dotazovat více výsledků. Uložte výsledek tohoto dotazu do proměnné s názvemfindResults.findResults = session.execute(findQuery, (category,))forPomocí smyčky iterujte výsledky dotazu.for row in findResults: # Do something here with each result
Spuštění kódu
Spusťte nově vytvořenou aplikaci pomocí terminálu v adresáři vaší aplikace.
python app.py
Vyčistěte zdroje
Pokud účet už nepotřebujete, odeberte ho z předplatného Azure odstraněním prostředku.
az cosmosdb delete \
--resource-group "<resource-group-name>" \
--name "<account-name>"