paint-brush
Cómo configurar un servidor de base de datos dedicado para análisispor@alejandroduarte
1,431 lecturas
1,431 lecturas

Cómo configurar un servidor de base de datos dedicado para análisis

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

Demasiado Largo; Para Leer

Si tiene una computadora portátil o una máquina vieja tirada y acumulando polvo, es posible que desee reutilizarla. ¿Suena bien una base de datos SQL rápida para el procesamiento analítico (por ejemplo, para generar informes ad-hoc)? Si es así, ¡sigue leyendo! En este artículo, le mostraré cómo desempolvar una computadora portátil vieja y reutilizarla como un servidor de base de datos dedicado para análisis además de Rocky Linux y Docker.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Cómo configurar un servidor de base de datos dedicado para análisis
Alejandro Duarte HackerNoon profile picture


Si tiene una computadora portátil o una máquina vieja tirada y acumulando polvo, es posible que desee reutilizarla. ¿Suena bien una base de datos SQL rápida para el procesamiento analítico (por ejemplo, para generar informes ad-hoc)? Si es así, ¡sigue leyendo!


En este artículo, le mostraré cómo desempolvar una computadora portátil vieja y reutilizarla como un servidor de base de datos dedicado para análisis además de Rocky Linux y Docker.


Usé este Lenovo Thinkpad T440s con un procesador Intel® Core™ i7, DDR3L-SDRAM de 8 GB y SSD de 256 GB:



¿Por qué Rocky Linux y Docker?

Rocky Linux es la continuación de CentOS , un sistema operativo empresarial de código abierto compatible con Red Hat Enterprise Linux (RHEL).


Ofrece buenas características de seguridad y administración, y dado que está basado en RHEL, tiene una comunidad amplia y activa a su alrededor.


Docker es un software de virtualización que se ejecuta sobre sistemas Linux sin virtualizar hardware. Esto optimiza los recursos disponibles manteniendo las ventajas de los entornos aislados.


Si lo prefiere, puede configurar Docker en su máquina habitual, pero si tiene una computadora portátil vieja con el hardware mínimo necesario para ejecutar Rocky Linux, le sugiero que la aproveche.

Antes de que empieces

Antes de comenzar, asegúrese de hacer una copia de seguridad de los archivos importantes que pueda tener en su máquina anterior.


Use herramientas en línea como Google Drive, DropBox o discos duros externos. Asigne 1 o 2 horas exclusivamente a esta tarea. Explore el sistema de archivos y evite sorpresas desagradables más adelante.

Instalación de RockyLinux

No entraré en detalles sobre cómo instalar Rocky Linux. Consulta la documentación oficial si quieres ver instrucciones detalladas.


Sin embargo, asegúrese de configurar una conexión Wi-Fi con DHCP (o Ethernet si lo prefiere) en la GUI de instalación.


No necesita crear usuarios adicionales, root es suficiente. Además, no instale el servidor con la opción GUI . En su lugar, recomiendo seleccionar Sistema operativo personalizado y agregar el siguiente software:


  • Gestión sin cabeza
  • Herramientas de seguridad
  • Herramientas de sistema



Siga las instrucciones de instalación para completar el proceso.

Configuración de una conexión Wi-Fi con IP estática


Si configuró una conexión Wi-Fi durante la instalación, deberá realizar algunos pasos adicionales.


  1. Conecte la máquina a su enrutador mediante un cable Ethernet .


  2. Ejecute encli connection y tome nota del nombre de la conexión Ethernet. En mi caso, fue enp0s25 .


  3. Habilite la conexión ejecutando nmcli connection up enp0s25 (utilice el nombre de su conexión).


  4. Instale la utilidad Wi-Fi que falta ejecutando yum install NetworkManager-wifi

  5. Desconecte el cable Ethernet.


  6. Reinicie la máquina ejecutando reboot .


  7. Una vez que la máquina se reinicie, inicie sesión como root y verifique que la conexión Wi-Fi funcione ejecutando ping google.com .


  8. Instale la interfaz de usuario de administración de red mediante dnf install NetworkManager-tui .


  9. Ejecute nmtui y edite la conexión Wi-Fi para usar una IP estática manual. Configuré la dirección del servidor como 192.168.1.200/24 y agregué la puerta de enlace y los servidores DNS que obtuve de otra máquina (macOS) en la misma red usando ifconfig . Use ip addr en Linux o ipconfig en Windows. Aquí hay un ejemplo:




Evitar que la computadora portátil se suspenda cuando la tapa está cerrada

Para evitar que la computadora portátil entre automáticamente en modo suspendido cuando se cierra la tapa, edite el archivo /etc/systemd/logind.conf y configure las siguientes propiedades (puede usar vi o instalar GNU nano usando yum install nano ):


 [Login] HandleLidSwitch=lock LidSwitchIgnoreInhibited=no


Para conservar los cambios anteriores al reiniciar, ejecute systemctl restart systemd-logind.service .


Vuelva a verificar que todo funcione reiniciando su máquina.

Conexión al servidor usando SSH

En este punto, puede pasar a su máquina del día a día y conectarse al nuevo servidor mediante SSH:


 ssh [email protected]


También puede asignar un nombre de host en su máquina cliente. Edite el archivo /etc/hosts (máquinas similares a Unix) o el archivo c:\Windows\System32\drivers\etc\hosts (en Windows) y agregue la siguiente línea (utilice el nombre que desee pero especifique la dirección IP estática que configuró antes):


 192.168.1.200 pickanyname.local


Tendrá que hacer esto en cada máquina que use para conectarse al servidor si desea usar el nombre de host en lugar de la dirección IP. Después de esto, podrá conectarse al servidor de la siguiente manera:


 ssh [email protected]

Instalación de Docker

Después de conectarse al servidor a través de SSH, instale docker ejecutando los siguientes 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 que el servicio Docker se inicie automáticamente cuando se reinicia la máquina, ejecute estos comandos:


 systemctl enable docker.service systemctl start docker.service

Instalación de la base de datos

Con Docker listo, es fácil instalar software mientras mantiene su servidor ordenado. El software se ejecuta en entornos aislados llamados contenedores . Puede crear contenedores a partir de imágenes personalizadas o listas para usar.


Una imagen es una plantilla con instrucciones sobre cómo crear un contenedor. Puede iniciar, reiniciar, detener e incluso eliminar contenedores cuando ya no los quiera en su sistema. Todo esto sin dejar basura en el sistema operativo de tu host (Rocky Linux, en este artículo).


Una base de datos es un buen candidato para ejecutarse en un entorno aislado. Ejecute el siguiente comando para iniciar un contenedor que ejecute un servidor MariaDB con el motor ColumnStore incluido:


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


Esto descarga la imagen MariaDB/columnstore de Docker Hub (un registro público de imágenes de Docker mantenido por Docker Inc.).


Después de descargar la imagen, Docker crea un nuevo contenedor con el nombre MariaDB-cs y procede a iniciar el contenedor, iniciando efectivamente el servidor de la base de datos MariaDB en el puerto 3306.


El comando también expone el puerto al mundo exterior para que pueda conectarse a la base de datos, por ejemplo, desde su máquina de desarrollo.

Preparación de una base de datos de demostración para análisis

Lo que acaba de instalar le permite usar el motor de almacenamiento MariaDB ColumnStore cuando crea una tabla. Por ejemplo:


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


Esto le dice a la base de datos MariaDB que use el motor ColumnStore para almacenar los datos en forma de columnas. Este motor está diseñado para escalar big data y puede procesar petabytes de datos, lo que lo libera de la definición y el mantenimiento de índices. Esto lo hace ideal para consultas ad-hoc en conjuntos de datos muy grandes.


Todavía puede usar el motor InnoDB predeterminado adecuado para cargas de trabajo transaccionales cuando sea necesario. Simplemente omita la opción ENGINE . Puede unir tablas que usan ColumnStore con tablas que usan InnoDB en una sola instrucción SQL.


También puede usar la replicación entre un nodo transaccional (InnoDB) y uno analítico (ColumnStore) para habilitar cargas de trabajo híbridas de procesamiento transaccional-analítico (HTAP).


La mejor manera de experimentar con ColumnStore es probándolo con un conjunto de datos existente.


Consulte este repositorio de Github que carga 5 millones de filas en una tabla que puede usar para ejecutar consultas analíticas y ver por sí mismo el rendimiento de ColumnStore.