Eu ia terminar esta série, mas lembrei de alguns serviços lindos que valem a pena conhecer, como o Cosmos DB.
Quando falamos de bancos de dados NOSQL, precisamos lembrar que não é só instalar e sair usando.
Meus amigos, a vida em ambiente de produção é outra, e envolve monitoração, segurança, otimização, configurações específicas, hardware, sistema operacional entre tantas outras variáveis que precisam ser consideradas.
Não é impossível usar vários SGBDs, mas é preciso ter consciência de que não é tão simples quando parece.
Quando optamos pelo uso de um serviço na nuvem, podemos escolher a melhor configuração de forma mais simples, não temos preocupação com hardware e SO, pagamos periodicamente de acordo com o uso… Resumidamente a produção não é tão complexa.
Antes de apresentar o Cosmos DB, vou citar um post meu, onde eu falo do Cosmos DB com mais detalhes:
“A liberdade traz a responsabilidade de analisar corretamente os requisitos e escolher uma solução que equilibre o preço, o desempenho, a curva de aprendizado, as necessidades de hardware, a monitoração, entre tantos outros requisitos importantes.”
O que é o Cosmos DB?
É um serviço de banco de dados do Azure, com muitas características interessantes:
- Desempenho incrível garantido por SLA;
- Distribuição global dos dados;
- Drivers para várias linguagens;
- Possibilidade de manipulação dos dados com Python, sem movimentar os dados;
- É um serviço e sendo assim você paga de acordo com o uso;
- Você pode aumentar o desempenho, adicionando mais recursos sem interrupções.
Mas o que faz dele muito legal (opinião da Dani) é o fato dele manipular diferentes formatos de dados, para isso ele possui 4 APIs diferentes:
- API Tabelas do Azure:
- Dados estruturados no formato chave-valor
- API Gremlim
- Dados no formato de grafos
- API MongoDB
- Dados no formato de documentos JSON
- API Núcleo
- Dado no formato JSON e que podem ser manipulados com a linguagem SQL ou Java Script
- API Cassandra
- Dados no formato colunar
Quando usar cada API do Cosmos DB?
Se você já leu os meus posts até aqui, vai conseguir entender quando usar cada API, se ainda não leu, vou deixar a dica de ouro:
Respeite o formato dos seus dados!
E se eu ainda não fui clara com você, seguem algumas dicas:
- API Tabelas do Azure:
- Use para grandes quantidades de dados estruturados e não relacionais.
- AP Gremlim
- Use se seus dados têm formato de grafos;
- Se os seus dados são provenientes do Neo4J ou de outro banco de dados orientado a grafos.
- API MongoDB
- Use somente se os seus dados são provenientes do MongoDB (versão 3.4) ou do MongoDB Atlas
- Se você já usa o MongoDB e não quer alterar a sua aplicação. Neste caso tenha atenção com a versão do MongoDB que você está usando. Isso porque o MongoDB está na versão 4.2 e a API MongoDB no Cosmos DB está na versão 3.4.
- API Núcleo
- Use se o seu projeto está começando;
- Se os seus dados estão no formato JSON;
- Se você precisar escolher entre esta API e a API do MongoDB, escolha esta.
- A exceção a esta regra é somente se você já usa o MongoDB (ou seja, o projeto já começou) e você quer somente migrar para o Cosmos DB
- API Cassandra
- Use se seus dados respondem a questões conhecidas;
- Se você já usa o Cassandra em seu projeto e agora que mudar para o Cosmos DB.
As RUs (Request Units)
Não use essa fofura que é o Cosmos DB para o que é secundário, porque se não trouxer benefícios para o seu projeto, ele não é justificável.
Ele é cobrado por RUs que é uma medida combinada de hardware (memória, IOPS e CPU). Quanto mais RUs maior o desempenho, e quase toda manipulação de dados consome RUs, sendo assim, tenha cuidado! Porque o desempenho pode ter uma enorme degradação simplesmente porque as RUs acabaram.
Um fator importante é que as RUs podem ser atribuídas ao seu banco de dados e desta forma divididas igualmente entre os containers. Ou podem ser atribuídas especificamente para um container.
Dica da tia Dani, sempre que você tiver um container mais relevante para a sua aplicação atribua especificamente para ele as RUs.
Como experimentar o Cosmos DB?
O primeiro passo para conhecer o cosmos DB, é ter uma conta no Microsoft Azure.
Passado essa etapa, no dia 06/03 foi anunciada pela Microsoft o novo nível gratuito. E eu amei! Pois ele facilita a vida de quem quer conhecer o Cosmos DB e ajuda a economizar dinheiro, porque você pode inclusive usar a camada gratuita para seus desenvolve novos aplicativos.
Com o Nível gratuito do Azure Cosmos DB ativado, você obtém gratuitamente a primeira taxa de transferência de 400 RU e 5 GB de armazenamento em sua conta todos os meses, durante toda a vida útil da conta. Você pagará apenas se sua conta exceder 400 RU ou 5 GB. Além disso, se seu aplicativo tiver muitos contêineres, você poderá criar até 25 contêineres em um banco de dados e compartilhar todos os 400 RUs gratuitos.
Quando usar o Cosmos DB?
Vou falar bem sério agora. O Cosmos DB é incrível, mas deve ser usado no momento certo, para não trazer mais custos do que benefícios. Use se:
- Precisa de distribuição global dos dados;
- Inclusão de dados em diferentes locais;
- Segurança e alta disponibilidade necessárias;
- Necessidade de alto desempenho;
- Microsserviços são lindos com Cosmos DB;
Para saber mais sobre o Cosmos DB
O passo 1
Para começar com o Cosmos DB eu recomendo que vc assista um vídeo curtinho que eu publiquei no canal há alguns meses atrás. Ele vai te ajudar a criar o seu serviço.
Atenção somente para o fato de que naquela época, a camada gratuita não estava disponível.
Continuando…
Eu amo usar o Cosmos DB, e tenho experiências lindinhas com ele, algumas compartilhadas em vídeos, posts e afins listados abaixo:
- https://www.microsoft.com/pt-br/microsofttech/cosmos-db-um-banco-de-dados-multimodelo/
- https://devblogs.microsoft.com/cosmosdb/build-apps-for-free-with-azure-cosmos-db-free-tier/?_lrsc=bfcfd1be-d461-477d-8d40-8e49072f493e
- https://www.youtube.com/watch?v=evtoNJE–kI
- https://www.youtube.com/watch?v=Nb6DGz8CfAk
- https://www.youtube.com/watch?v=TfnpPNq8DKs
- http://www.iotweekend.com.br/2018/palestra?id=306
Além da documentação linda e oficial https://docs.microsoft.com/pt-br/azure/cosmos-db/
Para finalizar o post e sem fechar o assunto…
Dando continuidade em nossa super planilha, adicionei mais uma aba, indicando quando usar o Cassandra.
Lembre-se que a planilha é nossa, então fique à vontade para mandar suas colaborações.
Os outros posts da série SQL ou NoSQL…
Se você perdeu os outros posts desta série, te convido para ler:
SQL ou NoSQL? (Parte 2 – Porque MongoDB?)
SQL ou NoSQL? Parte 3 – Quando usar o Neo4J?
SQL ou NoSQL? Você conhece o Redis?
SQL or NoSQL? Quem é essa tal de Cassandra?
Dados de Alto Valor
O que você espera para a sua carreira?
Qual o seu futuro como profissional de tecnologia, e que vai trabalhar com dados?
Vamos conversar sobre o seu sonho de carreira? Existem muitas oportunidades para trabalhar com dados, e pouca gente capacitada! E eu decidi que vou mudar isso, ajudando Devs e DBAs a implantar, otimizar e propor arquiteturas de dados complexas utilizando novas tecnologias, para que participem ativamente da criação de novos produtos e se tornem referência nas empresas.
Vamos conversar? Me manda um e-mail propondo 3 horários diferentes dani@db4beginners.com e juntos vamos mudar a sua carreira, a tecnologia e o mundo!
E-book
O meu e-book de introdução ao MongoDB está chegando! Ele será disponibilizado primeiramente para os leitores do blog, então se inscreva e aguarde o seu!
Apoiador
Amigos, vocês conhecem o nosso apoiador?
O nosso primeiro parceiro é a SPEsportes, uma loja super legal, com produtos incríveis e preço justo! Os leitores do blog tem desconto de 20% em todos os produtos, informando o cupom de desconto DB4BEGINNERS
Se a sua empresa quiser ser parceira também, temos algumas possibilidades.