As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
QLDBDriver Amazon para Python — Tutorial de início rápido
Importante
Aviso de fim do suporte: os clientes existentes poderão usar a Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte Migrar um Amazon QLDB Ledger para o Amazon Aurora Postgre
Neste tutorial, você aprende a configurar um aplicativo simples usando a versão mais recente do QLDB driver da Amazon para Python. Este guia inclui etapas para instalar o driver e exemplos de códigos curtos das operações básicas de criação, leitura, atualização e exclusão (CRUD). Para obter exemplos mais detalhados que demonstram essas operações em um aplicativo de amostra completo, consulte o Tutorial do Python.
Tópicos
Pré-requisitos
Antes de iniciar, certifique-se de fazer o seguinte:
-
Complete a Pré-requisitos Para o driver Python, caso ainda não o tenha feito. Isso inclui se inscrever AWS, conceder acesso programático para desenvolvimento e instalar o Python versão 3.6 ou posterior.
-
Crie um ledger chamado
quick-start
.Para saber como criar um ledger, consulte Operações básicas para livros contábeis da Amazon QLDB ou Etapa 1: criar um novo ledger em Conceitos básicos do console.
Etapa 1: configurar o projeto do
Primeiro, configure seu projeto Python.
nota
Se você usa um IDE que tenha recursos para automatizar essas etapas de configuração, você pode pular para. Etapa 2: Inicializar o driver
-
Crie uma pasta para o seu aplicativo.
$
mkdir myproject
$
cd myproject
-
Para instalar o QLDB driver para Python a partir do PyPI, digite o seguinte comando.
pip
$
pip install pyqldb
A instalação do driver também instala suas dependências, incluindo os pacotes AWS SDK for Python (Boto3)
e Amazon Ion. -
Crie um novo arquivo chamado
app.py
.Em seguida, adicione incrementalmente os exemplos de código nas etapas a seguir para experimentar algumas CRUD operações básicas. Ou você pode pular o step-by-step tutorial e, em vez disso, executar o aplicativo completo.
Etapa 2: Inicializar o driver
Inicialize uma instância do driver que se conecta ao ledger chamado quick-start
. Adicione o seguinte código ao arquivo app.py
.
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)
Etapa 3: Crie uma tabela e um índice
O exemplo de código a seguir mostra como executar as instruções CREATE TABLE
e CREATE
INDEX
.
Adicione o código a seguir que cria uma tabela chamada People
e um índice para o campo lastName
nessa tabela. Os índices são necessários para otimizar o desempenho da consulta e ajudar a limitar as exceções otimistas de conflitos do controle de simultaneidade (OCC).
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))
Etapa 4: Inserir um documento
O exemplo de código a seguir mostra como executar uma instrução INSERT
. QLDBsuporta a linguagem de consulta partiQL (SQLcompatível) e o formato de dados Amazon Ion (superconjunto de). JSON
Adicione o código a seguir que insere um documento na tabela People
.
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))
Este exemplo usa um ponto de interrogação (?
) como um marcador variável para passar as informações do documento para a instrução. O método execute_statement
suporta valores nos tipos Amazon Ion e nos tipos nativos do Python.
dica
Para inserir vários documentos usando uma única instrução INSERT, você pode passar um parâmetro do tipo lista para a instrução da seguinte maneira.
# people is a list transaction_executor.execute_statement("INSERT INTO Person ?", people)
Você não coloca o marcador variável (?
) entre colchetes angulares duplos (<<...>>
) ao passar uma lista. Nas instruções manuais do PartiQL, colchetes angulares duplos denotam uma coleção não ordenada conhecida como bolsa.
Etapa 5: consultar o documento
O exemplo de código a seguir mostra como executar uma instrução SELECT
.
Adicione o código a seguir que insere um documento da tabela People
.
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))
Etapa 6: Atualize o documento
O exemplo de código a seguir mostra como executar uma instrução UPDATE
.
-
Adicione o código a seguir que insere um documento na tabela
People
, atualizandoage
para42
.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))
-
Consulte a tabela novamente para ver o valor atualizado.
# Query the updated document qldb_driver.execute_lambda(lambda executor: read_documents(executor))
-
Para executar o aplicativo, insira o comando a seguir do diretório do seu projeto.
$
python app.py
Executar o aplicativo completo
O exemplo de código a seguir é a versão completa do aplicativo app.py
. Em vez de executar as etapas anteriores individualmente, você também pode copiar e executar esse exemplo de código do início ao fim. Este aplicativo demonstra algumas CRUD operações básicas no livro contábil chamado. quick-start
nota
Antes de executar esse código, verifique se você ainda não tem uma tabela ativa chamada People
no ledger quick-start
.
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))
Para executar o aplicativo completo, insira o comando a seguir do diretório do seu projeto.
$
python app.py