Bearbeiten von Azure CosmosDB aus Python Part.2

Ich möchte vom letzten Mal an etwas tiefer in den Code eintauchen. Letztes Verfahren → https://qiita.com/komiyasa/items/ae34fd9fec46c0e01b35

Tutorial-Code

Das Folgende ist das Ganze. Legen Sie in diesem Fall den Namen der Datenbank und den Namen des Containers fest. Es scheint, dass der spezifische Inhalt in einer anderen Python-Datei festgelegt ist.

Program.py


from azure.cosmos import exceptions, CosmosClient, PartitionKey
import family

# Initialize the Cosmos client
endpoint = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

# <create_cosmos_client>
client = CosmosClient(endpoint, key)
# </create_cosmos_client>

# Create a database
# <create_database_if_not_exists>
database_name = 'AzureSampleFamilyDatabase'
database = client.create_database_if_not_exists(id=database_name)
# </create_database_if_not_exists>

# Create a container
# Using a good partition key improves the performance of database operations.
# <create_container_if_not_exists>
container_name = 'FamilyContainer'
container = database.create_container_if_not_exists(
    id=container_name, 
    partition_key=PartitionKey(path="/lastName"),
    offer_throughput=400
)
# </create_container_if_not_exists>


# Add items to the container
family_items_to_create = [family.get_andersen_family_item(), family.get_johnson_family_item(), family.get_smith_family_item(), family.get_wakefield_family_item()]

 # <create_item>
for family_item in family_items_to_create:
    container.create_item(body=family_item)
# </create_item>

# Read items (key value lookups by partition key and id, aka point reads)
# <read_item>
for family in family_items_to_create:
    item_response = container.read_item(item=family['id'], partition_key=family['lastName'])
    request_charge = container.client_connection.last_response_headers['x-ms-request-charge']
    print('Read item with id {0}. Operation consumed {1} request units'.format(item_response['id'], (request_charge)))
# </read_item>

# Query these items using the SQL query syntax. 
# Specifying the partition key value in the query allows Cosmos DB to retrieve data only from the relevant partitions, which improves performance
# <query_items>
query = "SELECT * FROM c WHERE c.lastName IN ('Wakefield', 'Andersen')"

items = list(container.query_items(
    query=query,
    enable_cross_partition_query=True
))

request_charge = container.client_connection.last_response_headers['x-ms-request-charge']

print('Query returned {0} items. Operation consumed {1} request units'.format(len(items), request_charge))
# </query_items>

Initialisierung von CosmosClient

client = CosmosClient(endpoint, key)

Der Endpunkt und der Schlüssel werden hier festgelegt. Legen Sie den Wert für den Client fest, indem Sie den Schlüssel der bereitgestellten Cosmos-Datenbank vom Azure-Portal abrufen.

Erstellen Sie eine neue Datenbank

database_name = 'AzureSampleFamilyDatabase'
database = client.create_database_if_not_exists(id=database_name)

Ich erstelle eine neue Datenbank mit der Bedingung, dass ich keinen Namen trage, wenn es keinen Namen gibt. Hier haben wir eine Datenbank namens "AzureSampleFamilyDatabase" erstellt.

Erstellen Sie einen neuen Container

container_name = 'FamilyContainer'
container = database.create_container_if_not_exists(
    id=container_name, 
    partition_key=PartitionKey(path="/lastName"),
    offer_throughput=400
)

Erstellen Sie nun einen Container mit dem Namen "FamilyContainer". Dies ist auch bedingt, wenn nicht.

Zum Behälter hinzufügen

for family_item in family_items_to_create:
    container.create_item(body=family_item)

Geben Sie nun den Wert von Family_item in den Container ein.

Punkt lesen

for family in family_items_to_create:
    item_response = container.read_item(item=family['id'], partition_key=family['lastName'])
    request_charge = container.client_connection.last_response_headers['x-ms-request-charge']
    print('Read item with id {0}. Operation consumed {1} request units'.format(item_response['id'], (request_charge)))

##Abfrageausführung mit SQL-Abfragesyntax
query = "SELECT * FROM c WHERE c.lastName IN ('Wakefield', 'Andersen')"

items = list(container.query_items(
    query=query,
    enable_cross_partition_query=True
))

request_charge = container.client_connection.last_response_headers['x-ms-request-charge']

print('Query returned {0} items. Operation consumed {1} request units'.format(len(items), request_charge))

Ein kleines Arrangement

Am einfachsten ist es, den Datenbanknamen und den Containernamen in diesem Code zu ändern und zu prüfen, ob die Änderungen im Azure-Portal übernommen werden. Es ist ein bisschen, aber lassen Sie es uns so ändern.

database_name = 'AzureSampleFamilyDatabase2'
database = client.create_database_if_not_exists(id=database_name)

Das Ausgabeergebnis des Befehls lautet wie folgt.

PS C:\Users\komiyasa\Val\sample\azure-cosmos-db-python-getting-started> python .\cosmos_get_started.py
Read item with id Andersen_c23dcf0d-de55-43eb-afbe-e102ebb22dcc. Operation consumed 1 request units
Read item with id Smith_efc4369e-0c4b-4609-8dfc-6799df71f07d. Operation consumed 1 request units
Read item with id Johnson_d84a50c0-ce2e-4b53-a3e9-08104a1a1b7d. Operation consumed 1 request units
Read item with id Wakefield_a667cfc4-a266-4b63-a104-a27e636039e8. Operation consumed 1 request units

Wenn Sie sich das Azure-Portal ansehen, werden Sie feststellen, dass eine Datenbank mit dem neuen Namen mit demselben Inhalt erstellt wurde. image.png

Impressionen

Dies ist ein praktischer Beispielcode, da er sehr einfach zu verwenden ist und intuitiv bereitgestellt werden kann. Beim nächsten Mal möchte ich die Lösch- / Aktualisierungsmethode in SQL mithilfe des Azure Python SDK überprüfen.

Recommended Posts

Bearbeiten von Azure CosmosDB aus Python Part.2
Arbeiten mit Azure CosmosDB aus Python (Schnellstart)
Bildverarbeitung mit Python (Teil 2)
Python mit freeCodeCamp Teil1 studieren
Angrenzende Bilder mit Python Teil 1
BigQuery-Python war nützlich, wenn Sie mit BigQuery aus Python arbeiten
Schaben mit Selen + Python Teil 1
Betreiben Sie LibreOffice mit Python
Python: Arbeiten mit Firefox mit Selen
Umgang mit Sounds in Python
Python studieren mit freeCodeCamp part2
Bildverarbeitung mit Python (Teil 1)
Nampre mit Python lösen (Teil 2)
Bildverarbeitung mit Python (3)
Schaben mit Selen + Python Teil 2
Mit Skype benachrichtigen Sie mit Skype von Python!
Spielen Sie handschriftliche Zahlen mit Python Part 1
Rufen Sie C von Python mit DragonFFI auf
Verwenden von Rstan aus Python mit PypeR
Arbeiten mit LibreOffice in Python: Importieren
[Mit Python automatisiert! ] Teil 1: Datei einstellen
Installieren Sie Python von der Quelle mit Ansible
Führen Sie Aprili von Python auf Orange aus
Verwenden Sie Azure Blob Storage aus Python
Rufen Sie Python von Nim mit Nimpy auf
Automatisieren Sie einfache Aufgaben mit Python Part0
[Mit Python automatisiert! ] Teil 2: Dateivorgang
Laden Sie fbx aus Python mitinema4d
Arbeiten mit DICOM-Bildern in Python
Test der Spracherkennung mit Azure mit Python (Eingabe vom Mikrofon)
Sammeln von Informationen von Twitter mit Python (Twitter API)
Empfangen Sie Textdaten von MySQL mit Python
Holen Sie sich HTML von Element mit Python-Selen
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
Spielen Sie handschriftliche Zahlen mit Python Teil 2 (identifizieren)
Verarbeiten Sie Pubmed .xml-Daten mit Python [Teil 2]
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Automatisieren Sie einfache Aufgaben mit Python Part1 Scraping
Tweet von Python mit Twitter Developer + Tweepy
Geschäftseffizienz von Grund auf mit Python
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
Arbeiten mit OpenStack mit dem Python SDK
Bildaufnahme von der Kamera mit Python + OpenCV
100 Sprachverarbeitungsklopfen mit Python (Kapitel 2, Teil 1)
Erste Schritte mit Dynamo von Python Boto
FM-Modulation und Demodulation mit Python Part 2
[Azure] Klicken Sie mit Python auf Custom Vision Service
Versuchen Sie, Python von Ruby aus mit Sparsamkeit aufzurufen
Scraping von einer authentifizierten Site mit Python
[Teil1] Scraping mit Python → Organisieren Sie bis zu CSV!
Verwenden von C ++ - Funktionen aus Python mit pybind11
Verwenden Sie Python und MeCab mit Azure-Funktionen
Arbeiten mit GPS in Python für Raspberry Pi 3
QGIS + Python Teil 2
Sammeln von Informationen von Twitter mit Python (Umgebungskonstruktion)