·

Ciência da Computação ·

Banco de Dados

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

BD NoSQL DynamoDB Banco ChaveValor e Documentos Prof Me Marco Aurélio Mazzei Prof Me Antonio Guardado Bancos NoSQL ChaveValor Os bancos NoSQL do tipo chavevalor foram os primeiros a serem ofertados como serviços disponíveis para uso pelos usuários mediante contratação o Amazon S3 e o Dynamo são serviços desse tipo Ao lado uma imagem do paper de 2007 em que eles são apresentados para uso O Amazon DynamoDB é compatível com modelos de dados de documentos e chavevalor Como um banco de dados NoSQL o serviço tem um esquema flexível para que cada item possa ter muitos atributos diferentes Esse esquema permite se adaptar facilmente às mudanças nos requisitos comerciais sem o problema de ter que redefinir o esquema de tabelas como acontece em bancos de dados relacionais 2 Casos de uso do modelo ChaveValor Pela sua construção os modelos chavevalor são os bancos de dados menos estruturados entre todos os tipos NoSQL Dependendo da tecnologia de construção as chaves podem ser arbitrariamente criadas e por esse motivo suas estruturas são utilizadas para construir caches e CDNs rede de entrega de conteúdo Para isso são utilizados diversos softwares e plataformas 4 As chaves dão acesso aos conteúdos que podem ser de qualquer tipo conteúdos de bits a terabytes Os diversos tipos de serviços são otimizados para os diversos tipos de uso a que se destinam Casos de uso DynamoDB Aplicações de Jogos o DynamoDB é um banco de dados ideal para aplicações de jogos pois pode lidar com altas taxas de requisição e fornece alta disponibilidade e desempenho consistente Aplicações de mídia social o DynamoDB pode ser usado para armazenar e recuperar dados de usuários postagens e comentários em aplicações de mídia social em escala Aplicações de ecommerce o DynamoDB pode ser usado para armazenar e recuperar dados de produtos pedidos e clientes em aplicações de ecommerce em escala Aplicações de gerenciamento de logs o DynamoDB pode ser usado para armazenar e recuperar dados de logs em tempo real permitindo a visualização e análise de dados em tempo real 5 Casos de uso DynamoDB Aplicações de IoT o DynamoDB pode ser usado para armazenar e recuperar dados de dispositivos IoT em tempo real permitindo a col12epx e análise de dados em tempo real Aplicações de gerenciamento de inventário o DynamoDB pode ser usado para armazenar e recuperar dados de estoque e inventário em tempo real permitindo a atualização e gerenciamento precisos do inventário Aplicações de gerenciamento de tempo real o DynamoDB pode ser usado para armazenar e recuperar dados em tempo real permitindo a visualização e análise de dados em tempo real em aplicações como sistemas de gerenciamento de tráfego aéreo ou de gerenciamento de rede 6 As vantagens do S3 A Amazon oferece classes de armazenamento diferentes com custos diferentes Da mesma forma o DynamoDB possui uma calculadora de custos e um nível gratuíto Clientes importantes que utilizam os serviços do Amazon S3 GE HealthCare Bristol Myers Squibb Siemens Celgene Ryanair Autodesk Nielsen 3M Nasdaq Netflix Em particular esse documento da Netflix documenta a estrutura de uso do AWS e como a automação das métricas de uso dos recursos permite menores custos 7 Escalabilidade e bancos chavevalor A infraestrutura da Netflix está hospedada na Amazon com as cópias dos filmes digitais dos estúdios armazenadas no S3 Cada filme é codificado em cerca de 50 versões diferentes para diferentes resoluções de vídeos e codecs de áudio Em 2015 isso representava cerca de 1 petabyte de dados Esse material alimenta os CDNs que são utilizados pelos provedores como Tim VIVO Claro e os demais provedores ao redor do mundo 9 Componentes do DynamoDB Em termos de estrutura o Dynamo tem semelhanças com bancos relacionais contendo Tabelas Itens semelhante a registros Atributos semelhante a colunas Chaves Primárias Tabelas como em outros sistemas de banco de dados o DynamoDB armazena dados em tabelas Itens cada tabela contém zero ou mais itens Um item é um grupo de atributos identificável exclusivamente entre todos os outros itens Em uma tabela PESSOAS por exemplo cada item representa uma pessoa Os itens no DynamoDB são semelhantes de muitas formas a linhas ou registros em outros bancos de dados ou planilhas Não há limite para o número de itens que você pode armazenar em uma tabela 11 Componentes do DynamoDB Atributos cada item é composto de um ou mais atributos Um atributo é um elemento de dados fundamental algo que não precisa ser dividido Por exemplo um item na tabela PESSOAS contém os atributos como CPF Nome Sobrenome etc Atributos no DynamoDB são similares a colunas em banco de dados relacionais Atributos Aninhados O DynamoDB oferece suporte a atributos aninhados até 32 níveis de profundidade Schema as tabelas podem ou não ter schemas o que significa que nem os atributos nem seus tipos de dados precisam ser necessariamente definidos previamente Cada item pode ter seus próprios atributos distintos 14 Componentes do DynamoDB Chave primária pode ser chave primária simples composta por um atributo conhecido como chave de partição ou uma chave composta por dois atributos sendo o primeiro atributo a chave de partição e o segundo a chave de classificação Índices secundários permite consultar os dados na tabela usando uma chave alternativa além de consultas com base na chave primária O DynamoDB não exige que você use índices mas eles conferem aos aplicativos mais flexibilidade durante a consulta de dados Global secondary index índice com uma chave de partição e uma chave de classificação que podem ser diferentes das contidas na tabela chave primária Índice secundário local índice que possui a mesma chave de partição da tabela mas uma chave de classificação diferente 15 16 Componentes do DynamoDB LSI permite consultar dados na tabela usando uma chave alternativa sem perda das consultas possíveis na tabela São particionadas pela mesma Primary Key mas têm uma chave de classificação diferente Esse tipo de índice leva a palavra Local em seu nome porque fica na tabela base do DynamoDB Não são separados compartilham a mesma partição 17 Componentes do DynamoDB Este é um índice com uma chave de partição PKe uma chave de classificação SK que podem ser diferente das contidas na tabela O GSI permite que seja acessado os dados a partir de um esquema alternativo Características da tabela no DynamoDB Tabela única por região ou global Nome é formado por uma string literal Garante ACID Suporta criptografia em repouso Backup e restauração sob demanda LSI Índice Secundário Local GSI Índice secundário global Partition Key é por ele que feito balanceamento espalhamento de dados ou também conhecido como Sharding Sorted Key é uma chave de agrupamento ordenação e que permite alguns filtros Primary Key é a junção de Partition Key Sorted Key 20 Modelagem de dados para BDs chavevalor 21 Modelagem de dados Filtragem e ordenação 22 Usando a AWS DynamoDB Para usar o AWS DynamoDB é necessário instalar o cliente aqui e o aplicativo local aqui e em seguida realizar a instalação 23 Executando o servidor local Para executar o servidor local extraia o arquivo em uma pasta e o execute com o seguinte comando Eu criei um diretório no raiz com o nome dynamoDB e copiei o aplicativo para este local cd dynamoDBdynamodblocallatest Se estiver usando o cmd ou console cdynamoDBdynamodblocallatest java DjavalibrarypathDynamoDBLocallib jar DynamoDBLocaljar ou se estiver utilizando o powershell cdynamoDBdynamodblocallatest java DjavalibrarypathDynamoDBLocallib jar DynamoDBLocaljar 24 Utilizando o dynamoDB local Após a instalação é necessário efetuar a configuração do serviço e conta AWS para usar o servidor local Os dados de acesso são os seguintes AWS Access Key ID fakeMyKeyId AWS Secret Access Key fakeSecretAccessKey A chave será configurado com o comando caws configure E para utilizar o aws local passe o parâmetro endpointurl httplocalhost8000 PS C aws dynamodb listtables endpointurl httplocalhost8000 25 Configurando uma conta AWS para uso da Amazon Se quiser utilizar o servidor AWS após a instalação é necessário efetuar a configuração do serviço e conta AWS Após a instalação o comando caws version Deverá retornar uma versão do software Será necessário criar uma conta de acesso Nesse processo será gerado um id de acesso e uma senha para uso dos serviços A chave será utilizada com o comando caws configure 26 Uso do DynamoDB Após a criação é possível utilizar o DynamoDB com comandos como aws dynamodb createtable tablename Music attributedefinitions AttributeNameArtistAttributeTypeS AttributeNameSongTitleAttributeTypeS keyschema AttributeNameArtistKeyTypeHASH AttributeNameSongTitleKeyTypeRANGE provisionedthroughput ReadCapacityUnits1WriteCapacityUnits1 endpointurl httplocalhost8000 Você pode consultar todos os comandos no seguinte guia do DynamoDB 27 Resultado arquivo json com a resposta TableDescription AttributeDefinitions AttributeName Artist AttributeType S AttributeName SongTitle AttributeType S TableName Music KeySchema AttributeName Artist KeyType HASH AttributeName SongTitle KeyType RANGE TableStatus CREATING CreationDateTime 20211104T1149270210000300 ProvisionedThroughput NumberOfDecreasesToday 0 ReadCapacityUnits 1 WriteCapacityUnits 1 TableSizeBytes 0 ItemCount 0 TableArn arnawsdynamodbsaeast1455537594584tableMusic TableId 5bb40d6a0c5d4f0eb977ccc6530942ea 28 Resultado ativação do serviço O serviço está ativado e podemos começar a enviar conteúdo para armazenamento 29