Etapa 2: criar tabelas, índices e dados de amostra em um ledger - 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á.

Etapa 2: criar tabelas, índices e dados de amostra em um ledger

Importante

Aviso de fim do suporte: os clientes existentes poderão usar o 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 PostgreSQL.

Quando seu ledger do Amazon QLDB está ativo, você pode começar a criar tabelas para dados sobre veículos, seus proprietários e suas informações de registro. Depois de criar as tabelas e os índices, você pode carregá-los com dados.

Nesta etapa, você cria quatro tabelas no ledger vehicle-registration:

  • VehicleRegistration

  • Vehicle

  • Person

  • DriversLicense

Você também cria os índices a seguir.

Nome da tabela Campo
VehicleRegistration VIN
VehicleRegistration LicensePlateNumber
Vehicle VIN
Person GovId
DriversLicense LicensePlateNumber
DriversLicense PersonId

Você pode usar o console do QLDB para criar automaticamente essas tabelas com índices e carregá-las com dados de amostra. Ou você pode usar o editor partiQL no console para executar manualmente cada instrução partiQL. step-by-step

Para criar tabelas, índices e dados de amostra
  1. Abra o console do Amazon QLDB em /qldb. https://console.aws.amazon.com

  2. No painel de navegação, escolha Conceitos básicos.

  3. Na opção Automático no cartão de dados do aplicativo de amostra, escolha vehicle-registration na lista de ledgers.

  4. Escolha Carregar dados de exemplo.

    Se a operação for concluída com êxito, o console exibirá a mensagem Dados de amostra carregados.

    Esse script executa todas as instruções em uma única transação. Se alguma parte da transação falhar, cada instrução será revertida e uma mensagem de erro apropriada será exibida. Você pode repetir a operação depois de resolver qualquer problema.

    nota
    • Uma possível causa para uma falha na transação é a tentativa de criar tabelas duplicadas. Sua solicitação para carregar dados de exemplo falhará se algum dos seguintes nomes de tabela já existir em seu ledger: VehicleRegistration, Vehicle,Person, e DriversLicense.

      Em vez disso, tente carregar esses dados de amostra em um ledger vazio.

    • Esse script executa instruções INSERT parametrizadas. Portanto, essas instruções partiQL são registradas em seus blocos de diário com parâmetros de associação em vez de dados literais. Por exemplo, você pode ver a seguinte instrução em um bloco de diário, em que o ponto de interrogação (?) é um marcador variável para o conteúdo do documento.

      INSERT INTO Vehicle ?

Você insere documentos em VehicleRegistration com um campo PrimaryOwner vazio e em DriversLicense com um campo PersonId vazio. Posteriormente, você preenche esses campos com o documento idatribuído pelo sistema da tabela Person.

dica

Como prática recomendada, use esse campo de metadados id do documento como uma chave estrangeira. Para obter mais informações, consulte Consultar metadados do documento.

Para criar tabelas, índices e dados de amostra
  1. Abra o console do Amazon QLDB em /qldb. https://console.aws.amazon.com

  2. No painel de navegação, selecione Editor PartiQL.

  3. Escolha o ledger vehicle-registration.

  4. Comece criando quatro tabelas. O QLDB oferece suporte a conteúdo aberto e não impõe esquema, portanto, você não especifica atributos ou tipos de dados.

    Na janela do editor de consulta, insira a instrução a seguir e, em seguida, escolha Executar. Para executar a instrução, você também pode usar o atalho de teclado Ctrl+Enter para Windows ou Cmd+Return para macOS. Para obter mais atalhos de teclado, consulte Atalhos de teclado do editor PartiQL.

    CREATE TABLE VehicleRegistration

    Repita esta etapa para cada uma das opções a seguir.

    CREATE TABLE Vehicle
    CREATE TABLE Person
    CREATE TABLE DriversLicense
  5. Em seguida, crie índices que otimizem o desempenho da consulta para cada tabela.

    Importante

    O QLDB requer um índice para pesquisar um documento com eficiência. Sem um índice, o QLDB precisa fazer uma verificação da tabela completa ao ler documentos. Isso pode causar problemas de desempenho em tabelas grandes, incluindo conflitos de simultaneidade e tempos limite de transação.

    Para evitar verificações de tabelas, você deve executar instruções com uma cláusula de predicado WHERE usando um operador de igualdade (= ou IN) em um campo indexado ou em um ID de documento. Para obter mais informações, consulte Otimizar a performance da consulta.

    Na janela do editor de consulta, insira a instrução a seguir e, em seguida, escolha Executar.

    CREATE INDEX ON VehicleRegistration (VIN)

    Repita esta etapa para o seguinte.

    CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
    CREATE INDEX ON Vehicle (VIN)
    CREATE INDEX ON Person (GovId)
    CREATE INDEX ON DriversLicense (LicensePlateNumber)
    CREATE INDEX ON DriversLicense (PersonId)
  6. Depois de criar seus índices, você pode começar a carregar dados em suas tabelas. Nesta etapa, insira documentos na tabela Person com informações pessoais sobre os proprietários dos veículos que o livro está rastreando.

    Na janela do editor de consulta, insira a instrução a seguir e, em seguida, escolha Executar.

    INSERT INTO Person << { 'FirstName' : 'Raul', 'LastName' : 'Lewis', 'DOB' : `1963-08-19T`, 'GovId' : 'LEWISR261LL', 'GovIdType' : 'Driver License', 'Address' : '1719 University Street, Seattle, WA, 98109' }, { 'FirstName' : 'Brent', 'LastName' : 'Logan', 'DOB' : `1967-07-03T`, 'GovId' : 'LOGANB486CG', 'GovIdType' : 'Driver License', 'Address' : '43 Stockert Hollow Road, Everett, WA, 98203' }, { 'FirstName' : 'Alexis', 'LastName' : 'Pena', 'DOB' : `1974-02-10T`, 'GovId' : '744 849 301', 'GovIdType' : 'SSN', 'Address' : '4058 Melrose Street, Spokane Valley, WA, 99206' }, { 'FirstName' : 'Melvin', 'LastName' : 'Parker', 'DOB' : `1976-05-22T`, 'GovId' : 'P626-168-229-765', 'GovIdType' : 'Passport', 'Address' : '4362 Ryder Avenue, Seattle, WA, 98101' }, { 'FirstName' : 'Salvatore', 'LastName' : 'Spencer', 'DOB' : `1997-11-15T`, 'GovId' : 'S152-780-97-415-0', 'GovIdType' : 'Passport', 'Address' : '4450 Honeysuckle Lane, Seattle, WA, 98101' } >>
  7. Em seguida, preencha a tabela DriversLicense com documentos que incluam informações da carteira de motorista de cada proprietário do veículo.

    Na janela do editor de consulta, insira a instrução a seguir e, em seguida, escolha Executar.

    INSERT INTO DriversLicense << { 'LicensePlateNumber' : 'LEWISR261LL', 'LicenseType' : 'Learner', 'ValidFromDate' : `2016-12-20T`, 'ValidToDate' : `2020-11-15T`, 'PersonId' : '' }, { 'LicensePlateNumber' : 'LOGANB486CG', 'LicenseType' : 'Probationary', 'ValidFromDate' : `2016-04-06T`, 'ValidToDate' : `2020-11-15T`, 'PersonId' : '' }, { 'LicensePlateNumber' : '744 849 301', 'LicenseType' : 'Full', 'ValidFromDate' : `2017-12-06T`, 'ValidToDate' : `2022-10-15T`, 'PersonId' : '' }, { 'LicensePlateNumber' : 'P626-168-229-765', 'LicenseType' : 'Learner', 'ValidFromDate' : `2017-08-16T`, 'ValidToDate' : `2021-11-15T`, 'PersonId' : '' }, { 'LicensePlateNumber' : 'S152-780-97-415-0', 'LicenseType' : 'Probationary', 'ValidFromDate' : `2015-08-15T`, 'ValidToDate' : `2021-08-21T`, 'PersonId' : '' } >>
  8. Agora, preencha a tabela VehicleRegistration com os documentos de registro do veículo. Esses documentos incluem uma estrutura Owners aninhada que armazena os proprietários primários e secundários.

    Na janela do editor de consulta, insira a instrução a seguir e, em seguida, escolha Executar.

    INSERT INTO VehicleRegistration << { 'VIN' : '1N4AL11D75C109151', 'LicensePlateNumber' : 'LEWISR261LL', 'State' : 'WA', 'City' : 'Seattle', 'PendingPenaltyTicketAmount' : 90.25, 'ValidFromDate' : `2017-08-21T`, 'ValidToDate' : `2020-05-11T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': '' }, 'SecondaryOwners' : [] } }, { 'VIN' : 'KM8SRDHF6EU074761', 'LicensePlateNumber' : 'CA762X', 'State' : 'WA', 'City' : 'Kent', 'PendingPenaltyTicketAmount' : 130.75, 'ValidFromDate' : `2017-09-14T`, 'ValidToDate' : `2020-06-25T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': '' }, 'SecondaryOwners' : [] } }, { 'VIN' : '3HGGK5G53FM761765', 'LicensePlateNumber' : 'CD820Z', 'State' : 'WA', 'City' : 'Everett', 'PendingPenaltyTicketAmount' : 442.30, 'ValidFromDate' : `2011-03-17T`, 'ValidToDate' : `2021-03-24T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': '' }, 'SecondaryOwners' : [] } }, { 'VIN' : '1HVBBAANXWH544237', 'LicensePlateNumber' : 'LS477D', 'State' : 'WA', 'City' : 'Tacoma', 'PendingPenaltyTicketAmount' : 42.20, 'ValidFromDate' : `2011-10-26T`, 'ValidToDate' : `2023-09-25T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': '' }, 'SecondaryOwners' : [] } }, { 'VIN' : '1C4RJFAG0FC625797', 'LicensePlateNumber' : 'TH393F', 'State' : 'WA', 'City' : 'Olympia', 'PendingPenaltyTicketAmount' : 30.45, 'ValidFromDate' : `2013-09-02T`, 'ValidToDate' : `2024-03-19T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': '' }, 'SecondaryOwners' : [] } } >>
  9. Por fim, preencha a tabela Vehicle com documentos que descrevem os veículos que estão registrados em seu ledger.

    Na janela do editor de consulta, insira a instrução a seguir e, em seguida, escolha Executar.

    INSERT INTO Vehicle << { 'VIN' : '1N4AL11D75C109151', 'Type' : 'Sedan', 'Year' : 2011, 'Make' : 'Audi', 'Model' : 'A5', 'Color' : 'Silver' }, { 'VIN' : 'KM8SRDHF6EU074761', 'Type' : 'Sedan', 'Year' : 2015, 'Make' : 'Tesla', 'Model' : 'Model S', 'Color' : 'Blue' }, { 'VIN' : '3HGGK5G53FM761765', 'Type' : 'Motorcycle', 'Year' : 2011, 'Make' : 'Ducati', 'Model' : 'Monster 1200', 'Color' : 'Yellow' }, { 'VIN' : '1HVBBAANXWH544237', 'Type' : 'Semi', 'Year' : 2009, 'Make' : 'Ford', 'Model' : 'F 150', 'Color' : 'Black' }, { 'VIN' : '1C4RJFAG0FC625797', 'Type' : 'Sedan', 'Year' : 2019, 'Make' : 'Mercedes', 'Model' : 'CLK 350', 'Color' : 'White' } >>

Em seguida, você pode usar instruções SELECT para ler os dados das tabelas no ledger vehicle-registration. Vá para Etapa 3: consultar as tabelas em um ledger.