Amazon QLDB-Treiber für Python — Schnellstart-Tutorial - Amazon Quantum Ledger Database (Amazon QLDB)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon QLDB-Treiber für Python — Schnellstart-Tutorial

In diesem Tutorial erfahren Sie, wie Sie eine einfache Anwendung mit der neuesten Version des Amazon QLDB-Treibers für Python einrichten. Dieses Handbuch enthält Schritte zum Installieren des Treibers und kurze Codebeispiele für grundlegende CRUD-Vorgänge (Create, Read, Update und Delete). Ausführlichere Beispiele, die diese Vorgänge in einer vollständigen Beispielanwendung veranschaulichen, finden Sie im Python-Tutorial.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass die folgende Voraussetzung erfüllt ist:

  1. Füllen Sie dasVoraussetzungen für den Python-Treiber aus, falls noch nicht geschehen, um das für den Python-Treiber zu tun. Dazu gehören die RegistrierungAWS, die Gewährung von programmatischen Zugriff für die Entwicklung und die Installation von Python-Version 3.6 oder höher.

  2. Ledger mit dem Namen quick-start erstellen.

    Informationen zum Erstellen eines Ledgers finden Sie unterGrundfunktionen für Amazon QLDB-Ledgers oderSchritt 1: Erstellen eines neuen Ledgers unter Erste Schritte mit der Konsole.

Schritt 1: Einrichten des Projekts

Erste Schritte

Anmerkung

Wenn Sie eine IDE verwenden, die Funktionen zur Automatisierung dieser Einrichtungsschritte enthält, können Sie mit dem Vorgang fortfahrenSchritt 2: Initialisieren des Treibers.

  1. Erstellen Sie einen Ordner für Ihre Anwendung.

    $ mkdir myproject $ cd myproject
  2. Um den QLDB-Treiber für Python von PyPI zu installieren, geben Sie den folgendenpip Befehl ein.

    $ pip install pyqldb

    Durch die Installation des Treibers werden auch seine Abhängigkeiten installiert, einschließlich der Pakete AWS SDK for Python (Boto3)und Amazon Ion.

  3. Erstellen Sie eine neue Datei mit dem Namen app.py.

    Fügen Sie dann schrittweise die Codebeispiele in den folgenden Schritten hinzu, um einige grundlegende CRUD-Operationen auszuprobieren. Oder Sie können das step-by-step Tutorial überspringen und stattdessen die komplette Anwendung ausführen.

Schritt 2: Initialisieren des Treibers

Initialisieren Sie eine Instance des Treibers, der eine Verbindung mit dem Ledger quick-start herstellt. Fügen Sie nun folgenden Code in die Datei app.py ein:

from pyqldb.config.retry_config import RetryConfig from pyqldb.driver.qldb_driver import QldbDriver # Configure retry limit to 3 retry_config = RetryConfig(retry_limit=3) # Initialize the driver print("Initializing the driver") qldb_driver = QldbDriver("quick-start", retry_config=retry_config)

Schritt 3: Erstellen einer Tabelle und eines Index

Im folgenden Codebeispiel wird veranschaulicht, wie CREATE TABLE- und CREATE INDEX-Anweisungen ausgeführt werden.

Fügen Sie den folgenden Code hinzu, der eine Tabelle mit dem Namen People und einen Index für das Feld lastName in dieser Tabelle erstellt. Indizes sind erforderlich, um die Abfrageleistung zu optimieren und dabei zu helfen, Konfliktausnahmen für Optimist Concurrency Control (OCC) zu begrenzen.

def create_table(transaction_executor): print("Creating a table") transaction_executor.execute_statement("Create TABLE People") def create_index(transaction_executor): print("Creating an index") transaction_executor.execute_statement("CREATE INDEX ON People(lastName)") # Create a table qldb_driver.execute_lambda(lambda executor: create_table(executor)) # Create an index on the table qldb_driver.execute_lambda(lambda executor: create_index(executor))

Schritt 4: Einfügen eines Dokuments

Im folgenden Codebeispiel wird veranschaulicht, wie eine INSERT-Anweisung ausgeführt wird. QLDB unterstützt die PartiQL-Abfragesprache (SQL-kompatibel) und das Amazon Ion-Datenformat (Superset von JSON).

Fügen Sie den folgenden Code hinzu, der ein Dokument in die Tabelle People einfügt.

def insert_documents(transaction_executor, arg_1): print("Inserting a document") transaction_executor.execute_statement("INSERT INTO People ?", arg_1) # Insert a document doc_1 = { 'firstName': "John", 'lastName': "Doe", 'age': 32, } qldb_driver.execute_lambda(lambda x: insert_documents(x, doc_1))

In diesem Beispiel wird ein Fragezeichen (?) als Variablenplatzhalter verwendet, um die Dokumentinformationen an die Anweisung zu übergeben. Dieexecute_statement Methode unterstützt Werte sowohl in Amazon Ion-Typen als auch in systemeigenen Python-Typen.

Tipp

Um mehrere Dokumente mit einer einzigenINSERT Anweisung einzufügen, können Sie wie folgt einen Parameter vom Typ list an die Anweisung übergeben.

# people is a list transaction_executor.execute_statement("INSERT INTO Person ?", people)

Sie schließen den variablen Platzhalter (?) nicht in doppelte eckige Klammern (<<...>>) ein, wenn Sie eine Liste übergeben. In manuellen PartiQL-Anweisungen bezeichnen doppelte spitze Klammern eine ungeordnete Sammlung, die als Bag bezeichnet wird.

Schritt 5: Abfragen des Dokuments

Im folgenden Codebeispiel wird veranschaulicht, wie eine SELECT-Anweisung ausgeführt wird.

Fügen Sie den folgenden Code hinzu, der ein Dokument aus der Tabelle People abfragt.

def read_documents(transaction_executor): print("Querying the table") cursor = transaction_executor.execute_statement("SELECT * FROM People WHERE lastName = ?", 'Doe') for doc in cursor: print(doc["firstName"]) print(doc["lastName"]) print(doc["age"]) # Query the table qldb_driver.execute_lambda(lambda executor: read_documents(executor))

Schritt 6: Aktualisieren des Dokuments

Im folgenden Codebeispiel wird veranschaulicht, wie eine UPDATE-Anweisung ausgeführt wird.

  1. Fügen Sie den folgenden Code hinzu, der ein Dokument in derPeople Tabelle aktualisiert, indemage es auf aktualisiert wird42.

    def update_documents(transaction_executor, age, lastName): print("Updating the document") transaction_executor.execute_statement("UPDATE People SET age = ? WHERE lastName = ?", age, lastName) # Update the document age = 42 lastName = 'Doe' qldb_driver.execute_lambda(lambda x: update_documents(x, age, lastName))
  2. Fragen Sie die Tabelle erneut ab, um den aktualisierten Wert zu sehen.

    # Query the updated document qldb_driver.execute_lambda(lambda executor: read_documents(executor))
  3. Verwenden Sie den folgenden, um die Anwendung auszuführen, um die Anwendung auszuführen, um die Anwendung auszuführen, um die Anwendung auszuführen.

    $ python app.py

Ausführen der vollständigen Anwendung

Das folgende Codebeispiel ist die vollständige Version derapp.py Anwendung. Anstatt die vorherigen Schritte einzeln auszuführen, können Sie dieses Codebeispiel auch kopieren und von Anfang bis Ende ausführen. Diese Anwendung demonstriert einige grundlegende CRUD-Operationen für den Ledger namens quick-start.

Anmerkung

Bevor Sie diesen Code ausführen, stellen Sie sicher, dass Sie noch keine aktive Tabelle mit dem Namen People im quick-start-Ledger besitzen.

from pyqldb.config.retry_config import RetryConfig from pyqldb.driver.qldb_driver import QldbDriver def create_table(transaction_executor): print("Creating a table") transaction_executor.execute_statement("CREATE TABLE People") def create_index(transaction_executor): print("Creating an index") transaction_executor.execute_statement("CREATE INDEX ON People(lastName)") def insert_documents(transaction_executor, arg_1): print("Inserting a document") transaction_executor.execute_statement("INSERT INTO People ?", arg_1) def read_documents(transaction_executor): print("Querying the table") cursor = transaction_executor.execute_statement("SELECT * FROM People WHERE lastName = ?", 'Doe') for doc in cursor: print(doc["firstName"]) print(doc["lastName"]) print(doc["age"]) def update_documents(transaction_executor, age, lastName): print("Updating the document") transaction_executor.execute_statement("UPDATE People SET age = ? WHERE lastName = ?", age, lastName) # Configure retry limit to 3 retry_config = RetryConfig(retry_limit=3) # Initialize the driver print("Initializing the driver") qldb_driver = QldbDriver("quick-start", retry_config=retry_config) # Create a table qldb_driver.execute_lambda(lambda executor: create_table(executor)) # Create an index on the table qldb_driver.execute_lambda(lambda executor: create_index(executor)) # Insert a document doc_1 = { 'firstName': "John", 'lastName': "Doe", 'age': 32, } qldb_driver.execute_lambda(lambda x: insert_documents(x, doc_1)) # Query the table qldb_driver.execute_lambda(lambda executor: read_documents(executor)) # Update the document age = 42 lastName = 'Doe' qldb_driver.execute_lambda(lambda x: update_documents(x, age, lastName)) # Query the table for the updated document qldb_driver.execute_lambda(lambda executor: read_documents(executor))

Verwenden Sie den folgenden Befehl aus Ihrem Projektverzeichnis, um die vollständige Anwendung auszuführen, um die vollständige Anwendung auszuführen, um die vollständige Anwendung auszuführen.

$ python app.py