Stream de dados do diário do Amazon 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á.

Stream de dados do diário do Amazon QLDB

O Amazon QLDB usa um log 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 fluxo no QLDB que captura todas as revisões de documentos confirmadas em seu diário e entrega esses dados ao Amazon Kinesis Data Streams quase em tempo real. Um fluxo QLDB é um fluxo contínuo de dados do diário do seu ledger para um recurso de fluxo 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 fluxo do QLDB 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 Registros de fluxo do QLDB no Kinesis.

Casos de uso comuns

O streaming permite que você use o 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 pelos fluxos de diários do QLDB:

  • 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 ledger do QLDB 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 diários do Amazon QLDB reproduzindo dados históricos de eventos. Você pode optar por iniciar um fluxo do QLDB a partir de qualquer momento no passado, no qual todas as revisões 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 com propósito específico — Conecte os ledgers do QLDB a outros armazenamentos de dados específicos usando fluxos de diário do QLDB. Por exemplo, use a plataforma de dados de streaming Kinesis para se integrar ao Amazon OpenSearch Service, que pode fornecer recursos de pesquisa de texto completo para documentos QLDB. 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 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 fluxo para processar registros de dados de forma personalizada. 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.

Garantia de entrega

Os streams do QLDB fornecem uma garantia de entrega. at-least-once Cada registro de dados produzido por um fluxo do QLDB é 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, blocos e revisões do QLDB podem ser produzidos em um fluxo 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

Os fluxos do QLDB geralmente 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 os dados QLDB recém-confirmados sejam emitidos para um fluxo de dados do Kinesis:

  • O Kinesis pode controlar os dados que são transmitidos do QLDB, dependendo do provisionamento do Kinesis Data Streams. Por exemplo, isso pode ocorrer se você tiver vários fluxos do QLDB gravando em um único fluxo de dados do Kinesis e a taxa de solicitação do QLDB exceder a capacidade do recurso de fluxo do Kinesis. O controle 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 os fluxos do QLDB, você pode criar um fluxo indefinido com data e hora de início no passado e sem data e hora de término. Por design, o 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 um perfil do IAM que permita ao QLDB assumir permissões de gravação para o fluxo de dados do Kinesis. Para obter instruções, consulte Permissões de fluxo no QLDB.

  3. Crie um fluxo de diário do QLDB. Para obter instruções, consulte Criar e gerenciar fluxos no 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 no QLDB