Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Driver Amazon QLDB per Python — Tutorial di avvio rapido
In questo tutorial, imparerai come configurare una semplice applicazione utilizzando l'ultima versione del driver Amazon QLDB per Python. Questa guida include i passaggi per l'installazione del driver ed esempi di creazione, lettura, aggiornamento ed eliminazione (CRUD). Per esempi più approfonditi che dimostrano queste operazioni in un'applicazione di esempio completa, consulta ilTutorial di Python.
Argomenti
Prerequisiti
Prima di iniziare, assicurati di completare quanto segue:
-
Completa il driverPrerequisiti for the Python, se non l'hai già fatto. Ciò include la registrazioneAWS, la concessione dell'accesso programmatico per lo sviluppo e l'installazione di Python versione 3.6 o successiva.
-
Crea un libro contabile denominato
quick-start
.Per informazioni su come creare un libro mastro, consultaOperazioni di base per i libri mastri Amazon QLDB oFase 1: creazione di un nuovo libro mastro in Guida introduttiva alla console.
Fase 1: Configurazione del progetto
In primo luogo, configura il tuo progetto Python.
Nota
Se utilizzi un IDE con funzionalità per automatizzare questi passaggi di configurazione, puoi passare direttamente aFase 2: Inizializzazione del driver.
-
Crea una cartella per la tua applicazione.
$
mkdir myproject
$
cd myproject
-
Per installare il driver QLDB per Python da PyPI, immettere il seguente
pip
comando.$
pip install pyqldb
L'installazione del driver installa anche le relative dipendenze, inclusi i pacchetti Amazon Ion AWS SDK for Python (Boto3)e Amazon.
-
Creare un nuovo file denominato
app.py
.Quindi, aggiungi in modo incrementale gli esempi di codice nei passaggi seguenti per provare alcune operazioni CRUD di base. In alternativa, puoi saltare il step-by-step tutorial ed eseguire invece l'applicazione completa.
Fase 2: Inizializzazione del driver
Inizializza un'istanza del driver che si connette al registro denominatoquick-start
. Aggiungi il seguente codice alapp.py
file.
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)
Fase 3: Crea una tabella e un indice
L'esempio di codice seguente mostra come eseguireCREATE TABLE
leCREATE
INDEX
istruzioni.
Aggiungi il codice seguente per creare una tabella denominataPeople
e un indice per illastName
campo di quella tabella. Gli indici sono necessari per ottimizzare le prestazioni delle query e contribuire a limitare le eccezioni di conflitto OCC (Optimistic Concurrency Control).
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))
Fase 4: inserisci un documento
L'esempio di codice seguente mostra come eseguire un'INSERT
istruzione. QLDB supporta il linguaggio di interrogazione PartiQL (compatibile con SQL) e il formato dati Amazon Ion (superset di JSON).
Aggiungete il seguente codice che inserisce un documento nellaPeople
tabella.
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))
Questo esempio utilizza un punto interrogativo (?
) come segnaposto variabile per passare le informazioni del documento alla dichiarazione. Ilexecute_statement
metodo supporta valori sia nei tipi Amazon Ion che nei tipi nativi di Python.
Suggerimento
Per inserire più documenti utilizzando una singolaINSERT istruzione, è possibile passare un elenco di parametri di tipo all'istruzione come segue.
# people is a list transaction_executor.execute_statement("INSERT INTO Person ?", people)
Non si racchiude la variabile placeholder (?
) tra parentesi a doppio angolo (<<...>>
) quando si passa un elenco. Nelle istruzioni PartiQL, le parentesi a doppio angolo indicano una raccolta non ordinata nota come borsa.
Fase 5: esegui query sul documento
L'esempio di codice seguente mostra come eseguire un'SELECT
istruzione.
Aggiungete il codice seguente per interrogare un documento dallaPeople
tabella.
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))
Fase 6: Aggiornamento del documento
L'esempio di codice seguente mostra come eseguire un'UPDATE
istruzione.
-
Aggiungi il codice seguente che aggiorna un documento nella
People
tabella eseguendo l'aggiornamentoage
a42
.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))
-
Interroga nuovamente la tabella per visualizzare il valore aggiornato.
# Query the updated document qldb_driver.execute_lambda(lambda executor: read_documents(executor))
-
Per eseguire l'applicazione, inserisci il comando seguente dalla directory del progetto.
$
python app.py
Esecuzione dell'applicazione completa
Il seguente esempio di codice è la versione completa dell'app.py
applicazione. Invece di eseguire i passaggi precedenti singolarmente, puoi anche copiare ed eseguire questo esempio di codice dall'inizio alla fine. Questa applicazione dimostra alcune operazioni CRUD di base sul registro denominatoquick-start
.
Nota
Prima di eseguire questo codice, assicuratevi di non avere già una tabella attiva denominataPeople
nelquick-start
libro mastro.
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))
Per eseguire l'applicazione completa, inserisci il seguente comando dalla directory del progetto.
$
python app.py