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
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
-
Abra o console do Amazon QLDB em /qldb. https://console.aws.amazon.com
-
No painel de navegação, escolha Conceitos básicos.
-
Na opção Automático no cartão de dados do aplicativo de amostra, escolha
vehicle-registration
na lista de ledgers. -
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
, eDriversLicense
.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 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.
Para criar tabelas, índices e dados de amostra
-
Abra o console do Amazon QLDB em /qldb. https://console.aws.amazon.com
-
No painel de navegação, selecione Editor PartiQL.
-
Escolha o ledger
vehicle-registration
. -
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
-
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 (=
ouIN
) 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)
-
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' } >>
-
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' : '' } >>
-
Agora, preencha a tabela
VehicleRegistration
com os documentos de registro do veículo. Esses documentos incluem uma estruturaOwners
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' : [] } } >>
-
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.