Как настроить выделенный сервер базы данных для аналитики

Как настроить выделенный сервер базы данных для аналитики

19 мая 2022 г.

Если у вас случайно завалялся старый ноутбук или компьютер, который собирает пыль, возможно, вы захотите перепрофилировать его. Подходит ли быстрая база данных SQL для аналитической обработки (например, для создания специальных отчетов)? Если это так, продолжайте читать!


В этой статье я покажу вам, как стряхнуть пыль со старого ноутбука и перепрофилировать его в качестве выделенного сервера базы данных для аналитики поверх Rocky Linux и Docker.


Я использовал этот Lenovo Thinkpad T440s с процессором Intel® Core™ i7, 8 ГБ DDR3L-SDRAM и 256 ГБ SSD:


Почему Rocky Linux и Docker?


Rocky Linux является продолжением [CentOS] (https://www.centos.org), корпоративной операционной системы с открытым исходным кодом, совместимой с Red Hat Enterprise Linux (RHEL).


Он предлагает хорошие функции безопасности и администрирования, а поскольку он основан на RHEL, вокруг него существует обширное и активное сообщество.


Docker — это программное обеспечение для виртуализации, которое работает поверх систем Linux без виртуализирующего оборудования. Это оптимизирует доступные ресурсы, сохраняя при этом преимущества изолированных сред.


Вы можете установить Docker на свой обычный компьютер, если хотите, но если у вас есть старый ноутбук с минимальным аппаратным обеспечением, необходимым для запуска Rocky Linux, я предлагаю воспользоваться им.


Прежде чем ты начнешь


Прежде чем начать, обязательно сделайте резервную копию всех важных файлов, которые могут быть на вашем старом компьютере.


Используйте онлайн-инструменты, такие как Google Drive, DropBox или внешние жесткие диски. Выделите 1 или 2 часа исключительно на эту задачу. Исследуйте файловую систему и избегайте неприятных сюрпризов в дальнейшем.


Установка Rocky Linux


Я не буду вдаваться в подробности того, как установить Rocky Linux. Обратитесь к официальной документации, если вы хотите увидеть подробные инструкции.


Однако не забудьте настроить соединение Wi-Fi с DHCP (или Ethernet, если хотите) в графическом интерфейсе установки.


Вам не нужно создавать дополнительных пользователей, достаточно root. Кроме того, не устанавливайте Сервер с графическим интерфейсом. Вместо этого я рекомендую выбрать Пользовательскую операционную систему и добавить следующее программное обеспечение:


  • Безголовое управление

  • Инструменты безопасности

  • Системные инструменты


Следуйте инструкциям по установке, чтобы завершить процесс.


Настройка подключения Wi-Fi со статическим IP


Если вы настроили соединение Wi-Fi во время установки, вам придется выполнить некоторые дополнительные действия.


  1. Подключите машину к маршрутизатору с помощью кабеля Ethernet.

  1. Запустите encli connection и запишите имя соединения Ethernet. В моем случае это был enp0s25.

  1. Включите соединение, запустив nmcli connection up enp0s25 (используйте имя вашего соединения).

  1. Установите отсутствующую утилиту Wi-Fi, запустив yum install NetworkManager-wifi

  1. Отсоедините кабель Ethernet.

  1. Перезагрузите машину, запустив reboot.

  1. После перезагрузки компьютера войдите в систему как root и убедитесь, что соединение Wi-Fi работает, запустив ping google.com.

  1. Установите пользовательский интерфейс управления сетью с помощью dnf install NetworkManager-tui.

  1. Запустите nmtui и отредактируйте соединение Wi-Fi, чтобы использовать статический IP-адрес вручную. Я установил адрес сервера как 192.168.1.200/24 и добавил шлюз и DNS-серверы, которые я получил от другой машины (macOS) в той же сети, используя ifconfig. Используйте ip addr в Linux или ipconfig в Windows. Вот пример:


Предотвращение зависания ноутбука при закрытой крышке


Чтобы избежать автоматического перехода ноутбука в режим ожидания при закрытии крышки, отредактируйте файл /etc/systemd/logind.conf и установите следующие свойства (вы можете использовать vi или установить GNU nano с помощью yum install nano):


[Авторизоваться]


HandleLidSwitch=блокировка


LidSwitchIgnoreInhibited=нет


Чтобы сохранить предыдущие изменения при перезагрузке, запустите systemctl restart systemd-logind.service.


Дважды проверьте, что все работает, перезагрузив компьютер.


Подключение к серверу по SSH


На этом этапе вы можете перейти на свою повседневную машину и подключиться к новому серверу с помощью SSH:


``` ударить


ssh root@192.168.1.200


Вы также можете назначить имя хоста на клиентской машине. Отредактируйте файл /etc/hosts (для Unix-подобных машин) или файл c:\Windows\System32\drivers\etc\hosts (для Windows) и добавьте следующее строка (используйте любое имя, но укажите статический IP-адрес, который вы настроили ранее):


192.168.1.200 pickanyname.local


Вам придется сделать это на каждой машине, которую вы используете для подключения к серверу, если вы хотите использовать имя хоста вместо IP-адреса. После этого вы сможете подключиться к серверу следующим образом:


``` ударить


ssh root@pickanyname.local


Установка Docker


После подключения к серверу по SSH установите докер, выполнив следующие команды:


``` ударить


yum установить -y yum-utils


yum-config-менеджер \


--добавить-репо \


https://download.docker.com/linux/centos/docker-ce.repo


ням установить докер-се \


докер-ce-cli \


containerd.io \


docker-compose-плагин


Чтобы служба Docker автоматически запускалась при перезапуске компьютера, выполните следующие команды:


``` ударить


systemctl включить docker.service


systemctl запустить docker.service


Установка базы данных


С поддержкой Docker легко устанавливать программное обеспечение, поддерживая порядок на сервере. Программное обеспечение работает в изолированных средах, называемых контейнерами. Вы можете создавать контейнеры из пользовательских или готовых к использованию изображений.


Изображение — это шаблон с инструкциями по созданию контейнера. Вы можете запускать, перезапускать, останавливать и даже удалять контейнеры, когда они больше не нужны в вашей системе. И все это, не оставляя мусора в операционной системе вашего хоста (Rocky Linux, в этой статье).


База данных — хороший кандидат для работы в изолированной среде. Выполните следующую команду, чтобы запустить контейнер, на котором работает сервер MariaDB с включенным механизмом ColumnStore:


``` ударить


докер запустить --detach \


--name mariadb-cs \


--restart, если не остановлен \


--env MARIADB_ROOT_PASSWORD='пароль' \


--опубликовать '3306:3306/tcp' \


--выставить '3306' \


mariadb/columnstore


При этом загружается образ MariaDB/columnstore из Docker Hub (общедоступный реестр образов Docker, поддерживаемый Docker Inc.).


После загрузки образа Docker создает новый контейнер с именем MariaDB-cs и приступает к запуску контейнера, эффективно запуская сервер базы данных MariaDB на порту 3306.


Команда также предоставляет доступ к порту внешнему миру, чтобы вы могли подключиться к базе данных, например, с вашего компьютера для разработки.


Подготовка демонстрационной базы данных для аналитики


То, что вы только что установили, позволяет вам использовать механизм хранения столбцов MariaDB при создании таблицы. Например:


```sql


СОЗДАТЬ ТАБЛИЦУ


... определения столбцов здесь...


) ДВИГАТЕЛЬ = Хранилище Колонок;


Это указывает базе данных MariaDB использовать механизм ColumnStore для хранения данных в виде столбцов. Этот механизм предназначен для масштабирования больших данных и может обрабатывать петабайты данных, избавляя вас от необходимости определять и поддерживать индексы. Это делает его идеальным для специальных запросов к очень большим наборам данных.


При необходимости вы по-прежнему можете использовать механизм InnoDB по умолчанию, подходящий для транзакционных рабочих нагрузок. Просто опустите опцию ENGINE. Вы можете объединить таблицы, использующие ColumnStore, с таблицами, использующими InnoDB, в одном операторе SQL.


Вы также можете использовать репликацию между узлом транзакций (InnoDB) и узлом аналитики (ColumnStore), чтобы включить рабочие нагрузки гибридной транзакционно-аналитической обработки (HTAP).


Лучший способ поэкспериментировать с ColumnStore — попробовать его на существующем наборе данных.


Проверьте этот [репозиторий Github] (https://github.com/mariadb-developers/columnstore-developer-survey-data), который загружает 5 миллионов строк в таблицу, которую вы можете использовать для выполнения аналитических запросов, и убедитесь сами в производительности Хранилище столбцов.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE