Desenvolvendo com fluxos no QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

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

Desenvolvendo com fluxos no QLDB

Esta seção resume as operações de API que você pode usar com um AWS SDK ou AWS CLI para criar e gerenciar fluxos de diários no Amazon QLDB. Também descreve os aplicativos de amostra que demonstram essas operações e usam a Kinesis Client Library (KCL) ou AWS Lambda para implementar um consumidor de fluxo.

É possível usar o KCL para criar aplicativos de consumo para o Amazon Kinesis Data Streams. A KCL simplifica a codificação fornecendo abstrações úteis acima da API de baixo nível do Kinesis Data Streams. Para saber mais sobre a KCL, consulte Usar a Amazon Kinesis Client Library no Guia do desenvolvedor do Amazon Kinesis Data Streams.

APIs de fluxo de diário do QLDB

A API do QLDB fornece as seguintes operações de fluxo diário para uso por programas aplicativos:

  • StreamJournalToKinesis— Cria um fluxo de diário para um determinado ledger do QLDB. O fluxo captura todas as revisões de documentos confirmadas no diário do ledger e entrega os dados a um recurso especificado do Amazon Kinesis Data Streams.

    • A agregação de registros no Kinesis Data Streams está ativada por padrão. Essa opção permite que o QLDB publique vários registros de dados em um único registro do Kinesis Data Streams, aumentando o número de registros enviados por chamada de API.

      A agregação de registros tem implicações importantes para o processamento de registros e requer desagregação em seu consumidor de stream. Para saber mais, consulte Conceitos-chave de KPL e Desagregação do consumidor no Guia do desenvolvedor do Amazon Kinesis Data Streams.

  • DescribeJournalKinesisStream - Devolve informações detalhadas sobre um determinado fluxo de diário. A saída inclui o ARN, o nome do fluxo, o status atual, a hora da criação e os parâmetros da sua solicitação original de criação do fluxo.

  • ListJournalKinesisStreamsForLedger— Devolve uma lista de todos os descritores de fluxo de diário do QLDB para um determinado ledger. A saída de cada descritor de fluxo inclui os mesmos detalhes devolvidos por DescribeJournalKinesisStream.

  • CancelJournalKinesisStream— Encerra um determinado fluxo de diário do QLDB. Antes que um fluxo possa ser cancelado, seu status atual deve ser ACTIVE.

    Não é possível reiniciar um fluxo depois de tê-lo cancelado. Para retomar a entrega de seus dados para o Kinesis Data Streams, você pode criar um novo fluxo do QLDB.

Para uma descrição completa dessas operações de API, consulte o Referência da API do Amazon QLDB

Para obter informações sobre como criar e gerenciar fluxos de diário usando o AWS CLI, consulte a Referência de AWS CLI Comandos.

Aplicações de exemplo

O QLDB fornece aplicativos de exemplo que demonstram várias operações usando fluxos de diário. Esses aplicativos são de código aberto no GitHub site AWS Samples.

Operações básicas (Java)

Para ver um exemplo de código Java que demonstra operações básicas para fluxos de diários do QLDB, consulte o repositório aws-samples/ -java. GitHub amazon-qldb-dmv-sample Para obter instruções sobre como baixar e instalar esse aplicativo de amostra, consulte Instalando o aplicativo de amostra Java do Amazon QLDB.

nota

Depois de instalar o aplicativo, não vá para a Etapa 1 do tutorial Java para criar um ledger. Este aplicativo de amostra para streaming cria o vehicle-registration ledger para você.

Esse aplicativo de amostra empacota o código-fonte completo do Tutorial de Java e de suas dependências, incluindo os seguintes módulos:

  • AWS SDK for Java— Criar e excluir os recursos do QLDB e do Kinesis Data Streams, incluindo ledgers, fluxos de diários do QLDB e fluxos de dados do Kinesis.

  • Driver Amazon QLDB para Java— Executar transações de dados em um ledger usando instruções PartiQL, incluindo a criação de tabelas e a inserção de documentos.

  • Kinesis Client Library - consumir e processar dados de um fluxo de dados do Kinesis.

Executar o código

A StreamJournalclasse contém um código tutorial que demonstra as seguintes operações:

  1. Crie um ledger chamado vehicle-registration, crie tabelas e carregue-as com dados de amostra.

    nota

    Antes de executar esse código, confirme que você ainda não tem um ledger ativo chamado vehicle-registration.

  2. Crie um fluxo de dados do Kinesis, um perfil do IAM que permite que o QLDB assuma permissões de gravação para o fluxo de dados do Kinesis e um fluxo de diário do QLDB.

  3. Use o KCL para iniciar um leitor de fluxo que processa o fluxo de dados do Kinesis e registra cada registro de dados do QLDB.

  4. Use os dados do fluxo para validar a cadeia de hash do vehicle-registration ledger de amostras.

  5. Limpe todos os recursos interrompendo o leitor de fluxo, cancelando o fluxo do diário do QLDB, excluindo o ledger e excluindo o fluxo de dados do Kinesis.

Para executar o código do tutorial StreamJournal, insira o seguinte comando do Gradle no diretório raiz do seu projeto.

./gradlew run -Dtutorial=streams.StreamJournal

Integração com o OpenSearch serviço (Python)

Para ver um aplicativo de amostra em Python que demonstra como integrar um stream QLDB com o Amazon OpenSearch Service, consulte o repositório aws-samples/ -. GitHub amazon-qldb-streaming-amazon opensearch-service-sample-python Esse aplicativo usa uma AWS Lambda função para implementar um consumidor do Kinesis Data Streams.

Para clonar o repositório, digite o seguinte comando git.

git clone https://github.com/aws-samples/amazon-qldb-streaming-amazon-opensearch-service-sample-python.git

Para executar o aplicativo de amostra, consulte o README ativado GitHub para obter instruções.

Integração com o Amazon SNS e o Amazon SQS (Python)

Para ver um aplicativo de amostra em Python que demonstra como integrar um stream do QLDB com o Amazon Simple Notification Service (Amazon SNS), consulte o repositório aws-samples/ -. GitHub amazon-qldb-streams-dmv sample-lambda-python

Esse aplicativo usa uma AWS Lambda função para implementar um consumidor do Kinesis Data Streams. Ele envia mensagens para um tópico do Amazon SNS, que tem uma fila do Amazon Simple Queue Service (Amazon SQS) inscrita nele.

Para clonar o repositório, digite o seguinte comando git.

git clone https://github.com/aws-samples/amazon-qldb-streams-dmv-sample-lambda-python.git

Para executar o aplicativo de amostra, consulte o README ativado GitHub para obter instruções.