DynamoDB Filter Expressions tudo o que você precisa saber

DynamoDB Filter Expressions tudo o que você precisa saber
Expressões de filtro são usadas na função NO-SQL DynamoDB, como onde as cláusulas que são comuns nos bancos de dados SQL. No entanto, como o DynamoDB é um banco de dados NO-SQL, as expressões de filtro se comportam de maneira bastante diferente de onde as cláusulas devido à natureza e estrutura dos bancos de dados NO-SQL.

Este artigo se concentra nas expressões de filtro. Portanto, definiremos as expressões de filtro, explicaremos o porquê e quando são aplicáveis ​​e forneceremos um guia passo a passo sobre como usá-las através de exemplos relevantes.

O que são expressões de filtro?

Expressões de filtro são uma técnica popular para filtrar os dados no DynamoDB durante as operações de consulta e varredura. No DynamoDB, a modelagem de dados e a organização adequados dependem da filtragem. Embora a maioria dos aplicativos sempre tenha toneladas de dados salvos, você pode precisar urgentemente de um item da vasta bagunça.

Sua capacidade de recuperar os dados corretos sempre que você precisar depende dos recursos de filtragem do seu banco de dados, e é aqui que as expressões de filtro ajudam. Eles especificam os resultados dentro do item de consulta que você deseja devolver a você enquanto eles descartam o restante dos itens.

Você pode aplicar as expressões de filtro nos filtros do lado do servidor nos atributos dos itens após a operação de consulta terminar, mas antes que o servidor traga os resultados da sua chamada de consulta. Isso implica que sua consulta ainda consome a mesma quantidade de capacidade de leitura, independentemente de você usar uma expressão de filtro.

Além disso, como operações de consulta ordinária, seu limite de dados de 1 MB para operações de consulta ocorre antes da avaliação da sua operação de expressão de filtro. Você pode usar esta operação para reduzir a carga útil, procurar itens específicos e melhorar a simplicidade e a legibilidade durante o desenvolvimento de aplicativos.

Filtrar sintaxe e exemplos

Notavelmente, as expressões de filtro e as principais expressões usam a mesma sintaxe. Além disso, expressões de filtro e expressões de condição também podem usar as mesmas funções, comparadores e operadores lógicos.

Os outros operadores que filtram as expressões podem usar também incluem o operador contém, o operador OR, o operador Not Equals (), o Operador, o Operador entre o operador, o operador Begins_with, o operador de tamanho e o operador existe existe.

Exemplo 1: Consulta usando as chaves primárias da AWS CLI e DynamoDB

Este exemplo consulta a tabela de música para um gênero específico (chave de partição) e um artista específico (chave de classificação). O utilitário traz apenas um resultado para os itens que correspondem à chave de partição específica e à chave de classificação para as músicas com mais visualizações.

Você pode especificar o número de visualizações (#V) no comando. Por exemplo, marcamos nosso limite mínimo para 1.000 visualizações para sugerir que apenas os resultados para as músicas com mais de 1000 visualizações voltarão.

$ AWS DynamoDB Consulta \
--Música de nome de mesa \
--Expressão da condição-chave "gênero =: fn e artista =: sub" \
--Expressão de filtro "#V> =: num (1000)" \
--Expression-attribute-names '"#V": "Views"' \
--Arquivo de Valores de Expressão-Atributo: // Valores.JSON

Exemplo 2: Usando a AWS CLI com expressão de condição

Podemos reestruturar a mesma consulta que no exemplo anterior, mas agora com chaves de condição ao lado de nossos filtros. Não inclui a chave de classificação. Em vez disso, ele recupera todos os registros do artista especificado com mais de 1.000 visualizações. Também pode ser reconstruído para fornecer pedidos acima de um determinado número para um nome de usuário específico (Customer_id).

$ AWS DynamoDB Consulta \
--Música de nome de mesa \
--Expressão da Condição-chave "Nome de usuário =: nome de usuário" \
--Expressão de filtro "quantidade>: quantidade" \
--Expressão-atributo-values ​​'
": Nome de usuário": "S": "Artist",
": quantidade": "n": "1000"
'\
$ Local

Um exemplo do resultado é assim:

A ilustração dada mostra que dos 56 títulos de músicas para o mesmo artista, apenas sete músicas têm mais de 1.000 visualizações. No entanto, truncamos o número para fins de brevidade e incluímos apenas os primeiros e os últimos resultados na lista.

Exemplo 3: Usando expressões de filtro com o operador No-Equal ()

No utilitário java a seguir, queremos consultar nossa mesa (coleção de filmes) para todos os filmes que não são iguais a "filme x". Certifique -se de usar uma expressão de filtro com um atributo (#name) ao lado de um valor de atributo de expressão (: nome), conforme ilustrado no seguinte:

const aws = requer ("aws-sdk");
AWS.Config.atualização (região: "eu-west-1");
const dynamoDB = novo AWS.DynamoDB.DocumentClient ();
var params =
TableName: 'Coleção de filmes',
KeyconditionExpression: '#pk =: pk',
Filtroxpressão: "#name: name", (expressão de filtro)
ExpressionAttributenames: "#pk": "pk", "#name": "name", (expressão de condição)
ExpressionAttributeValues:
': Pk': 'ogejhrdrs453hgd4ht44',
': nome': "filme x"

;
DynamoDB.consulta (parâmetros, função (err, dados)
se (err) console.log (err);
caso contrário, console.log (dados);
);

Exemplo 4: Usando expressões de filtro com o operador de varredura

Embora o comando anterior use para buscar apenas os itens que não são iguais ao nome do filme chamado filme x, certifique -se de usar as expressões de condição -chave aqui junto com a expressão do filtro. Isso ocorre porque é impossível filtrar os dados no operador de consulta sem usar uma expressão de condição -chave.

var params =
TableName: 'Coleção de filmes',
FilterExpression: "pk =: pk e #name: name",
ExpressionAttributenames: "#Name": "Name",
ExpressionAttributeValues:
': Pk': 'ogejhrdrs453hgd4ht44',
': nome': "filme x"

;
DynamoDB.Scan (parâmetros, função (err, dados)
se (err) console.log (err);
caso contrário, console.log (dados);
);

Conclusão

Esse é o fim do nosso tutorial de dynamoDB sobre expressões de filtro. Você pode usar as expressões de filtro para recuperar um conjunto de dados preferidos, filtrar os dados recuperados após uma varredura ou consulta ou retornar um conjunto de dados a um cliente. Embora seja aplicável com uma variedade de ferramentas, há casos ao usar as expressões de filtro não é viável. Por exemplo, você só pode usá -los se tiver um modelo de dados adequado, ao usar uma chave primária e ao extrair grandes partes dos dados.