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á.
Consultar seus dados
Importante
Aviso de fim do suporte: os clientes existentes poderão usar a 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 Postgre
A visualização do usuário retorna somente a última revisão não excluída dos seus dados do usuário. Essa é a visualização padrão na AmazonQLDB. Isso significa que nenhum qualificador especial é necessário quando você deseja consultar somente seus dados.
Para obter detalhes sobre a sintaxe e os parâmetros dos exemplos de consulta a seguir, consulte a SELECT referência do Amazon QLDB PartiQL.
Consultas básicas
Consultas SELECT
básicas retornam os documentos que você inseriu na tabela.
Atenção
Quando você executa uma consulta QLDB sem uma pesquisa indexada, ela invoca uma verificação completa da tabela. O partiQL suporta essas consultas porque é compatível. SQL No entanto, não execute varreduras de tabela para casos de uso de produção emQLDB. Verificações de tabela podem causar problemas de performance 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 em um campo indexado ou em um ID de documento, por exemplo, WHERE indexedField = 123
ou WHERE indexedField IN (456, 789)
. Para ter mais informações, consulte Otimizar a performance da consulta.
As consultas a seguir mostram os resultados dos documentos de registro do veículo que você inseriu anteriormente em Criação de tabelas com índices e inserção de documentos. A ordem dos resultados não é específica e pode variar para cada consulta SELECT
. Você não deve confiar na ordem dos resultados para qualquer consulta emQLDB.
SELECT * FROM VehicleRegistration WHERE LicensePlateNumber IN ('LEWISR261LL', 'CA762X')
{
VIN: "1N4AL11D75C109151",
LicensePlateNumber: "LEWISR261LL",
State: "WA",
City: "Seattle",
PendingPenaltyTicketAmount: 90.25,
ValidFromDate: 2017-08-21T,
ValidToDate: 2020-05-11T,
Owners: {
PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" },
SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
}
},
{
VIN: "KM8SRDHF6EU074761",
LicensePlateNumber: "CA762X",
State: "WA",
City: "Kent",
PendingPenaltyTicketAmount: 130.75,
ValidFromDate: 2017-09-14T,
ValidToDate: 2020-06-25T,
Owners: {
PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" },
SecondaryOwners: []
}
}
SELECT * FROM Vehicle WHERE VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{
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"
}
Importante
No PartiQL, você usa aspas simples para denotar cadeias de caracteres na linguagem de manipulação de dados () ou em instruções de consulta. DML Mas o QLDB console e o QLDB shell retornam os resultados da consulta no formato de texto Amazon Ion, então você vê cadeias de caracteres entre aspas duplas.
Essa sintaxe permite que a linguagem de consulta PartiQL SQL mantenha a compatibilidade e o formato de texto Amazon Ion mantenha a JSON compatibilidade.
Projeções e filtros
Você pode fazer projeções (SELECT
direcionadas) e outros filtros padrão (cláusulas WHERE
). A consulta a seguir retorna um subconjunto dos campos do documento da tabela VehicleRegistration
. Ela filtra veículos com os seguintes critérios
-
Filtro de string: está registrado em Seattle.
-
Filtro decimal - Tem um valor de multa pendente menor que
100.0
. -
Filtro de data: tem uma data de registro válida em ou após 4 de setembro de 2019.
SELECT r.VIN, r.PendingPenaltyTicketAmount, r.Owners FROM VehicleRegistration AS r WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761') AND r.City = 'Seattle' --string AND r.PendingPenaltyTicketAmount < 100.0 --decimal AND r.ValidToDate >= `2019-09-04T` --timestamp with day precision
{
VIN: "1N4AL11D75C109151",
PendingPenaltyTicketAmount: 90.25,
Owners: {
PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" },
SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
}
}
Junções
Você também pode escrever consultas de junção internas. O exemplo a seguir mostra uma consulta de junção interna implícita que retorna todos os documentos de registro junto com os atributos dos veículos registrados.
SELECT * FROM VehicleRegistration AS r, Vehicle AS v WHERE r.VIN = v.VIN AND r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{
VIN: "1N4AL11D75C109151",
LicensePlateNumber: "LEWISR261LL",
State: "WA",
City: "Seattle",
PendingPenaltyTicketAmount: 90.25,
ValidFromDate: 2017-08-21T,
ValidToDate: 2020-05-11T,
Owners: {
PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" },
SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
},
Type: "Sedan",
Year: 2011,
Make: "Audi",
Model: "A5",
Color: "Silver"
},
{
VIN: "KM8SRDHF6EU074761",
LicensePlateNumber: "CA762X",
State: "WA",
City: "Kent",
PendingPenaltyTicketAmount: 130.75,
ValidFromDate: 2017-09-14T,
ValidToDate: 2020-06-25T,
Owners: {
PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" },
SecondaryOwners: []
},
Type: "Sedan",
Year: 2015,
Make: "Tesla",
Model: "Model S",
Color: "Blue"
}
Ou você pode escrever a mesma consulta de junção interna na sintaxe explícita da seguinte forma.
SELECT * FROM VehicleRegistration AS r INNER JOIN Vehicle AS v ON r.VIN = v.VIN WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
Dados aninhados
Você pode usar o PartiQL in QLDB para consultar dados aninhados em documentos. O exemplo a seguir mostra uma subconsulta correlacionada que nivela os dados aninhados. O caractere @
é tecnicamente opcional aqui. Mas isso indica explicitamente que você deseja a estrutura Owners
em VehicleRegistration
, não uma coleção com um nome Owners
diferente (se houver).
SELECT r.VIN, o.SecondaryOwners FROM VehicleRegistration AS r, @r.Owners AS o WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{
VIN: "1N4AL11D75C109151",
SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
},
{
VIN: "KM8SRDHF6EU074761",
SecondaryOwners: []
}
Veja a seguir uma subconsulta na lista SELECT
que projeta dados aninhados, além de uma junção interna.
SELECT v.Make, v.Model, (SELECT VALUE o.PrimaryOwner.PersonId FROM @r.Owners AS o) AS PrimaryOwner FROM VehicleRegistration AS r, Vehicle AS v WHERE r.VIN = v.VIN AND r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{
Make: "Audi",
Model: "A5",
PrimaryOwner: ["294jJ3YUoH1IEEm8GSabOs"]
},
{
Make: "Tesla",
Model: "Model S",
PrimaryOwner: ["IN7MvYtUjkp1GMZu0F6CG9"]
}
A consulta a seguir retorna o número de índice PersonId
e (ordinal) de cada pessoa na lista Owners.SecondaryOwners
de um documento VehicleRegistration
.
SELECT s.PersonId, owner_idx FROM VehicleRegistration AS r, @r.Owners.SecondaryOwners AS s AT owner_idx WHERE r.VIN = '1N4AL11D75C109151'
{
PersonId: "5Ufgdlnj06gF5CWcOIu64s",
owner_idx: 0
}
Para saber como consultar os metadados do seu documento, vá para Consultar metadados do documento.