QLDBDriver Amazon para Python — Tutorial de início rápido - Banco de dados Amazon Quantum Ledger (AmazonQLDB)

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. SQL

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.

Pré-requisitos

Antes de iniciar, certifique-se de fazer o seguinte:

  1. 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.

  2. 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

  1. Crie uma pasta para o seu aplicativo.

    $ mkdir myproject $ cd myproject
  2. 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.

  3. 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.

  1. Adicione o código a seguir que insere um documento na tabela People, atualizando age para 42.

    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. Consulte a tabela novamente para ver o valor atualizado.

    # Query the updated document qldb_driver.execute_lambda(lambda executor: read_documents(executor))
  3. 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