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
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 , 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 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.
Conecte a máquina ao seu roteador usando um cabo .
Execute encli connection e anote o nome da conexão Ethernet. No meu caso, foi enp0s25 .
Habilite a conexão executando nmcli connection up enp0s25 (use o nome da sua conexão).
Instale o utilitário Wi-Fi ausente executando yum install NetworkManager-wifi
Desconecte o cabo Ethernet.
Reinicie a máquina executando reboot .
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 .
Instale a IU de gerenciamento de rede usando dnf install NetworkManager-tui .
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 ):
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:
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:
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 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.