Apresentando o MongoDB

Hoje gostaria de apresentar o banco de dados TiDB, criado e mantido pela PingCAP. Apesar deste banco de dados ser extremamente complexo e com vários outros módulos e funcionalidades este artigo limita-se apenas a uma introdução.

Pouco conhecido no ocidente o TiDB é muito utilizado na china e em países asiáticos. Sendo extremamente popular em startups, instituições financeiras e e-commerce.

O nome TiDB vêm de Titanium Database, e este é um banco de dados distribuído com capacidade de executar queries analíticas e processamento online num mesmo cluster. TiDB é compatível com o protocolo MySQL e para qualquer aplicação conectada este banco de dados ele não é diferente de um MySQL comum – Mas não se engane, este banco de dados não é MySQL e não compartilha nenhum código com o MySQL.

Se você está buscando um banco de dados que possa ser altamente distribuído, com capacidade de replicação, com garantia de consistência e com capacidade de processamento analítico integrada, TiDB pode ser uma das melhores soluções.

Sobre a arquitetura:

Se você já trabalhou com MongoDB, ou conhece algum outro banco de dados distribuído com layers a ideia é parecida. 

Vamos aos componentes:

TiDB – Ponto de entrada para os clientes, funciona de forma similar com um proxy/router, ele se comunica com todos os outros TiKV e com o PD para saber onde encontrar os dados.
 
Este processo é também o responsável por executar algoritmos de join, sort, group.. etc. Este processo pode escolher entre enviar uma query para o TiKV ou TiFlash (column store) dependendo do que seja necessário processar. 
 
PD – Placement Drive – Este software gerencia onde os dados serão salvos nos TiKV e também atua migrando e distribuindo os dados afim de manter uma distribuição dos dados entre os nós.
 
TiKV – Local onde os dados são salvos, o TiDB usa RocksDB como storage engine. Todos os dados são salvos em um storage engine LSM de key-value.
 
TiFlash – Column Store database – Similar ao Redshift. É utilizado para Analytics.
 
O mínimo requerido para termos um cluster de testes funcional é:
 
1 TIKV,  1 PD, 1 TiDB – obviamente nessa configuração o ambiente teria 0 alta disponibilidade.
 
 
Para um ambiente de produção é necessário no mínimo 3 instâncias de cada um dos processos pois em caso de falha o cluster seria capaz gerenciar a falha e manter a alta disponibilidade. 
 
Quanto maior a base de dados, mais TiKV devem ser adicionados, o mesmo serve para processos do TiDB.
 
O processo do TiFlash é somente necessário quando se pretende usar Analytics. Ainda falando do TiFlash: este processo é capaz de replicar dados de tabelas especificas no TiKV’s de forma automática não sendo necessário nenhum ETL, com um tempo de replicação na casa de segundos ou mesmo milissegundos. Isso garante a capacidade de se executar processos analíticos sem onerar os hosts de operação.
 
Iniciando um cluster de teste numa máquina Linux:
 
Utilize o TiUP: ferramenta de deploy que a própria PingCAP disponibiliza. 
Passo a passo:
 
1:  Instalar o TiUP (https://github.com/pingcap/tiup): 
 
    $curl –proto ‘=https’ –tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
 
2:  Recarregue sua sessão no shell:
 
    $ source /home/adamo/.zshrc
 
3: Iniciar os servidores (isso irá lançar 1 cluster para desenvolvimento):
 
    $ tiup playground 
 
Ao final você verá uma mensagem similar a:
 
🎉 TiDB Playground Cluster is started, enjoy!
 
Connect TiDB:    mysql –comments –host 127.0.0.1 –port 4000 -u root
 
TiDB Dashboard:  http://127.0.0.1:2379/dashboard
 
Grafana:        http://127.0.0.1:3000
 
 Depois disso, conecte-se ao banco de dados usando o seguinte comando:
 
      $ mysql –comments –host 127.0.0.1 –port 4000 -u root
 
Caso queira explorar o Grafana usuário e senha são admin/admin por lá você verá vários dashboards com informações sobre o TiKV, TiDB, PD… etc.
 
Para parar o cluster simplemente use CRTL+C no terminal que foi usado o TiUp.
 
Devo mencionar que o TiDB foi desenvolvido para gerenciar grandes volume dados, sendo ideal para ambientes como múltiplos terabytes de dados. Embora você possa utilizar para gerenciar um banco de dados pequeno seria mais ou menos como utilizar um carro de fórmula 1 para buscar pão – funciona, mas não parece mto certo.
 
Para mais informações visite PingCAP.com
 
Abraços.

 

Copyright 2024 Tonete Cloud. Todos os direitos reservados

plugins premium WordPress