Principais conceitos e terminologia no 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á.

Principais conceitos e terminologia no Amazon QLDB

Esta seção fornece uma visão geral dos principais conceitos e terminologia do Amazon QLDB, incluindo a estrutura do livro contábil e como um ledger gerencia os dados. Como banco de dados ledger, o QLDB difere de outros bancos de dados orientados a documentos quando se trata dos seguintes conceitos-chave.

Modelo de objeto de dados QLDB

O modelo de objeto de dados fundamental no Amazon QLDB é descrito a seguir:

  1. ledger

    Sua primeira etapa é criar um ledger, que é o principal tipo de recurso AWS no QLDB. Para saber como criar um ledger, consulte Etapa 1: criar um novo ledger em Conceitos básicos do console, ou Operações básicas para ledgers do Amazon QLDB.

    Para os modos de permissões ALLOW_ALL e STANDARD de um ledger, você cria políticas do IAM AWS Identity and Access Management que concedem permissões para executar operações de API nesse recurso de ledger.

    Formato do ARN do ledger:

    arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}
  2. Diário e tabelas

    Para começar a gravar dados em um ledger do QLDB, primeiro você cria uma tabela com uma instrução CREATE TABLE básica. Os dados do ledger consistem em revisões de documentos que estão comprometidos com o diário do ledger. Você confirma as revisões do documento no ledger no contexto de tabelas definidas pelo usuário. No QLDB, uma tabela representa uma visão materializada de uma coleção de revisões de documentos do diário.

    No modo de permissões STANDARD de um ledger, você deve criar políticas do IAM que concedam permissões para executar instruções partiQL nesse recurso de tabela. Com permissões em um recurso de tabela, você pode executar instruções que acessam o estado atual da tabela. Você também pode consultar o histórico de revisões da tabela usando a função history() incorporada.

    Formato do ARN de tabela:

    arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/table/${table-id}

    Para obter mais informações sobre como conceder permissões em um ledger e seus recursos associados, consulte Como o Amazon QLDB funciona com o IAM.

  3. Documentos

    As tabelas consistem em Documentos do QLDB, que são conjuntos de dados no formato Amazon Ion struct. Uma revisão de documento representa uma única versão de uma sequência de documentos identificados por um ID de documento exclusivo.

    O QLDB armazena o histórico completo de alterações de seus documentos confirmados. Uma tabela permite consultar o estado atual de seus documentos, enquanto a função history() permite consultar todo o histórico de revisão dos documentos de uma tabela. Para obter detalhes sobre como consultar e escrever revisões, consulte Trabalhar com dados e histórico.

  4. Catálogo do sistema

    Cada ledger também fornece um recurso de catálogo definido pelo sistema que você pode consultar para listar todas as tabelas e índices em um ledger. No modo de permissões STANDARD de um ledger, você precisa da permissão qldb:PartiQLSelect desse recurso de catálogo para fazer o seguinte:

    • Executar instruções SELECT na tabela do catálogo do sistema information_schema.user_tables.

    • Visualizar as informações da tabela e do índice na página de detalhes do ledger no console do QLDB.

    • Visualizar a lista de tabelas e índices no editor partiQL no console do QLDB.

    Formato do ARN de catálogo:

    arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/information_schema/user_tables

Transações que priorizam o diário

Quando um aplicativo lê ou grava dados em um ledger do QLDB, ele o faz em uma transação de banco de dados. Todas as transações estão sujeitas aos limites definidos em Cotas e limites no Amazon QLDB. Em uma transação, o QLDB executa as seguintes etapas:

  1. Lê o estado atual dos dados do ledger.

  2. Executa as instruções fornecidas na transação e, em seguida, verifica se há conflitos usando o controle otimista de simultaneidade (OCC) para garantir um isolamento totalmente serializável.

  3. Se nenhum conflito de OCC for encontrado, retorne os resultados da transação da seguinte forma:

    • Para leituras, retorne o conjunto de resultados e confirme as instruções SELECT no diário apenas como anexo.

    • Para gravações, confirme quaisquer atualizações, exclusões ou dados recém-inseridos no diário de forma somente para anexar.

O diário representa um histórico completo e imutável de todas as alterações aos seus dados. O QLDB grava um bloco encadeado no diário em uma transação. Cada bloco contém objetos de entrada que representam as revisões do documento que você insere, atualiza e exclui, junto com as instruções partiQL que as confirmaram.

O diagrama a seguir ilustra essa estrutura do diário.

Diagrama da estrutura do diário do Amazon QLDB mostrando um conjunto de blocos encadeados que formam uma cadeia e o número de sequência e o hash de cada bloco.

O diagrama mostra que as transações são confirmadas no diário como blocos que contêm entradas de revisão do documento. Cada bloco é criptografado e encadeado aos blocos subsequentes para verificação. Cada bloco tem um número de sequência para especificar seu endereço dentro da cadeia.

nota

No Amazon QLDB, uma cadeia é uma partição do diário do seu ledger. Atualmente, o QLDB suporta diários com apenas uma única vertente.

Para obter mais informações sobre o conteúdo de dados em um bloco, consulte Conteúdo do periódico no Amazon QLDB.

Consultar seus dados

O QLDB é destinado a atender às necessidades de workloads de processamento de transações online (OLTP). Um ledger fornece visualizações de tabela consultáveis de seus dados com base nas informações da transação que estão confirmadas no diário. Uma visualização de tabela no QLDB é um subconjunto dos dados em uma tabela. As visualizações são mantidas em tempo real, para que estejam sempre disponíveis para consulta dos aplicativos.

Você pode consultar as seguintes visualizações definidas pelo sistema usando instruções SELECT PartiQL:

  • Usuário — A revisão ativa mais recente somente dos dados que você gravou na tabela (ou seja, o estado atual dos dados do usuário). Esta é a visualização padrão no QLDB.

  • Confirmada — A revisão ativa mais recente dos dados do usuário e dos metadados gerados pelo sistema. Essa é a tabela completa definida pelo sistema que corresponde diretamente à sua tabela de usuário.

Além dessas visualizações que podem ser consultadas, você pode consultar o histórico de revisões de seus dados usando o Função de histórico integrado. A função de histórico retorna os dados do usuário e os metadados associados no mesmo esquema da visualização confirmada.

Armazenamento de dados

Há dois tipos de armazenamento de dados no QLDB:

  • Armazenamento de diário — O espaço em disco usado pelo diário de um ledger. O diário é somente para anexar e representa um histórico completo, imutável e verificável de todas as alterações aos seus dados.

  • Armazenamento indexado — O espaço em disco usado pelas tabelas, índices e histórico indexado de um ledger. O armazenamento indexado consiste em dados do ledger otimizados para consultas de alta performance.

Depois que seus dados são confirmados no diário, eles são materializados nas tabelas que você definiu. Essas tabelas são otimizadas para consultas mais rápidas e eficientes. Quando um aplicativo usa a API de dados transacionais para ler dados, ele acessa as tabelas e índices armazenados em seu armazenamento indexado.

Modelo de API do QLDB

O QLDB fornece dois tipos de APIs com as quais o código do seu aplicativo pode interagir:

  • Amazon QLDB — A API de gerenciamento de recursos do QLDB (também conhecida como ambiente de gerenciamento). Essa API é usada somente para gerenciar recursos de ledger e para operações de dados não transacionais. Você pode usar essas operações para criar, excluir, descrever, listar e atualizar ledgers. Você também pode verificar dados do diário criptograficamente e exportar ou transmitir blocos de diário.

  • Sessão do Amazon QLDB — A API de dados transacionais do QLDB. Você pode usar essa API para executar transações de dados em um ledger com instruções partiQL.

    Importante

    Em vez de interagir diretamente com a API da sessão do QLDB, recomendamos usar o driver QLDB ou o shell QLDB para executar transações de dados em um ledger.

    • Se você estiver trabalhando com um SDK AWS, use o driver QLDB. O driver fornece uma camada de abstração de alto nível acima dessa API de dados do sessão do QLDB e gerencia a operação SendCommand para você. Para obter informações e uma lista das linguagens de programação suportadas, consulte Conceitos básicos do driver.

    • Se você estiver trabalhando com AWS CLI, use o shell QLDB. O shell é uma interface de linha de comando que usa o driver QLDB para interagir com um ledger. Para obter mais informações, consulte Usando o shell do Amazon QLDB (somente API de dados).

Para obter mais informações sobre essas operações de API, consulte a Referência da API do Amazon QLDB.

Próximas etapas

Para aprender a usar um ledger com seus dados, veja Trabalhando com dados e histórico no Amazon QLDB e siga os exemplos que descrevem o processo de criar tabelas, inserir dados e executar consultas básicas. Este guia explica detalhadamente como esses conceitos funcionam, usando dados de exemplo e exemplos de consulta para contexto.

Para começar rapidamente com um exemplo de tutorial de aplicativo usando o console QLDB, consulte Conceitos básicos do console do Amazon QLDB.

Para obter uma lista dos principais termos e definições descritos nesta seção, consulte o Glossário do Amazon QLDB.