Streaming de dados de diários da Amazon QLDB - 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á.

Streaming de dados de diários da Amazon QLDB

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

A Amazon QLDB usa um registro transacional imutável, conhecido como diário, para armazenamento de dados. O diário rastreia todas as alterações em seus dados confirmados e mantém um histórico de alterações completo e verificável ao longo do tempo.

Você pode criar um stream QLDB que capture todas as revisões de documentos comprometidas com seu diário e entregue esses dados ao Amazon Kinesis Data Streams quase em tempo real. Um QLDB stream é um fluxo contínuo de dados do diário do seu livro contábil para um recurso de stream de dados do Kinesis.

Em seguida, você usa a plataforma de streaming Kinesis ou a Biblioteca de cliente Kinesis para consumir seu fluxo, processar os registros de dados e analisar o conteúdo dos dados. Um QLDB stream grava seus dados no Kinesis Data Streams em três tipos de registros: controle, resumo do bloco e detalhes da revisão. Para ter mais informações, consulte QLDBregistros de streaming no Kinesis.

Casos de uso comuns

O streaming permite que você o use QLDB como uma fonte única e verificável de verdade, ao mesmo tempo em que integra os dados do seu diário a outros serviços. A seguir estão alguns dos casos de uso comuns suportados por fluxos de QLDB diários:

  • Arquitetura orientada a eventos: crie aplicativos em um estilo arquitetônico orientado por eventos com componentes desacoplados. Por exemplo, um banco pode usar AWS Lambda funções para implementar um sistema de notificação que alerta os clientes quando o saldo da conta cai abaixo de um limite. Nesse sistema, os saldos das contas são mantidos em um QLDB livro contábil e quaisquer alterações no saldo são registradas no diário. A AWS Lambda função pode acionar a lógica de notificação ao consumir um evento de atualização de saldo que é confirmado no diário e enviado para um stream de dados do Kinesis.

  • Análise em tempo real: crie aplicativos de consumo da Kinesis que executam análises em tempo real sobre dados de eventos. Com esse recurso, você pode obter insights quase em tempo real e responder rapidamente a um ambiente de negócios em constante mudança. Por exemplo, um site de comércio eletrônico pode analisar dados de vendas de produtos e interromper os anúncios de um produto com desconto assim que as vendas atingirem um limite.

  • Análise histórica — Aproveite a arquitetura orientada a periódicos da Amazon QLDB reproduzindo dados históricos de eventos. Você pode optar por iniciar um QLDB stream a partir de qualquer momento no passado, no qual todas as revisões feitas desde aquela época são entregues ao Kinesis Data Streams. Usando esse atributo, você pode criar aplicativos de consumo do Kinesis que executam trabalhos de análise em dados históricos. Por exemplo, um site de comércio eletrônico pode executar análises conforme necessário para gerar métricas de vendas anteriores que não foram capturadas anteriormente.

  • Replicação para bancos de dados específicos — Conecte livros contábeis a outros QLDB armazenamentos de dados específicos usando fluxos de diários. QLDB Por exemplo, use a plataforma de dados de streaming Kinesis para fazer a integração com o Amazon OpenSearch Service, que pode fornecer recursos de pesquisa de texto completo para QLDB documentos. Você também pode criar aplicativos de consumo personalizados do Kinesis para replicar os dados do diário em outros bancos de dados com propósito específico que fornecem diferentes visões materializadas. Por exemplo, replique para o Amazon Aurora para obter dados relacionais ou para o Amazon Neptune para dados baseados em gráficos.

Consumindo seu fluxo

Use o Kinesis Data Streams para consumir, processar e analisar continuamente grandes fluxos de registros de dados. Além do Kinesis Data Streams, a plataforma de streaming de dados da Kinesis inclui o Amazon Data Firehose e o Amazon Managed Service para Apache Flink. Você pode usar essa plataforma para enviar registros de dados diretamente para serviços como Amazon OpenSearch Service, Amazon Redshift, Amazon S3 ou Splunk. Para obter mais informações, consulte Consumidores Kinesis Data Streams no Guia do desenvolvedor do Amazon Kinesis Data Streams.

Você também pode usar a Kinesis Client Library (KCL) para criar um aplicativo consumidor de stream para processar registros de dados de forma personalizada. Isso KCL simplifica a codificação ao fornecer abstrações úteis acima do Kinesis Data Streams de baixo nível. API Para saber mais sobre oKCL, consulte Como usar a biblioteca de cliente do Kinesis no Guia do desenvolvedor do Amazon Kinesis Data Streams.

Garantia de entrega

QLDBos streams fornecem uma garantia at-least-oncede entrega. Cada registro de dados produzido por um QLDB stream é entregue ao Kinesis Data Streams pelo menos uma vez. Os mesmos registros podem aparecer em um fluxo de dados do Kinesis várias vezes. Portanto, você deve ter uma lógica de desduplicação na camada de aplicação do consumidor, se o seu caso de uso assim o exigir.

Também não há garantias de pedido. Em algumas circunstâncias, QLDB blocos e revisões podem ser produzidos em um stream de dados do Kinesis fora de ordem. Para ter mais informações, consulte Lidando com duplicatas e registros out-of-order.

Considerações sobre latência de entrega

QLDBos streams normalmente entregam atualizações para o Kinesis Data Streams quase em tempo real. No entanto, os cenários a seguir podem criar latência adicional antes que QLDB os dados recém-confirmados sejam emitidos para um stream de dados do Kinesis:

  • O Kinesis pode controlar os dados que são transmitidosQLDB, dependendo do provisionamento do Kinesis Data Streams. Por exemplo, isso pode ocorrer se você tiver vários QLDB streams gravando em um único stream de dados do Kinesis e a taxa QLDB de solicitação exceder a capacidade do recurso de stream do Kinesis. O controle de utilização no Kinesis também pode ocorrer ao usar o provisionamento sob demanda se o throughput aumentar para mais que o dobro do pico anterior em menos de 15 minutos.

    Você pode medir esse throughput excedido monitorando a métrica do Kinesis WriteProvisionedThroughputExceeded. Para obter mais informações e possíveis soluções, consulte Como soluciono erros de controle de utilização no Kinesis Data Streams?.

  • Com QLDB os streams, você pode criar um stream indefinido com data e hora de início no passado e sem data e hora de término. Por design, QLDB começa a emitir dados recém-confirmados para o Kinesis Data Streams somente depois que todos os dados anteriores da data e hora de início especificadas forem entregues com sucesso. Se você perceber latência adicional nesse cenário, talvez seja necessário aguardar a entrega dos dados anteriores ou iniciar a transmissão a partir de uma data e hora de início posteriores.

Introdução aos fluxos

Veja a seguir uma visão geral de alto nível das etapas necessárias para começar a fazer fluxo de dados do diário para o Kinesis Data Streams:

  1. Crie um recurso do Kinesis Data Streams. Para obter instruções, consulte Criação e atualização de fluxos de dados no Guia do desenvolvedor do Amazon Kinesis Data Streams.

  2. Crie uma IAM função que permita QLDB assumir permissões de gravação para o stream de dados do Kinesis. Para obter instruções, consulte Permissões de transmissão em QLDB.

  3. Crie um stream de QLDB diário. Para obter instruções, consulte Criação e gerenciamento de fluxos em QLDB.

  4. Consuma o fluxo de dados do Kinesis, conforme descrito na seção anterior Consumindo seu fluxo. Para exemplos de código que mostram como usar a Biblioteca de Cliente Kinesis ou AWS Lambda, consulte. Desenvolvendo com fluxos em QLDB