

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
<a name="getting-started-step-2"></a>

**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](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) 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.](ql-reference.md) step-by-step

## Opção automática
<a name="getting-started-step-2.con-auto"></a>

**Para criar tabelas, índices e dados de amostra**

1. [Abra o console do Amazon QLDB em /qldb. https://console.aws.amazon.com](https://console.aws.amazon.com/qldb)

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

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

1. 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 ?
     ```

## Opção manual
<a name="getting-started-step-2.con"></a>

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 `id`atribuí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](working.metadata.md).

**Para criar tabelas, índices e dados de amostra**

1. [Abra o console do Amazon QLDB em /qldb. https://console.aws.amazon.com](https://console.aws.amazon.com/qldb)

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

1. Escolha o ledger `vehicle-registration`.

1. 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\$1Enter para Windows ou Cmd\$1Return para macOS. Para obter mais atalhos de teclado, consulte [Atalhos de teclado do editor PartiQL](console_QLDB.md#console_QLDB.partiql-editor-shortcuts).

   ```
   CREATE TABLE VehicleRegistration
   ```

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

   ```
   CREATE TABLE Vehicle
   ```

   ```
   CREATE TABLE Person
   ```

   ```
   CREATE TABLE DriversLicense
   ```

1. 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](working.optimize.md).

   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)
   ```

1. 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'
   } >>
   ```

1. 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' : ''
   } >>
   ```

1. 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' : []
       }
   } >>
   ```

1. 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](getting-started-step-3.md).