paint-brush
Como configurar um servidor de banco de dados dedicado para análisespor@alejandroduarte
1,431 leituras
1,431 leituras

Como configurar um servidor de banco de dados dedicado para análises

por Alejandro Duarte2022/05/18
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

Se acontecer de você ter um laptop ou máquina velha por aí e acumulando poeira, você pode querer reaproveitá-la. Um banco de dados SQL rápido para processamento analítico (por exemplo, para gerar relatórios ad-hoc) soa bem? Se sim, continue lendo! Neste artigo, mostrarei como tirar o pó de um laptop antigo e reutilizá-lo como um servidor de banco de dados dedicado para análises sobre Rocky Linux e Docker.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Como configurar um servidor de banco de dados dedicado para análises
Alejandro Duarte HackerNoon profile picture


Se acontecer de você ter um laptop ou máquina velha por aí e acumulando poeira, você pode querer reaproveitá-la. Um banco de dados SQL rápido para processamento analítico (por exemplo, para gerar relatórios ad-hoc) soa bem? Se sim, continue lendo!


Neste artigo, mostrarei como tirar o pó de um laptop antigo e reutilizá-lo como um servidor de banco de dados dedicado para análises sobre Rocky Linux e Docker.


Usei este Lenovo Thinkpad T440s com processador Intel® Core™ i7, DDR3L-SDRAM de 8 GB e SSD de 256 GB:



Por que Rocky Linux e Docker?

O Rocky Linux é a continuação do CentOS , um sistema operacional corporativo de código aberto compatível com o Red Hat Enterprise Linux (RHEL).


Ele oferece bons recursos de segurança e administração e, como é baseado no RHEL, possui uma comunidade vasta e ativa ao seu redor.


Docker é um software de virtualização executado em sistemas Linux sem virtualizar o hardware. Isso otimiza os recursos disponíveis, mantendo as vantagens dos ambientes isolados.


Você pode configurar o Docker em sua máquina comum do dia a dia, se preferir, mas se tiver um laptop antigo com o hardware mínimo necessário para executar o Rocky Linux, sugiro aproveitá-lo.

Antes que você comece

Antes de começar, certifique-se de fazer backup de todos os arquivos importantes que você possa ter em sua máquina antiga.


Use ferramentas online como Google Drive, DropBox ou discos rígidos externos. Atribua 1 ou 2 horas exclusivamente a esta tarefa. Explore o sistema de arquivos e evite surpresas desagradáveis posteriormente.

Instalando Rock Linux

Não vou entrar em detalhes sobre como instalar o Rocky Linux. Consulte a documentação oficial se quiser ver instruções detalhadas.


No entanto, certifique-se de configurar uma conexão Wi-Fi com DHCP (ou Ethernet, se preferir) na GUI de instalação.


Você não precisa criar usuários adicionais, o root é suficiente. Além disso, não instale o servidor com a opção GUI . Em vez disso, recomendo selecionar Sistema operacional personalizado e adicionar o seguinte software:


  • Gerenciamento Headless
  • Ferramentas de segurança
  • Ferramentas do sistema



Siga as instruções de instalação para concluir o processo.

Configurando uma conexão Wi-Fi com IP estático


Se você configurou uma conexão Wi-Fi durante a instalação, terá que executar algumas etapas adicionais.


  1. Conecte a máquina ao seu roteador usando um cabo Ethernet .


  2. Execute encli connection e anote o nome da conexão Ethernet. No meu caso, foi enp0s25 .


  3. Habilite a conexão executando nmcli connection up enp0s25 (use o nome da sua conexão).


  4. Instale o utilitário Wi-Fi ausente executando yum install NetworkManager-wifi

  5. Desconecte o cabo Ethernet.


  6. Reinicie a máquina executando reboot .


  7. Depois que a máquina reiniciar, faça o login como root e verifique se a conexão Wi-Fi está funcionando executando ping google.com .


  8. Instale a IU de gerenciamento de rede usando dnf install NetworkManager-tui .


  9. Execute o nmtui e edite a conexão Wi-Fi para usar um IP estático manual. Eu defini o endereço do servidor como 192.168.1.200/24 e adicionei o gateway e os servidores DNS que obtive de outra máquina (macOS) na mesma rede usando ifconfig . Use ip addr no Linux ou ipconfig no Windows. Aqui está um exemplo:




Evitando que o laptop fique suspenso quando a tampa está fechada

Para evitar que o laptop entre automaticamente em modo suspenso quando a tampa é fechada, edite o arquivo /etc/systemd/logind.conf e defina as seguintes propriedades (você pode usar o vi ou instalar o GNU nano usando yum install nano ):


 [Login] HandleLidSwitch=lock LidSwitchIgnoreInhibited=no


Para preservar as alterações anteriores na reinicialização, execute systemctl restart systemd-logind.service .


Verifique se tudo funciona reiniciando sua máquina.

Conectando ao servidor usando SSH

Neste ponto, você pode passar para sua máquina do dia-a-dia e conectar-se ao novo servidor usando SSH:


 ssh [email protected]


Você também pode atribuir um nome de host em sua máquina cliente. Edite o arquivo /etc/hosts (máquinas do tipo Unix) ou o arquivo c:\Windows\System32\drivers\etc\hosts (no Windows) e adicione a seguinte linha (use qualquer nome que desejar, mas especifique o endereço IP estático que você configurou antes):


 192.168.1.200 pickanyname.local


Você terá que fazer isso em todas as máquinas que usar para se conectar ao servidor se quiser usar o nome do host em vez do endereço IP. Depois disso, você poderá se conectar ao servidor da seguinte maneira:


 ssh [email protected]

Instalando o Docker

Após conectar-se ao servidor via SSH, instale o docker executando os seguintes comandos:


 yum install -y yum-utils yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce \ docker-ce-cli \ containerd.io \ docker-compose-plugin


Para fazer com que o serviço Docker seja iniciado automaticamente quando a máquina for reiniciada, execute estes comandos:


 systemctl enable docker.service systemctl start docker.service

Instalando o banco de dados

Com o Docker pronto, é fácil instalar software enquanto mantém seu servidor organizado. O software roda em ambientes isolados chamados containers . Você pode criar contêineres a partir de imagens personalizadas ou prontas para uso.


Uma imagem é um modelo com instruções sobre como criar um contêiner. Você pode iniciar, reiniciar, parar e até excluir contêineres quando não os quiser mais em seu sistema. Tudo isso sem deixar lixo no sistema operacional do seu host (Rocky Linux, neste artigo).


Um banco de dados é um bom candidato para ser executado em um ambiente isolado. Execute o seguinte comando para iniciar um contêiner que executa um servidor MariaDB com o mecanismo ColumnStore incluído:


 docker run --detach \ --name mariadb-cs \ --restart unless-stopped \ --env MARIADB_ROOT_PASSWORD='password' \ --publish '3306:3306/tcp' \ --expose '3306' \ mariadb/columnstore


Isso baixa a imagem MariaDB/columnstore do Docker Hub (um registro público de imagens do Docker mantido pela Docker Inc.).


Depois de baixar a imagem, o Docker cria um novo contêiner com o nome MariaDB-cs e inicia o contêiner, iniciando efetivamente o servidor de banco de dados MariaDB na porta 3306.


O comando também expõe a porta para o mundo externo para que você possa se conectar ao banco de dados, por exemplo, de sua máquina de desenvolvimento.

Preparando um banco de dados de demonstração para análise

O que você acabou de instalar permite usar o mecanismo de armazenamento MariaDB ColumnStore ao criar uma tabela. Por exemplo:


 CREATE TABLE some_table( ... column definitions here ... ) ENGINE=ColumnStore;


Isso diz ao banco de dados MariaDB para usar o mecanismo ColumnStore para armazenar os dados de forma colunar. Esse mecanismo foi projetado para dimensionamento de big data e pode processar petabytes de dados, liberando você da definição e manutenção de índices. Isso o torna ideal para consultas ad hoc em conjuntos de dados muito grandes.


Você ainda pode usar o mecanismo InnoDB padrão adequado para cargas de trabalho transacionais quando necessário. Basta omitir a opção ENGINE . Você pode unir tabelas que usam ColumnStore com tabelas que usam InnoDB em uma única instrução SQL.


Você também pode usar a replicação entre um nó transacional (InnoDB) e um nó analítico (ColumnStore) para habilitar cargas de trabalho híbridas transacionais-analíticas (HTAP).


A melhor maneira de experimentar o ColumnStore é testá-lo usando um conjunto de dados existente.


Confira este repositório do Github que carrega 5 milhões de linhas em uma tabela que você pode usar para executar consultas analíticas e veja você mesmo o desempenho do ColumnStore.