Neste bate papo vamos discutir quais as vantagens de cada banco de dados no mundo real. Quando devemos utilizar o NoSQL ao invés do SQL ou vice-versa comparando os principais bancos de dados open source de cada segmento, o MongoDB e o MySQL
DevOps Day at the San Francisco Loft: DevOps on AWS
Software release cycles are now measured in days instead of months. Cutting edge companies are continuously delivering high-quality software at a fast pace. In this session, we will cover how you can begin your DevOps journey by sharing best practices and tools used by the engineering teams at Amazon. We will showcase how you can accelerate developer productivity by implementing continuous Integration and delivery workflows. We will also cover an introduction to AWS CodeStar, AWS CodeCommit, AWS CodeBuild, AWS CodePipeline, AWS CodeDeploy, AWS Cloud9, and AWS X-Ray the services inspired by Amazon's internal developer tools and DevOps practice.
Level: 200
Speaker: Sam Hennessy - Solutions Architect, AWS
Devido ao aumento da quantidade de dados, começaram a surgir demandas de escalabilidade e a necessidade de se trabalhar com dados de forma mais flexível do que as regras do modelo relacional. Em 2009, surgiu o termo NoSQL. Este novo modelo, faz referência a várias soluções desenvolvidas que caracterizam-se por ter esquema flexível, executar de forma distribuída e geralmente possuir o código aberto.
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...Amazon Web Services
Amazon S3 is the central data hub for Netflix's big data ecosystem. We currently have over 1.5 billion objects and 60+ PB of data stored in S3. As we ingest, transform, transport, and visualize data, we find this data naturally weaving in and out of S3. Amazon S3 provides us the flexibility to use an interoperable set of big data processing tools like Spark, Presto, Hive, and Pig. It serves as the hub for transporting data to additional data stores / engines like Teradata, Redshift, and Druid, as well as exporting data to reporting tools like Microstrategy and Tableau. Over time, we have built an ecosystem of services and tools to manage our data on S3. We have a federated metadata catalog service that keeps track of all our data. We have a set of data lifecycle management tools that expire data based on business rules and compliance. We also have a portal that allows users to see the cost and size of their data footprint. In this talk, we’ll dive into these major uses of S3, as well as many smaller cases, where S3 smoothly addresses an important data infrastructure need. We will also provide solutions and methodologies on how you can build your own S3 big data hub.
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
MySQL Clustering over InnoDB engines has grown a lot over the last decade. Galera began working with InnoDB early and then Group Replication came to the environment later, where the features are now rich and robust. This presentation offers a technical comparison of both of them.
DevOps Day at the San Francisco Loft: DevOps on AWS
Software release cycles are now measured in days instead of months. Cutting edge companies are continuously delivering high-quality software at a fast pace. In this session, we will cover how you can begin your DevOps journey by sharing best practices and tools used by the engineering teams at Amazon. We will showcase how you can accelerate developer productivity by implementing continuous Integration and delivery workflows. We will also cover an introduction to AWS CodeStar, AWS CodeCommit, AWS CodeBuild, AWS CodePipeline, AWS CodeDeploy, AWS Cloud9, and AWS X-Ray the services inspired by Amazon's internal developer tools and DevOps practice.
Level: 200
Speaker: Sam Hennessy - Solutions Architect, AWS
Devido ao aumento da quantidade de dados, começaram a surgir demandas de escalabilidade e a necessidade de se trabalhar com dados de forma mais flexível do que as regras do modelo relacional. Em 2009, surgiu o termo NoSQL. Este novo modelo, faz referência a várias soluções desenvolvidas que caracterizam-se por ter esquema flexível, executar de forma distribuída e geralmente possuir o código aberto.
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...Amazon Web Services
Amazon S3 is the central data hub for Netflix's big data ecosystem. We currently have over 1.5 billion objects and 60+ PB of data stored in S3. As we ingest, transform, transport, and visualize data, we find this data naturally weaving in and out of S3. Amazon S3 provides us the flexibility to use an interoperable set of big data processing tools like Spark, Presto, Hive, and Pig. It serves as the hub for transporting data to additional data stores / engines like Teradata, Redshift, and Druid, as well as exporting data to reporting tools like Microstrategy and Tableau. Over time, we have built an ecosystem of services and tools to manage our data on S3. We have a federated metadata catalog service that keeps track of all our data. We have a set of data lifecycle management tools that expire data based on business rules and compliance. We also have a portal that allows users to see the cost and size of their data footprint. In this talk, we’ll dive into these major uses of S3, as well as many smaller cases, where S3 smoothly addresses an important data infrastructure need. We will also provide solutions and methodologies on how you can build your own S3 big data hub.
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
MySQL Clustering over InnoDB engines has grown a lot over the last decade. Galera began working with InnoDB early and then Group Replication came to the environment later, where the features are now rich and robust. This presentation offers a technical comparison of both of them.
Understanding ProxySQL internals and then interacting with some common features of ProxySQL such as query rewriting, mirroring, failovers, and ProxySQL Cluster
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
This presentation by Krzysztof Książek at Percona Live 2017 in Santa Clara, California gives detailed descriptions and comparisons of the leading open source database load balancing technologies
Design patterns là một đề tài "khó nuốt" với đa số lập trình viên ở buổi đầu tìm hiểu. Lý do là vì design patterns được xây dựng trên những khái niệm trừu tượng cũng như phải tuân thủ các nguyên tắc lập trình hướng đối tượng.
Đến với TechTalk #32: SOLID & Design Patterns, các bạn sẽ được giới thiệu những nguyên tắc cần phải tuân thủ này và cách thức áp dụng những design patterns quen thuộc vào giải quyết các bài toán một các ngắn gọn, xúc tích và hiệu quả thông qua các ví dụ thực tế.
Speaker: Khôi Nguyễn - Senior Software Engineer @ KMS Technology
Speaker: Jay Runkel
When architecting a MongoDB application, one of the most difficult questions to answer is how much hardware (number of shards, number of replicas, and server specifications) am I going to need for an application. Similarly, when deploying in the cloud, how do you estimate your monthly AWS, Azure, or GCP costs given a description of a new application? While there isn't a precise formula for mapping application features (e.g., document structure, schema, query volumes) into servers, there are various strategies you can use to estimate the MongoDB cluster sizing. This presentation will cover the questions you need to ask and describe how to use this information to estimate the required cluster size or cloud deployment cost.
Explore Amazon DynamoDB capabilities and benefits in detail and learn how to get the most out of your DynamoDB database. We go over best practices for schema design with DynamoDB across multiple use cases, including gaming, IoT, and others. We explore designing efficient indexes, scanning, and querying, and go into detail on a number of recently released features, including DynamoDB Accelerator (DAX), DynamoDB Time-to-Live, and more. We also provide lessons learned from operating DynamoDB at scale, including provisioning DynamoDB for IoT.
This presentation will demonstrate how you can use the aggregation pipeline with MongoDB similar to how you would use GROUP BY in SQL and the new stage operators coming 3.4. MongoDB’s Aggregation Framework has many operators that give you the ability to get more value out of your data, discover usage patterns within your data, or use the Aggregation Framework to power your application. Considerations regarding version, indexing, operators, and saving the output will be reviewed.
Capacity Planning For Your Growing MongoDB ClusterMongoDB
Your MongoDB deployment is growing, but are you prepared for that growth? Capacity planning is an essential practice when deploying any database system. You need to understand your usage patterns and determine the appropriate hardware based on your application's needs. Scaling reads and scaling writes will require different types of resources. With the proper tools in place, you can understand your working set, gain visibility into when it's time to add resources or start sharding and avoid performance issues. In this session, you'll learn how to use MongoDB Management Service and other tools to identify patterns and predict growth, ensuring your success with MongoDB.
Deploying any software can be a challenge if you don't understand how resources are used or how to plan for the capacity of your systems. Whether you need to deploy or grow a single MongoDB instance, replica set, or tens of sharded clusters then you probably share the same challenges in trying to size that deployment.
This webinar will cover what resources MongoDB uses, and how to plan for their use in your deployment. Topics covered will include understanding how to model and plan capacity needs for new and growing deployments. The goal of this webinar will be to provide you with the tools needed to be successful in managing your MongoDB capacity planning tasks.
Understanding ProxySQL internals and then interacting with some common features of ProxySQL such as query rewriting, mirroring, failovers, and ProxySQL Cluster
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
This presentation by Krzysztof Książek at Percona Live 2017 in Santa Clara, California gives detailed descriptions and comparisons of the leading open source database load balancing technologies
Design patterns là một đề tài "khó nuốt" với đa số lập trình viên ở buổi đầu tìm hiểu. Lý do là vì design patterns được xây dựng trên những khái niệm trừu tượng cũng như phải tuân thủ các nguyên tắc lập trình hướng đối tượng.
Đến với TechTalk #32: SOLID & Design Patterns, các bạn sẽ được giới thiệu những nguyên tắc cần phải tuân thủ này và cách thức áp dụng những design patterns quen thuộc vào giải quyết các bài toán một các ngắn gọn, xúc tích và hiệu quả thông qua các ví dụ thực tế.
Speaker: Khôi Nguyễn - Senior Software Engineer @ KMS Technology
Speaker: Jay Runkel
When architecting a MongoDB application, one of the most difficult questions to answer is how much hardware (number of shards, number of replicas, and server specifications) am I going to need for an application. Similarly, when deploying in the cloud, how do you estimate your monthly AWS, Azure, or GCP costs given a description of a new application? While there isn't a precise formula for mapping application features (e.g., document structure, schema, query volumes) into servers, there are various strategies you can use to estimate the MongoDB cluster sizing. This presentation will cover the questions you need to ask and describe how to use this information to estimate the required cluster size or cloud deployment cost.
Explore Amazon DynamoDB capabilities and benefits in detail and learn how to get the most out of your DynamoDB database. We go over best practices for schema design with DynamoDB across multiple use cases, including gaming, IoT, and others. We explore designing efficient indexes, scanning, and querying, and go into detail on a number of recently released features, including DynamoDB Accelerator (DAX), DynamoDB Time-to-Live, and more. We also provide lessons learned from operating DynamoDB at scale, including provisioning DynamoDB for IoT.
This presentation will demonstrate how you can use the aggregation pipeline with MongoDB similar to how you would use GROUP BY in SQL and the new stage operators coming 3.4. MongoDB’s Aggregation Framework has many operators that give you the ability to get more value out of your data, discover usage patterns within your data, or use the Aggregation Framework to power your application. Considerations regarding version, indexing, operators, and saving the output will be reviewed.
Capacity Planning For Your Growing MongoDB ClusterMongoDB
Your MongoDB deployment is growing, but are you prepared for that growth? Capacity planning is an essential practice when deploying any database system. You need to understand your usage patterns and determine the appropriate hardware based on your application's needs. Scaling reads and scaling writes will require different types of resources. With the proper tools in place, you can understand your working set, gain visibility into when it's time to add resources or start sharding and avoid performance issues. In this session, you'll learn how to use MongoDB Management Service and other tools to identify patterns and predict growth, ensuring your success with MongoDB.
Deploying any software can be a challenge if you don't understand how resources are used or how to plan for the capacity of your systems. Whether you need to deploy or grow a single MongoDB instance, replica set, or tens of sharded clusters then you probably share the same challenges in trying to size that deployment.
This webinar will cover what resources MongoDB uses, and how to plan for their use in your deployment. Topics covered will include understanding how to model and plan capacity needs for new and growing deployments. The goal of this webinar will be to provide you with the tools needed to be successful in managing your MongoDB capacity planning tasks.
Slides da palestra "Performance no MongoDB" apresentada no TDC 2017 | Florianópolis - Trilha BigData e NoSQL.
Tópicos da Apresentação:
- MongoDB Overview
- Fatores de Performance
- Utilitários e Benchmarking
São apresentados conceitos sobre NoSQL, Modelagem de dados, Replica Set, Sharded Cluster, Journal, Index, Query Planner. Além das ferramentas e técnicas de análise e melhoria de performance estão disponíveis no MongoDB. Como utilizar ferramentas de profiling, logs, mongotop e mongostat que estão disponíveis no MongoDB.
Coisas básicas sobre as características dos banco de dados, muito importante antes mesmo de planejar a modelagem.Conhecer o banco em relação o seu projeto é mais importante por causa do que voce irá fazer com seus dados
Apresentação da segunda edição do evento Meritt CC, espaço semanal onde cada meritt pode compartilhar seu conhecimento.
Nesta apresentação, Fernando Jorge Mota <fjorgemota@meritt.com.br> apresentou o conceito de banco de dados NoSQL e três de suas implementações: 1) MongoDB, 2) Cassandra e 3) HBase.
Um dos objetivos é que a equipe esteja melhor preparada para quando surgirem desafios que exigirão o uso de diferentes bancos de dados.
Dicas rápidas de programação, truques e técnicas que você pode usar agora! Você está convidado a juntar-se aos especialistas em desenvolvimento de software da Embarcadero a cada 15 dias para tutoriais ao vivo de 30 minutos sobre desenvolvimento de software para Windows, Mac, Android e iOS.
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
Banco de dados sem schema não precisa de modelo de dados!” Se você acredita nisso, seu projeto começou a falhar antes de começar! Vamos conversar sobre como modelar seu banco de dados NoSQL sem perder a flexibilidade e sem perder o controle sobre seus dados.
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
O PostgreSQL começou a ser desenvolvido em 1986 e tem ganhado bastante destaque nos últimos anos, como o banco de dados que mais cresce no mercado. Conheça as vantagens e desvantagens em se utilizar o banco de dados Open Source mais avançado do mundo.
Por que minha query esta lenta? - Suellen MoraesiMasters
Durante os anos de experiencia percebi que grande parte dos desenvolvedores possuem dificuldade em iniciar o troubleshooting de suas queries, muitas vezes sobrecarregando o DBA em muitos dos casos com queries simples. O intuito desta palestrar é mostrar o "caminho das pedras" para despertar nos desenvolvedores a necessidade de se conhecer o funcionamento da ferramenta utilizada e visando os desenvolvimentos futuros tendo como foco o pensamento em performance do código escrito e dicas de melhores códigos.
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
"essa sessão iremos abordar os principais problemas arquiteturais, e suas soluções, que encontro nas mais diversas corporações brasileiras. Desde bancos de dados recebendo 100% de querys Adhoc, CPDs inundados, até servidores que foram metralhados e não possuiam backup.
Falaremos sobre arquitetura de dados, boas práticas de backup, alta disponibilidade, disaster recovery, performance, boas práticas de configuraçao e etc."
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
Com a evolução dos aplicativos nascem novas técnicas, frameworks, linguagens de programação, porém, existe um fato consolidado dentro da arquitetura de software corporativo que é a integração com alguma tecnologia necessária para armazenar as informações inerentes ao sistema. Seja SQL ou NoSQL um ponto importante é que o paradigma das linguagens difere da tecnologia do banco de dados. Com o intuito de facilitar o desenvolvimento surgem as ferramentas que realizam a interpretação entre a camada da aplicação e os bancos. Assim, aparecem grandes desafios: como lidar com essa lacuna multiparadigma? Como favorecer o desenvolvimento sem impactar a performance e a modelagem no banco de dados? O objetivo dessa palestra é falar um pouco desses pontos para que, finalmente, os programadores e os DBAs conseguam viver em paz e harmonia.
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsiMasters
Diante das novas regulamentações externas (GDPR), e a nova legislação Brasileira sobre Proteção de Dados Pessoais (LGPD), o que fazer para se adequar? Por Onde começar? O que Fazer? E o que não fazer? Para que serve a Governança de Dados e como ela pode ajudar sua empresa no processo de adequação/conformidade a padrões internacionais de Privacidade e Segurança da Informação? Diante de tantos caminhos e desafios, um overview do que se trata, por onde começar o caminho, algumas armadilhas a evitar, e algumas boas práticas para não apenas se proteger, mas evitar futuros problemas.
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...iMasters
Esta palestra vai abordar qual é o papel do DBA no cenário atual onde processos de machine learning estão cada vez mais presentes nas empresas. O conteúdo discutirá tópicos que tocam em temas como o relacionamento entre o DBA e o cientistas de dados, a gestão dos dados, integração de tecnologias, reciclagem de profissionais e outros fatores que devem ser levados em consideração pelo DBA atual, uma vez que as empresas cada vez mais investem em projetos de machine learning.
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
Juliana Chahoud - Consultora, ThoughtWorks
Com tantas empresas adotando a estratégia "Mobile-First" (dispositivos móveis em primeiro), uma das grandes decisões que um time de desenvolvimento precisa tomar é: qual tech stack usar para mobile?
Diversas tecnologias e linguagens podem ser adotadas, como Swift, Java, Kotlin, React Native, Flutter, Progressive Web App, criação de sites responsivos, etc...
No entanto, com tantas variáveis a serem consideradas, essa decisão passou a ser não trivial e que pode trazer grandes consequências a longo prazo e até mesmo inviabilizar um projeto.
Nessa palestra serão discutidos os prós e contras de diversas abordagens, para que você possa ter um guia para tomar decisões mais corretas no uso dessas tecnologias
Palestra apresentada no InterCon 2018 - https://eventos.imasters.com.br/intercon
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
Andrêza Leite - Professora - UFRPE
Model Driven Development(MDD) está se tornando um tópico quente (novamente!). Mas por que MDD?
Quais são as vantagens de MDD, MDE, MDA e outros acrônimos relacionados a model-driven?
Nesta palestra tentarei responder essa questão listando algumas vantagens e perigos do desenvolvimento orientado a modelos, alinhados ao uso prático destas técnicas para geração de código e esquemas de bancos de dados.
Palestra realizada no InterCon 2018 - https://eventos.imasters.com.br/intercon
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
Trabalhar a performance no backend vai muito além de simplesmente ""colocar mais máquinas atrás do loadbalancer""
. Vamos apontar alguns gargalos comuns que podem ser tratados ou evitados desde o começo do desenvolvimento, já que não dependem da tecnologia utilizada.
Dicas para uma maior performance em APIs REST - Renato GroffeiMasters
Renato Groffe - Engenheiro de Software, Canal .NET
O que posso fazer em termos de bancos de dados para obter APIs que executem seu trabalho de forma otimizada e com maior velocidade?
Que soluções para cache podem ser empregadas? E que tal tratar os retornos destas APIs, reduzindo o volume dos dados trafegados?
E quanto a problemas de performance, o que utilizar para facilitar a detecção destes tipos de ocorrências? Acompanhe esta apresentação para obter respostas a estas questões durante o desenvolvimento de APIs REST.
Palestra realizada no InterCon 2018 - https://eventos.imasters.com.br/intercon
7 dicas de desempenho que equivalem por 21 - Danielle MonteiroiMasters
Danielle Monteiro - Arquiteta de Dados, WDB Consulting
"Não pisque, respire somente se necessário...
1 dica por minuto e seus bancos de dados serão muito melhores "
Palestra apresentada no InterCon 2018 - https://eventos.imasters.com.br/intercon
Quem se importa com acessibilidade Web? - Mauricio MaujoriMasters
Maurício Maujor - Divulgador dos Padrões Web, Maujor.com
A acessibilidade é essencial para desenvolvedores e organizações que desejam criar websites e aplicações web de alta qualidade e não excluir pessoas do uso de seus produtos e serviços. Nesta palestra Maujor aborda alguns conceitos de acessibilidade com o objetivo de motivar e conscientizar para a importância de se projetar web com foco em acessibilidade.
Palestra apresentada no InterCon 2018 - https://eventos.imasters.com.br/intercon
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
Wellington Figueira da Silva - Sysadmin de Códigos, Easy
Com a popularidade dos contêineres ficou mais fácil criar microserviços e mais ágil construir aplicações distribuídas, porém a gerência desses serviços fica muito mais complicada.
Mostraremos a ferramenta chamada Istio que nos ajuda com service discovery, com a distribuição de carga, com as rotas, com a detecção e tratamento de falhas, com controle de acesso entre aplicações dentre muitas outras funcionalidades disponíveis.
Apresentado no InterCon 2018 - https://eventos.imasters.com.br/intercon
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiiMasters
Augusto Pascutti - Developer, Creditas
Para o quê eles servem e como usá-los de forma mais eficiente, seja através de integrações com outras ferramentas ou só seguindo receitas de como as mensagens de erro devem ser geradas e compostas.
Apresentado no InterCon 2018: https://eventos.imasters.com.br/intercon
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
Rubens Guimarães - CEO, e-Seth
Como projetar e colocar em prática bancos de dados inteligentes SQL e NoSQL em ambientes de alto consumo de dados.
Técnicas de sharding, tunning, elasticidade automatizada em ambientes cloud e outros recursos.
Apresentado no InterCon 2018 - https://eventos.imasters.com.br/intercon
Construindo aplicações mais confiantes - Carolina KarklisiMasters
Carolina Karklis - Software developer, Magnetis
O hype da orientação a objetos passou e com ele precisamos rever algumas práticas.
Até mesmo o codebase mais limpo pode ter mensagens de erro precárias, checagens de tipo de dado em excesso, e uso dispensável de variáveis nulas.
Nessa talk vou refatorar um sistema frágil e mostrar estratégias dentro do paradigma de orientação a objetos para escrever código de forma mais simples e confiante.
No processo, vamos ver padrões de arquitetura de software que podemos usar, como melhorar mensagens para cenários de input inesperado e remover todas as variáveis nulas possíveis do nosso código.
Monitoramento de Aplicações - Felipe RegalgoiMasters
Felipe Regalgo - Especialista em Desenvolvimento de Software, Mercado Livre
Mostraremos como o Mercado Livre monitora suas aplicações para identificar Bugs, Anomalias e comportamentos fora de padrão esperado.
Falaremos sobre sistemas como NewRelic, DataDog, Kibana, OpsGenie e demais ferramentas internas que temos para facilitar e identificar problemas nas centenas de micro-serviços que temos antes mesmo deles chegarem até o usuário final.
Apresentado no InterCon 2018 - https://eventos.imasters.com.br/intercon
Elton Minetto - CTO, CodeNation
Em seu livro "Clean Architecture: A Craftsman's Guide to Software Structure and Design" o famoso autor Robert "Uncle Bob" Martin apresenta uma arquitetura com alguns pontos importantes como testabilidade e independência de frameworks, bancos de dados e interfaces.
Nesta apresentação vou mostrar exemplos de como aplicar estes conceitos em projetos escritos em Golang e PHP
Apresentado no InterCon 2018 - https://eventos.imasters.com.br/intercon
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos - Adamo Tonete
1. SQL e NoSQL trabalhando juntos: uma comparação para obter o
melhor de ambos
2. Agenda
● Definição de MongoDB e MySQL
● Conceitos de bancos relacionais e não relacionais
● Principais diferenças entre o MySQL e o MongoDB
● Similaridades
● Query Language;
● Comparação de performance
● Segurança;
● Melhores use cases
● Q&A
3. Sobre mim
● Adamo Tonete
○ MongoDB Support Engineer @Percona
DBA Easy Taxi
/adamotonete
5. O que é MongoDB
● Document Oriented Database
● NoSQL
● Open source
● Banco de Dados NoSQL mais popular atualmente
● Alta performance
6. ● Relational Database Management System
● Segundo banco de dados mais popular de acordo com DBEngines
● Feito para ser utilizado com diferentes storage engines
● Suporta diferentes topologias de replicação
O que é MySQL
8. Conceito de Banco de Dados
Um gerenciador de banco de dados é organizado da seguinte maneira
● Dados
● Schema
● Tabelas
● Query Language
● Relatórios
● Views
● Other elements.
9. Conceito de Banco de Dados Relacionais
● Foram escritos na época de 1970
● Linhas e atributos definem relações entre
tabelas
● Dados Normalizados
● SQL Language
● Procedures
● Triggers
● Foreign keys
● Transações - ACID
10. Conceitos de Bancos de Dados não relacionais
● Primeiros NoSQL surgiram no começo dos anos 2000s;
● Conceito de não relacional, sem tabelas ou relações entre elas;
● Não utiliza padrão T-SQL
● Criado para encaixar-se melhor com linguagens mais novas
● De fácil desenvolvimento
12. Diferenças entre MongoDB e MySQL
● Algumas das features que vamos comparar
○ Normalização
○ Transações
○ Linguagem de consulta
○ Forma de salvar dados no disco (storage engine)
○ Diferenças de indexes
○ Modo de escalar e distribuir o banco de dados (HA)
13. MongoDB e MySQL são diferentes?
● NoSQL e SQL não são inimigos
○ Eles são complementos um dos outros
● Enquanto o MongoDB é um banco de dados relativamente novo O MySQL já é
um banco de dados relacional consolidado no mercado.
● Para alguns use-cases MongoDB como principal Banco de dados não é a
melhor coisa a se fazer.
● No entanto, o MongoDB pode oferecer uma facilidade muito grande para
startups e metodologias ágeis.
14. MongoDB e MySQL são diferentes?
● Comparando distribuição de dados
○ MongoDB é projetado para manipular altas cargas de dados
○ MySQL pode ser shardeado utilizando alguns add-ons
○ MySQL foi a princípio desenvolvido para funcionar numa máquina apenas
15. Normalização
● MongoDB sugere boas práticas para salvar seus dados mas não o força a
fazer isso.
● MySQL por outro lado força um schema pré-definido onde na maioria dos
bancos é utilizado a 3 forma normal para evitar duplicação de dados.
Normalização
18. ACID
● O que é ACID
○ Atomicidade
○ Consistência
○ Isolamento
○ Durabilidade
19. ● Como o ACID é representado no MySQL.
○ Atomicidade
■ Se autocommit=ON (default), todo comando é salvo imediatamente
■ Se não, COMMIT or ROLLBACK deve ser usado explicitamente
○ Consistencia
■ Utiliza doublewrite e crash recovery
○ Isolation
■ Diferente níveis de isolamento, RC, RU
○ Durabilidade
■ Existem várias configurações, sendo as principais innodb_flush_log_at_trx_commit and
sync_binlog
ACID
20. ● Como ACID é representada no MongoDB?
○ Atomicidade
■ Documento é atômico
○ Consistência
■ primário = garantida
■ secondários = depende do write Concern
○ Isolamento
■ Não é 100% podendo forçar com $snapshot
○ Durabilidade
■ configurável w:majority and/or j:true
ACID
21. CAP theorem - MongoDB
● Teorema CAP foi proposto por Eric Allen
em 2000
● Um sistema distribuído não pode ter 3
garantias ao mesmo tempo. Uma deve
ser sacrificado
22. CAP theorem - MongoDB
A
PC
● Consistência
● Disponibilidade
● Tolerancia a Particionamento
Todos receberão a mesma resposta
independente do nó.
24. CAP theorem - MongoDB
A
PC
● Consistência
● Disponibilidade
● Tolerância a Particionamento
Sistema pode se recuperar de um erro
de rede ou máquina
25. CAP theorem - MongoDB
A
PC
Relacional
MySQL
Postgres
Cassandra
Riaki
MongoDB
Redis
26. ● MySql contem tabelas pré definidas.
● Cada coluna pode ter um e somente um tipo de dados pre definido.
● Limites de tamanos de linhas/colunas
○ Colunas máximas numa tabela: 4096
● SQL é uma linguagem declarativa
● Diversos conectores
○ https://www.mysql.com/products/connector/
Salvando e consultando dados
27. Salvando e consultando dados
● Diferentemente do MySQL o MongoDB não tem um schema pre-definido.
● Os documentos podem ter diferentes valores para as mesmas colunas
{x : 1, y : ['test']}
e
{x : 'percona', y : ISODate('2018-01-01')}
São validos.
28. ● MongoDB não utiliza-se de normalização, ao contrario de boas praticas do
MySQL
● Todos os documentos devem conter o máximo de informação possível pois
não há joins.
● Tamanho máximo de um documento é de 16MB
Salvando e consultando dados
30. ● O que é escalabilidade?
○ "Habilidade de adicionar mais recursos"
● Scale up (a.k.a.: verticalmente)
○ Melhorar hardware (máquina maior)
● Scale out (a.k.a.: horizontalmente)
○ Add mais instâncias
Escalabilidade
31. ● MongoDB:
○ Utiliza sharding para escalar escritas
○ Utiliza secundários para escalar leituras
● MySQL:
○ Pode utilizar particionamento e "sharding" para escalar escritas (mas não tão fácil quanto o
mongodb)
○ Utiliza escravos (secundários) para escalar leituras
Scalability
33. ● Mas esses bancos de dados não são completamente diferentes
● Eles compartilham
○ Segurança
○ Indexes
○ Multi usuário/multi threaded
○ Concorrência
Similaridades
34. ● Database terms and concept mapping
Similaridades
MySQL MongoDB
Database Database
Table Collection
Row Document
Column Key
35. Security:
● Diferentes níveis de segurança
● Roles
Diferentes storage engines
● Ambos MongoDB e MySQL compartilham a ideia de storage plugável
● Os storages para MongoDB são: WiredTiger, MMAPv1, InMemory, RocksDB
● MySQL são: InnoDB, MyISAM, MyRocks, Memory, and many more
Similaridades
37. ● Vamos comparar brevemente os padrões de linguagem entre o MongoDB e o
SQL,
○ Criar banco de dados
○ Criar tabela
○ Fazer um insert
○ Fazer um select
○ Como executar update ou delete
○ Joins (SQL) / $lookup mongodb
Query Language
43. ● Ambos os bancos de dados contém controle de usuário e de roles e
bibliotecas para integração com LDAP, certificados.
● Percona Server for MongoDB e Percona Server for MySQL oferecem
melhorias como auditoria em sua versão free.
Segurança
44. ● MongoDB contém controle por roles desde a versão 2.4
● Atualmente não é possível limitar acesso a campos de forma fácil.
● Plugin de auditoria (enterprise)
Segurança - MongoDB
45. ● MySQL contém roles a partir da versão 8.0
● Pode-se setar permissões a nível de banco de dados e colunas
● Podemos controlar actions em tabelas por meio de grants de:
○ CREATE
○ SELECT
○ INSERT
○ UPDATE
○ ...
● MySQL enterprise contém
○ LDAP authentication
○ Encryption
○ Audit
Segurança - MySQL
47. Não existe como comparar a performance de ambos diretamente.
Cada banco de dados tem sua particularidade
Documentos são mais fáceis de trafegar, não existe o custo de um join. Lookups
demoram uma eternidade em MongoDB.
MySQL por outro lado faz joins com maestria e anos de experiência.
Estamos comparando prego e parafuso aqui
Performance
48. Conceitos genéricos para uma boa performance.
● Manter índices corretamente;
● Particionar ou excluir dados antigos para manter o banco de dados pequeno;
● Leia somente o necessário;
● Utilize discos rápidos quando nem todo o banco de dados cabe na RAM;
● Mais núcleos favorece queries em paralelo
Performance
50. ● Não existe uma resposta correta, apesar do MongoDB ser mais difundido em
startups e empresas que utilizam metodologia ágeis MySQL - E relacionais -
são muito fortes quando transações são requeridas
https://www.percona.com/about-percona/customers
https://www.percona.com/about-percona/case-studies
Então qual é melhor?
AG
RDBMS -> can be thought of in terms of "strongly typed" vs "loosely typed" in Mongo
all data is represented in terms of tuples, grouped into relations
popularity doesn't mean it's better or worse, but it gives a good idea on adoption (maturity, "battle" tested, etc) and potentially more sources of information from which to learn from
SEs give flexibility, but also add more complexity
there are many options to choose from, so it can be
AG
Atomicidade
Consistencia
Isolamento
Durabilidade
AT
(we are going to discuss CAP it later)
Document
Key Value
Time series
Graphs database
Strict schema
*** Distribiut
AT
AT
AT/AG
Explain that there are technologies on MySQL that can support writes in many nodes, but they have their disadvantages:
multimaster replication and PXC
AG
AG
Lemme now shoiou.
What a document looks like in mongodb.
AT
transactions should function as a single, indivisible unit of workthe database should always move from one consistent state to the nextthe results of a transaction are (usually) invisible to other transactions until the transaction is finishedonce committed, a transaction's changes are permanent
AGUSTINwe can use START TRANSACTION or BEGIN if autocommit=ON and we want multi-statement transactions
interesting to mention that the manual talks about "losing up to one second worth of transactions"... but how many transactions can that be?
AGUSTIN
3 minutes - Adamo
CAP theorem was proposed by Eric Allen in 2000
2 out of 3 guarantess
One must be sacrificed
Availability replication of datas acrross machines
Consistences
Avaiability Partition Tolerance = Cassandra
Consistence Partition Tolerance = MongoDB
Consistence Availability = Normal Databases
Ca doesn't have resilience
https://www.youtube.com/watch?v=k1dtA14EYrk
3 minutes - Adamo
CAP theorem was proposed by Eric Allen in 2000
2 out of 3 guarantess
One must be sacrificed
Availability replication of datas acrross machines
Consistences
Avaiability Partition Tolerance = Cassandra
Consistence Partition Tolerance = MongoDB
Consistence Availability = Normal Databases
Ca doesn't have resilience
https://www.youtube.com/watch?v=k1dtA14EYrk
3 minutes - Adamo
CAP theorem was proposed by Eric Allen in 2000
2 out of 3 guarantess
One must be sacrificed
Availability replication of datas acrross machines
Consistences
Avaiability Partition Tolerance = Cassandra
Consistence Partition Tolerance = MongoDB
Consistence Availability = Normal Databases
Ca doesn't have resilience
https://www.youtube.com/watch?v=k1dtA14EYrk
3 minutes - Adamo
CAP theorem was proposed by Eric Allen in 2000
2 out of 3 guarantess
One must be sacrificed
Availability replication of datas acrross machines
Consistences
Avaiability Partition Tolerance = Cassandra
Consistence Partition Tolerance = MongoDB
Consistence Availability = Normal Databases
Ca doesn't have resilience
https://www.youtube.com/watch?v=k1dtA14EYrk
3 minutes - Adamo
CAP theorem was proposed by Eric Allen in 2000
2 out of 3 guarantess
One must be sacrificed
Availability replication of datas acrross machines
Consistences
Avaiability Partition Tolerance = Cassandra
Consistence Partition Tolerance = MongoDB
Consistence Availability = Normal Databases
Ca doesn't have resilience
https://www.youtube.com/watch?v=k1dtA14EYrk
Agustin
InnoDB columns -> 1,000
InnoDB row length -> "slightly less" than half a page (by default a page is 16Kb)
talk about query optimizer a bit
AT
30 seconds to 1 minute
Talk about query optimizer
How the indexes behaves when there are different data types
AT
X
For most of the cases mongodb will prefer scale out, which is not the same for mysql
X
X
Machine costs
If we want to scale MongoDB, we can simple add more machines
For MySQL this is not always true
Compare mongodb and MySQL ways to scale out and UP
AT
Several other databases concepts/tools like backups, restore, export import
AT
AG/AT
User roles only on MySQL 8.0+
AG
30 seconds to 1 minute
AG
AG
AG
AT
Standard for nosql databases
AT
AT
AT
AG
X
X
MYSQL vs MongoDB - AG/AT
Come with examples here like
A bank will never use mongodb as the main financial database
Mention that our customers use both
Some for web and some for financial stuff like opensky for example