SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
SGDB OpenSource/Free vs
       Mercado
Trilha – Banco de Dados
    Carlos Eduardo Smanioto



                              Globalcode – Open4education
AVISO




        Globalcode – Open4education
Agenda
 Who I am 
 O Por que do tema
 O que temos hoje ?
 Desafios
     Desafios
     Disponibilidade
     Escalabilidade
     Auditoria
     Gerenciamento
     Suporte Técnico
 Arquitetura é tudo
     Mistura de Tecnologias – NoSQL + SQL
     Planejamento, algo que sempre esquecem
 O Mercado para os futuros DBAs Free/Open
     Mercado MYSQL
     Mercardo PostgreSQL




                                              Globalcode – Open4education
NERD Report
 How I am 


 carlos.smanioto@datapower.com.br

 •NERD confesso
 •Consultor PostgreSQL/MySQL – Data Power 
 •DBA Senior na Buscapé Company
 •Diversos artigos escrito na SQL Magazine
 •Instrutor Oracle University – MySQL
 •Consultor Linux desde os 17 anos


                                     Globalcode – Open4education
Porque do tema




                 Globalcode – Open4education
Porque do tema

2.Guerra entre DBAs de produtos comerciais x Free
3.O que o mercado AINDA não conhece o potencial REAL
sobre os SGDBs FREE/Open
4.Entender até onde pode se chegar com baixo custo.




                                         Globalcode – Open4education
O Que temos hoje




                   Globalcode – Open4education
O Que temos hoje -     PGSQL
           26 anos de história

       1986
          Berkeley com $$$ da DARPA, AROP (Miltar)

       1995
          Postgres95
              Adicionado o SQL
              Liberado na WEB

       1996
          Nome PostgreSQL




                                                      Globalcode – Open4education
O Que temos hoje -      PGSQL
            Principais Features

      • SQL: Window Function e Recursive (v 8.4 - 2009)

      • Trabalha com herança de tabelas

      • Archive, HotStandBy e Streaming Replication

      • Suporte a Store Procedure em Java, Perl, C

      • Trabalho com o conceito de ROLEs Group,
        Schema, Database e TableSpace




                                                          Globalcode – Open4education
O Que temos hoje -         PGSQL
                Sem Window Function

   SELECT f2.departamento, f2.nome, f2.salario,

   (

       SELECT avg(f1.salario) FROM funcionario f1

       WHERE f1.departamento = f2.departamento GROUP

       BY f1.departamento

   ) as media

   FROM funcionario f2

   ORDER BY f2.departamento;
   (cost=2675.12..2675.65 rows=210 width=352)       Globalcode – Open4education
O Que temos hoje -       PGSQL
              Com Window Function

   SELECT departamento, nome, salario,

   avg(salario) OVER (PARTITION BY departamento)

   AS media

   FROM funcionario

   ORDER BY departamento;



   (cost=20.20..23.87 rows=210 width=352)


                                                   Globalcode – Open4education
O Que temos hoje -   PGSQL
          Resultado da query




                               Globalcode – Open4education
O Que temos hoje -       PGSQL
            Principais Features 9.2

      • Replicação Sincrona

      • Suporte a JSON, permitindo integração hibrida
        DBs que falam JSON com o NoSQL MongoDB




                                                        Globalcode – Open4education
O Que temos hoje -   PGSQL




                             Globalcode – Open4education
O Que temos hoje -      MySQL
                 33 anos de história
         1979 – Nasce a TcX Consultoria
             Michael Monty desenvolve o UNIREG

         1994
             TcX decide colocar no UNIREG o SQL
                Uniu forças com o mSQL de David Hugles
                Arquitetura via API

         1995
             Nasce o MySQL e a empresa MySQL-AB
                Nome: Arquivos com prefixo my é histórico
                Nome: A filha de Monty tambem se chama My

         2008
             Sun adquire por aproximadamente $ 1 bilhão

         2009
             Oracle adquire a Sun aproxidamente $ 7.4 bilhões
                                                           Globalcode – Open4education
O Que temos hoje -       MySQL
                  Principais Features

      • Suporte a vários Store Engines

      • GAMBETA MARAVILHOSA: INSERT IGNORE

      • Replicação extremamente Flexível




                                             Globalcode – Open4education
O Que temos hoje -        MySQL
              Principais Features – 5.6


• NotOnlySQL com MemCache

• Replicação
   • Time-Delayed Replication
   • Multi-Thread
        • Para SQL_Thread e IO_Thread




                                          Globalcode – Open4education
O Que temos hoje -   MySQL




                             Globalcode – Open4education
Desafios




           Globalcode – Open4education
Desafios

•Desafio 1 - Disponibilidade
•Desafio 2 – Escalabilidade
•Desafio 3 – Auditoria
•Desafio 4 – Gerenciamento
•Desafio 5 – Profissionais Qualificados




                                      Globalcode – Open4education
Desafio - Disponibilidade




                            Globalcode – Open4education
Desafios -   Disponibilidade
• MySQL
  • Master – Slave - Balancamento de Carga Read Only
  • Log transacional - BinLog


• PostgreSQL
  •   Master – Slave Sincrono
  •   Slony
  •   Hot Standby
  •   Archive



                                        Globalcode – Open4education
Desafios -   Disponibilidade
PostgreSQL – Slony (Triger Repliction)




                                     Globalcode – Open4education
Desafios -   Escalabilidade




                              Globalcode – Open4education
Desafios -   Escalabilidade
• MySQL
  • MySQL Cluster – 16,6 milhões de querys segundo.
  • Master – Master – Balancamento de Carga RW




                                        Globalcode – Open4education
Desafios -   Escalabilidade




   MySQL Cluster




                              Globalcode – Open4education
Desafios -    Escalabilidade



    MySQL
   Multi-Master




                  /etc/my.cnf do NODE B
                  auto_increment_increment = 10
                  auto_increment_offset = 2



                                                  Globalcode – Open4education
Desafios -   Escalabilidade
                                               MySQL
                                              Multi-Master
                                               Circular
                              /etc/my.cnf do NODE A
                              auto_increment_increment = 10
                              auto_increment_offset = 1

                              /etc/my.cnf do NODE B
                              auto_increment_increment = 10
                              auto_increment_offset = 2

                              /etc/my.cnf do NODE C
                              auto_increment_increment = 10
                              auto_increment_offset = 3

                              /etc/my.cnf do NODE D
                              auto_increment_increment = 10
                              auto_increment_offset = 4
                                         Globalcode – Open4education
Desafios -    Escalabilidade
     MySQL Multi-Master Circular
                                      SELECT após replicação
 [node A]             [node B]
 +----+------+        +----+------+
                                        +----+------+
 | id | c    |        | id | c    |
                                        | id | c    |
 +----+------+        +----+------+
                                        +----+------+
 | 1 | a     |        | 2 | b     |
                                        | 1 | a     |
 | 11 | aa   |        | 12 | bb   |
                                        | 11 | aa   |
 | 21 | aaa |         | 22 | bbb |
                                        | 21 | aaa |
 +----+------+        +----+------+
                                        | 4 | d     |
                                        | 14 | dd   |
                                        | 24 | ddd |
 [node C]             [node D]          | 3 | c     |
 +----+------+        +----+------+     | 13 | cc   |
 | id | c    |        | id | c    |     | 23 | ccc |
 +----+------+        +----+------+     | 2 | b     |
 | 3 | c     |        | 4 | d     |     | 12 | bb   |
 | 13 | cc   |        | 14 | dd   |     | 22 | bbb |
 | 23 | ccc |         | 24 | ddd |      +----+------+
 +----+------+        +----+------+

                                           Globalcode – Open4education
Desafios -   Escalabilidade

• PostgreSQL
  •PostgreSQL-XC
  •PgPOOL
  •PGCluster




                              Globalcode – Open4education
Desafios -   Escalabilidade

PostgreS-XC
                              APP




                            Coordinator               PostgreSQL 9.1
    GTM




                Data Node                 Data Node

                                                       Globalcode – Open4education
Desafios -    Escalabilidade

PostgreS-XC
                    Coordinator lida com cada instruções SQL a partir
                    de aplicações, determina que Datanode ir, e se
    Coordinator
                    decompõe em locais instruções SQL para cada
                    Datanode



                    GTM(Global      Transaction    Management)       é
       GTM          responsável pela propriedade ACID - .


 Datanode armazena dados nas tabelas e lidar
 com instruções SQL localmente                        Data Node


                                                       Globalcode – Open4education
Desafios -   Escalabilidade
                              • Pool
                              • Replicação
  PgPool                      • Load Balance




                                       Globalcode – Open4education
Desafios -   Auditoria
• MySQL
  • LOG das ações
     • Make do it - POG’s POWER
        • http://dev.mysql.com/doc/refman/5.5/en/writing-audit-
          plugins.html
     • Mcaffee Audit Plugin >= 5.0
     • Road Map da Oracle – Audit Plugin + Oracle Firewall, etc
     • long_slow_query = 0 seconds


  • Trilha de auditoria
     • Gravar o histórico de uma alteração no ambiente
        • By Trigger
        • By Aplicação

                                                      Globalcode – Open4education
Desafios -    Auditoria
• PostgreSQL
  • Log das ações (Connect Fail, DDL e DML,
    Disconnect)
     • Configuração no postgresql.conf


  • Trilha de Auditoria (Alteração nos dados)
     •   PgFoundry - audittrail2
     •   Code.google - pgtrail
     •   By Trigger
     •   By Aplicação




                                           Globalcode – Open4education
Desafios -   Gerenciamento
 • MySQL
    • Performance Analyze
      • Ferramentas Pagas
         • Spotlight da Quest Software
         • MonYog
         • Oracle Enterprise Monitor (Free na versão
           MySQL Enterprise)

      • Open/FreeWare
         • RacherHacker – MySQL Tuner
         • InnoTOP
         • Hackmysql.com – MySQLReport



                                                       Globalcode – Open4education
Desafios -   Gerenciamento
        • MySQL
             • Administração
               • Ferramentas Pagas
                  • SQLYog
                  • MySQL WorkBench Enterprise (Free na versão
                    MySQL Enterprise)
                  • Quest Software – Toad for MySQL


               • Open/FreeWare
                  • MySQL WorkBench Community
                  • Quest Software – Toad for MySQL Communit
                  • PHPMyAdmin



                                                Globalcode – Open4education
Desafios -   Gerenciamento
        • PostgreSQL
             • Performance Analyze
                • Ferramentas Pagas
                   • PostgreSQL Enterprise Manager


                • Open/FreeWare
                   • PGSnap (OraSnap)

                   • NO BRAÇO!
                       • vmstats, etc...
                       • http://wiki.postgresql.org/wiki/
                         Performance_Analysis_Tools
                       • Pg_log verificando frequencia de checkpoint




                                                      Globalcode – Open4education
Desafios -   Gerenciamento
               • PostgreSQL
                 • Administração
                    • Ferramentas Pagas
                       • EMS SQL Manager for PostgreSQL


                    • Open/FreeWare
                       • TeamPostgreSQL WebManager
                       • PHPPgAdmin
                       • PGADMIN III – Tradicional




                                              Globalcode – Open4education
Desafios -   Gerenciamento
  Team PostgreSQL Web Interface




                                  Globalcode – Open4education
Arquitetura é tudo




                     Globalcode – Open4education
Arquitetura é tudo
Onde usar o MySQL ?
  •Foco em WEB faz frente ao SQL Server
Por que ?
  •Diferentes Store Engines
  •Simples

Onde usar o PostgreSQL
  • Foco em Data warehouse faz frente ao DB2/Oracle
    principalmente por ser muito similar
 Por que ?
  • Permite Herança de tabelas
  • Consultas Recursivas e Window Function
                                               Globalcode – Open4education
Desafios -   Suporte




                       Globalcode – Open4education
Desafios -   Suporte
        • PostgreSQL
             • Comunidade Forte
               • postgresql.org
               • Planet PostgreSQL
                  • http://planet.postgresql.org/
             • Forte Documentação
               • http://www.postgresql.org/docs/
             • Bons Livros

             • Consultores/Empresas Como Data
               Power and Me :D


                                                    Globalcode – Open4education
Desafios -   Suporte
        • MySQL
             • Planet MySQL (Agora em PT-BR)
               • http://pt.planet.mysql.com/
             • ORACLE dando retaguarda
             • Bons Livros

             • Consultores/Empresas
               • Como Data Power and Me :D
               • ORACLE Brasil




                                               Globalcode – Open4education
Mercado para os DBAs




                       Globalcode – Open4education
Mercado para os DBAs
      • MySQL
        • ORACLE com planos ambiciosos
          • Divulgação do SGDB como sendo rápido e
            estável

          • Nova Versão com Features interessantes
            para concentrar Desenvolvedores NoSQL e
            SQL no mesmo produto – Not Only SQL
            através do MemCache Protocol integrado
            com o Store Engine InnoDB
          • Plano de Certificação através da Oracle
            Univerity



                                        Globalcode – Open4education
Mercado para os DBAs
      • MySQL
        • Administração inicial bastante simples
          mas a falta de conhecimento pode
          comprometer os futuros ajustes de
          performance (Default – 1 unico datafile)

        • Baixíssima manutenção

        • Tuning bem simples de aplicar




                                       Globalcode – Open4education
Mercado para os DBAs
      • PostgreSQL
        • SGDB Open Features Expressívas
          • Mais próximo do Oracle Database tanto para
            developers quanto para DBAs
          • Muito robusto para Data Warehouse
          • A cada versão novidades cruciáveis para o
            mercado como Replicação SINCRONA,

          • Muito forte na região SUL do país
          • Ganhando cada vez mais adeptos em grandes
            empresas



                                         Globalcode – Open4education
CONCLUSÃO




            Globalcode – Open4education
Conclusão
  • Saber definir qual é o SGDB Free Usar

  • Não ser Xiita em um SGDB, quando é low-
    cost é interessante a integração de vários
    SGDBs

  • Estar atento as novas features

  • Planejar bem durante a fase de projeto



                                         Globalcode – Open4education

Weitere ähnliche Inhalte

Ähnlich wie SGDB OpenSource/Free vs Mercado

Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumMaximiliano Alves
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Renato Groff
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...tdc-globalcode
 
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Sergio Lima
 
InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time Umbler
 
Tdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptTdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptMarcos Artigas
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Renato Groff
 
TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dadostdc-globalcode
 
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQLVoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQLLuiz Henrique Zambom Santana
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...tdc-globalcode
 
Rails API com GraphQL
Rails API com GraphQLRails API com GraphQL
Rails API com GraphQLSergio Lima
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Renato Groff
 
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e FuturoUso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e Futuroassertimarilia
 
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...
TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...tdc-globalcode
 
Data Vault - TDC 2020 Porto Alegre
Data Vault - TDC 2020 Porto AlegreData Vault - TDC 2020 Porto Alegre
Data Vault - TDC 2020 Porto AlegreSergio Lima
 

Ähnlich wie SGDB OpenSource/Free vs Mercado (20)

Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
 
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
 
InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time
 
Tdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptTdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.ppt
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
 
TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dados
 
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQLVoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
 
Rails API com GraphQL
Rails API com GraphQLRails API com GraphQL
Rails API com GraphQL
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
Tdc2015
Tdc2015Tdc2015
Tdc2015
 
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e FuturoUso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
 
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...
TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...TDC2017 | São Paulo - Trilha Rad: Delphi C++  How we figured out we had a SRE...
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...
 
Data Vault - TDC 2020 Porto Alegre
Data Vault - TDC 2020 Porto AlegreData Vault - TDC 2020 Porto Alegre
Data Vault - TDC 2020 Porto Alegre
 

SGDB OpenSource/Free vs Mercado

  • 1. SGDB OpenSource/Free vs Mercado Trilha – Banco de Dados Carlos Eduardo Smanioto Globalcode – Open4education
  • 2. AVISO Globalcode – Open4education
  • 3. Agenda Who I am  O Por que do tema O que temos hoje ? Desafios Desafios Disponibilidade Escalabilidade Auditoria Gerenciamento Suporte Técnico Arquitetura é tudo Mistura de Tecnologias – NoSQL + SQL Planejamento, algo que sempre esquecem O Mercado para os futuros DBAs Free/Open Mercado MYSQL Mercardo PostgreSQL Globalcode – Open4education
  • 4. NERD Report How I am  carlos.smanioto@datapower.com.br •NERD confesso •Consultor PostgreSQL/MySQL – Data Power  •DBA Senior na Buscapé Company •Diversos artigos escrito na SQL Magazine •Instrutor Oracle University – MySQL •Consultor Linux desde os 17 anos Globalcode – Open4education
  • 5. Porque do tema Globalcode – Open4education
  • 6. Porque do tema 2.Guerra entre DBAs de produtos comerciais x Free 3.O que o mercado AINDA não conhece o potencial REAL sobre os SGDBs FREE/Open 4.Entender até onde pode se chegar com baixo custo. Globalcode – Open4education
  • 7. O Que temos hoje Globalcode – Open4education
  • 8. O Que temos hoje - PGSQL 26 anos de história  1986  Berkeley com $$$ da DARPA, AROP (Miltar)  1995  Postgres95  Adicionado o SQL  Liberado na WEB  1996  Nome PostgreSQL Globalcode – Open4education
  • 9. O Que temos hoje - PGSQL Principais Features • SQL: Window Function e Recursive (v 8.4 - 2009) • Trabalha com herança de tabelas • Archive, HotStandBy e Streaming Replication • Suporte a Store Procedure em Java, Perl, C • Trabalho com o conceito de ROLEs Group, Schema, Database e TableSpace Globalcode – Open4education
  • 10. O Que temos hoje - PGSQL Sem Window Function SELECT f2.departamento, f2.nome, f2.salario, ( SELECT avg(f1.salario) FROM funcionario f1 WHERE f1.departamento = f2.departamento GROUP BY f1.departamento ) as media FROM funcionario f2 ORDER BY f2.departamento; (cost=2675.12..2675.65 rows=210 width=352) Globalcode – Open4education
  • 11. O Que temos hoje - PGSQL Com Window Function SELECT departamento, nome, salario, avg(salario) OVER (PARTITION BY departamento) AS media FROM funcionario ORDER BY departamento; (cost=20.20..23.87 rows=210 width=352) Globalcode – Open4education
  • 12. O Que temos hoje - PGSQL Resultado da query Globalcode – Open4education
  • 13. O Que temos hoje - PGSQL Principais Features 9.2 • Replicação Sincrona • Suporte a JSON, permitindo integração hibrida DBs que falam JSON com o NoSQL MongoDB Globalcode – Open4education
  • 14. O Que temos hoje - PGSQL Globalcode – Open4education
  • 15. O Que temos hoje - MySQL 33 anos de história  1979 – Nasce a TcX Consultoria  Michael Monty desenvolve o UNIREG  1994  TcX decide colocar no UNIREG o SQL  Uniu forças com o mSQL de David Hugles  Arquitetura via API  1995  Nasce o MySQL e a empresa MySQL-AB  Nome: Arquivos com prefixo my é histórico  Nome: A filha de Monty tambem se chama My  2008  Sun adquire por aproximadamente $ 1 bilhão  2009  Oracle adquire a Sun aproxidamente $ 7.4 bilhões Globalcode – Open4education
  • 16. O Que temos hoje - MySQL Principais Features • Suporte a vários Store Engines • GAMBETA MARAVILHOSA: INSERT IGNORE • Replicação extremamente Flexível Globalcode – Open4education
  • 17. O Que temos hoje - MySQL Principais Features – 5.6 • NotOnlySQL com MemCache • Replicação • Time-Delayed Replication • Multi-Thread • Para SQL_Thread e IO_Thread Globalcode – Open4education
  • 18. O Que temos hoje - MySQL Globalcode – Open4education
  • 19. Desafios Globalcode – Open4education
  • 20. Desafios •Desafio 1 - Disponibilidade •Desafio 2 – Escalabilidade •Desafio 3 – Auditoria •Desafio 4 – Gerenciamento •Desafio 5 – Profissionais Qualificados Globalcode – Open4education
  • 21. Desafio - Disponibilidade Globalcode – Open4education
  • 22. Desafios - Disponibilidade • MySQL • Master – Slave - Balancamento de Carga Read Only • Log transacional - BinLog • PostgreSQL • Master – Slave Sincrono • Slony • Hot Standby • Archive Globalcode – Open4education
  • 23. Desafios - Disponibilidade PostgreSQL – Slony (Triger Repliction) Globalcode – Open4education
  • 24. Desafios - Escalabilidade Globalcode – Open4education
  • 25. Desafios - Escalabilidade • MySQL • MySQL Cluster – 16,6 milhões de querys segundo. • Master – Master – Balancamento de Carga RW Globalcode – Open4education
  • 26. Desafios - Escalabilidade MySQL Cluster Globalcode – Open4education
  • 27. Desafios - Escalabilidade MySQL Multi-Master /etc/my.cnf do NODE B auto_increment_increment = 10 auto_increment_offset = 2 Globalcode – Open4education
  • 28. Desafios - Escalabilidade MySQL Multi-Master Circular /etc/my.cnf do NODE A auto_increment_increment = 10 auto_increment_offset = 1 /etc/my.cnf do NODE B auto_increment_increment = 10 auto_increment_offset = 2 /etc/my.cnf do NODE C auto_increment_increment = 10 auto_increment_offset = 3 /etc/my.cnf do NODE D auto_increment_increment = 10 auto_increment_offset = 4 Globalcode – Open4education
  • 29. Desafios - Escalabilidade MySQL Multi-Master Circular SELECT após replicação [node A] [node B] +----+------+ +----+------+ +----+------+ | id | c | | id | c | | id | c | +----+------+ +----+------+ +----+------+ | 1 | a | | 2 | b | | 1 | a | | 11 | aa | | 12 | bb | | 11 | aa | | 21 | aaa | | 22 | bbb | | 21 | aaa | +----+------+ +----+------+ | 4 | d | | 14 | dd | | 24 | ddd | [node C] [node D] | 3 | c | +----+------+ +----+------+ | 13 | cc | | id | c | | id | c | | 23 | ccc | +----+------+ +----+------+ | 2 | b | | 3 | c | | 4 | d | | 12 | bb | | 13 | cc | | 14 | dd | | 22 | bbb | | 23 | ccc | | 24 | ddd | +----+------+ +----+------+ +----+------+ Globalcode – Open4education
  • 30. Desafios - Escalabilidade • PostgreSQL •PostgreSQL-XC •PgPOOL •PGCluster Globalcode – Open4education
  • 31. Desafios - Escalabilidade PostgreS-XC APP Coordinator PostgreSQL 9.1 GTM Data Node Data Node Globalcode – Open4education
  • 32. Desafios - Escalabilidade PostgreS-XC Coordinator lida com cada instruções SQL a partir de aplicações, determina que Datanode ir, e se Coordinator decompõe em locais instruções SQL para cada Datanode GTM(Global Transaction Management) é GTM responsável pela propriedade ACID - . Datanode armazena dados nas tabelas e lidar com instruções SQL localmente Data Node Globalcode – Open4education
  • 33. Desafios - Escalabilidade • Pool • Replicação PgPool • Load Balance Globalcode – Open4education
  • 34. Desafios - Auditoria • MySQL • LOG das ações • Make do it - POG’s POWER • http://dev.mysql.com/doc/refman/5.5/en/writing-audit- plugins.html • Mcaffee Audit Plugin >= 5.0 • Road Map da Oracle – Audit Plugin + Oracle Firewall, etc • long_slow_query = 0 seconds • Trilha de auditoria • Gravar o histórico de uma alteração no ambiente • By Trigger • By Aplicação Globalcode – Open4education
  • 35. Desafios - Auditoria • PostgreSQL • Log das ações (Connect Fail, DDL e DML, Disconnect) • Configuração no postgresql.conf • Trilha de Auditoria (Alteração nos dados) • PgFoundry - audittrail2 • Code.google - pgtrail • By Trigger • By Aplicação Globalcode – Open4education
  • 36. Desafios - Gerenciamento • MySQL • Performance Analyze • Ferramentas Pagas • Spotlight da Quest Software • MonYog • Oracle Enterprise Monitor (Free na versão MySQL Enterprise) • Open/FreeWare • RacherHacker – MySQL Tuner • InnoTOP • Hackmysql.com – MySQLReport Globalcode – Open4education
  • 37. Desafios - Gerenciamento • MySQL • Administração • Ferramentas Pagas • SQLYog • MySQL WorkBench Enterprise (Free na versão MySQL Enterprise) • Quest Software – Toad for MySQL • Open/FreeWare • MySQL WorkBench Community • Quest Software – Toad for MySQL Communit • PHPMyAdmin Globalcode – Open4education
  • 38. Desafios - Gerenciamento • PostgreSQL • Performance Analyze • Ferramentas Pagas • PostgreSQL Enterprise Manager • Open/FreeWare • PGSnap (OraSnap) • NO BRAÇO! • vmstats, etc... • http://wiki.postgresql.org/wiki/ Performance_Analysis_Tools • Pg_log verificando frequencia de checkpoint Globalcode – Open4education
  • 39. Desafios - Gerenciamento • PostgreSQL • Administração • Ferramentas Pagas • EMS SQL Manager for PostgreSQL • Open/FreeWare • TeamPostgreSQL WebManager • PHPPgAdmin • PGADMIN III – Tradicional Globalcode – Open4education
  • 40. Desafios - Gerenciamento Team PostgreSQL Web Interface Globalcode – Open4education
  • 41. Arquitetura é tudo Globalcode – Open4education
  • 42. Arquitetura é tudo Onde usar o MySQL ? •Foco em WEB faz frente ao SQL Server Por que ? •Diferentes Store Engines •Simples Onde usar o PostgreSQL • Foco em Data warehouse faz frente ao DB2/Oracle principalmente por ser muito similar Por que ? • Permite Herança de tabelas • Consultas Recursivas e Window Function Globalcode – Open4education
  • 43. Desafios - Suporte Globalcode – Open4education
  • 44. Desafios - Suporte • PostgreSQL • Comunidade Forte • postgresql.org • Planet PostgreSQL • http://planet.postgresql.org/ • Forte Documentação • http://www.postgresql.org/docs/ • Bons Livros • Consultores/Empresas Como Data Power and Me :D Globalcode – Open4education
  • 45. Desafios - Suporte • MySQL • Planet MySQL (Agora em PT-BR) • http://pt.planet.mysql.com/ • ORACLE dando retaguarda • Bons Livros • Consultores/Empresas • Como Data Power and Me :D • ORACLE Brasil Globalcode – Open4education
  • 46. Mercado para os DBAs Globalcode – Open4education
  • 47. Mercado para os DBAs • MySQL • ORACLE com planos ambiciosos • Divulgação do SGDB como sendo rápido e estável • Nova Versão com Features interessantes para concentrar Desenvolvedores NoSQL e SQL no mesmo produto – Not Only SQL através do MemCache Protocol integrado com o Store Engine InnoDB • Plano de Certificação através da Oracle Univerity Globalcode – Open4education
  • 48. Mercado para os DBAs • MySQL • Administração inicial bastante simples mas a falta de conhecimento pode comprometer os futuros ajustes de performance (Default – 1 unico datafile) • Baixíssima manutenção • Tuning bem simples de aplicar Globalcode – Open4education
  • 49. Mercado para os DBAs • PostgreSQL • SGDB Open Features Expressívas • Mais próximo do Oracle Database tanto para developers quanto para DBAs • Muito robusto para Data Warehouse • A cada versão novidades cruciáveis para o mercado como Replicação SINCRONA, • Muito forte na região SUL do país • Ganhando cada vez mais adeptos em grandes empresas Globalcode – Open4education
  • 50. CONCLUSÃO Globalcode – Open4education
  • 51. Conclusão • Saber definir qual é o SGDB Free Usar • Não ser Xiita em um SGDB, quando é low- cost é interessante a integração de vários SGDBs • Estar atento as novas features • Planejar bem durante a fase de projeto Globalcode – Open4education