たまたま古いラップトップやマシンが横になっていてほこりがたまっている場合は、それを再利用することをお勧めします。分析処理 (アドホック レポートの生成など) 用の高速な SQL データベースは良さそうですか?もしそうなら、読み続けてください! この記事では、古いラップトップをほこりから取り除き、Rocky Linux と Docker の上で分析専用のデータベース サーバーとして再利用する方法を紹介します。 Intel® Core™ i7 プロセッサ、8 GB DDR3L-SDRAM、および 256 GB SSD を搭載したこの Lenovo Thinkpad T440 を使用しました。 Rocky Linux と Docker を使用する理由 Rocky Linux は、Red Hat Enterprise Linux (RHEL) と互換性のあるオープンソースのエンタープライズ オペレーティング システムである の継続です。 CentOS 優れたセキュリティと管理機能を提供し、RHEL をベースにしているため、広大で活発なコミュニティが存在します。 Docker は、ハードウェアを仮想化せずに Linux システム上で実行される仮想化ソフトウェアです。これにより、分離された環境の利点を維持しながら、使用可能なリソースが最適化されます。 必要に応じて、通常の日常のマシンに Docker をセットアップすることもできますが、Rocky Linux を実行するために必要な最小限のハードウェアを備えた古いラップトップをお持ちの場合は、それを利用することをお勧めします。 始める前に 開始する前に、古いマシンにある可能性のある重要なファイルを必ずバックアップしてください。 Google Drive、DropBox、外付けハード ドライブなどのオンライン ツールを使用します。このタスクだけに 1 ~ 2 時間を割り当てます。ファイルシステムを調べて、後で不愉快な驚きを避ける. Rocky Linux のインストール Rocky Linux のインストール方法については詳しく説明しません。詳細な手順を確認したい場合は、 を参照してください。 公式ドキュメント ただし、インストール GUI で DHCP (または必要に応じてイーサネット) を使用して Wi-Fi 接続を構成するようにしてください。 追加のユーザーを作成する必要はありません で十分です。また、 インストールしないでください。代わりに、 を選択し、次のソフトウェアを追加することをお勧めします。 root GUI オプションを使用してサーバーを カスタム オペレーティング システム ヘッドレス管理 セキュリティ ツール システムツール インストール手順に従ってプロセスを完了します。 静的 IP を使用した Wi-Fi 接続の構成 インストール中に Wi-Fi 接続を構成した場合は、いくつかの追加手順を実行する必要があります。 ケーブルを使用して、マシンをルーターに接続します。 イーサネット を実行し、イーサネット接続名をメモします。私の場合は た。 encli connection enp0s25 でし 実行して接続を有効にします (接続の名前を使用します)。 nmcli connection up enp0s25 を実行して、不足している Wi-Fi ユーティリティをインストールします。 yum install NetworkManager-wifi イーサネット ケーブルを取り外します。 を実行してマシンを再起動します。 reboot マシンが再起動したら、 としてログインし、 を実行して Wi-Fi 接続が機能していることを確認します。 root ping google.com を使用して、ネットワーク管理 UI をインストールします。 dnf install NetworkManager-tui を実行し、手動の静的 IP を使用するように Wi-Fi 接続を編集します。サーバーアドレスを に設定し、 を使用して同じネットワーク内の別の (macOS) マシンから取得したゲートウェイと DNS サーバーを追加しました。 Linux では を、Windows では を使用します。次に例を示します。 nmtui 192.168.1.200/24 ifconfig ip addr ipconfig 蓋を閉じたときにラップトップがサスペンドしないようにする ふたを閉じたときにラップトップが自動的にサスペンド モードにならないようにするには、 ファイルを編集して次のプロパティを設定します ( を使用するか、 を使用して GNU nano をインストールできます)。 /etc/systemd/logind.conf vi yum install nano [Login] HandleLidSwitch=lock LidSwitchIgnoreInhibited=no 再起動時に以前の変更を保持するには、 を実行します。 systemctl restart systemd-logind.service マシンを再起動して、すべてが機能することを再確認します。 SSH を使用したサーバーへの接続 この時点で、日常のマシンに移動し、SSH を使用して新しいサーバーに接続できます。 ssh root@192.168.1.200 クライアント マシンにホスト名を割り当てることもできます。 ファイル (Unix 系のマシン) または ファイル (Windows の場合) を編集し、次の行を追加します (任意の名前を使用しますが、静的 IP アドレスを指定します)。前に設定したもの): /etc/hosts c:\Windows\System32\drivers\etc\hosts 192.168.1.200 pickanyname.local IP アドレスの代わりにホスト名を使用する場合は、サーバーへの接続に使用するすべてのマシンでこれを行う必要があります。この後、次のようにサーバーに接続できるようになります。 ssh root@pickanyname.local Docker のインストール SSH 経由でサーバーに接続した後、次のコマンドを実行して docker をインストールします。 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 マシンの再起動時に Docker サービスが自動的に開始されるようにするには、次のコマンドを実行します。 systemctl enable docker.service systemctl start docker.service データベースのインストール Docker に対応しているため、サーバーを整理しながらソフトウェアを簡単にインストールできます。ソフトウェアは、 と呼ばれる隔離された環境で実行されます。カスタム イメージまたはすぐに使用できる からコンテナを作成できます。 コンテナ イメージ イメージは、コンテナの作成方法を説明するテンプレートです。コンテナーがシステムに不要になった場合は、コンテナーを開始、再始動、停止、さらには削除することもできます。ホスト オペレーティング システム (この記事では Rocky Linux) にゴミを残すことなく、これらすべてを行うことができます。 データベースは、隔離された環境で実行するのに適した候補です。次のコマンドを実行して、ColumnStore エンジンが含まれる MariaDB サーバーを実行するコンテナーを開始します。 docker run --detach \ --name mariadb-cs \ --restart unless-stopped \ --env MARIADB_ROOT_PASSWORD='password' \ --publish '3306:3306/tcp' \ --expose '3306' \ mariadb/columnstore これにより、Docker Hub (Docker Inc. が管理する Docker イメージのパブリック レジストリ) から イメージがダウンロードされます。 MariaDB/columnstore イメージをダウンロードした後、Docker は という名前の新しいコンテナーを作成し、コンテナーの開始に進み、ポート 3306 で MariaDB データベース サーバーを効果的に開始します。 MariaDB-cs このコマンドは、たとえば開発マシンからデータベースに接続できるように、ポートを外部に公開します。 分析用のデモ データベースの準備 インストールしたものにより、テーブルを作成するときに MariaDB ColumnStore ストレージ エンジンを使用できるようになります。例えば: CREATE TABLE some_table( ... column definitions here ... ) ENGINE=ColumnStore; これにより、MariaDB データベースは、ColumnStore エンジンを使用してデータを列形式で格納するように指示されます。このエンジンは、ビッグ データのスケーリング用に設計されており、ペタバイト単位のデータを処理できるため、インデックスの定義と維持から解放されます。これにより、非常に大きなデータ セットに対するアドホック クエリに最適です。 必要に応じて、トランザクション ワークロードに適したデフォルトの InnoDB エンジンを引き続き使用できます。 オプションを省略してください。単一の SQL ステートメントで、ColumnStore を使用するテーブルと InnoDB を使用するテーブルを結合できます。 ENGINE トランザクション ノード (InnoDB) と分析ノード (ColumnStore) の間でレプリケーションを使用して、ハイブリッド トランザクション分析処理 (HTAP) ワークロードを有効にすることもできます。 ColumnStore を試す最善の方法は、既存のデータ セットを使用して試すことです。 500 万行をテーブルにロードするこの を確認してください。このテーブルを使用して分析クエリを実行し、ColumnStore のパフォーマンスを自分で確認してください。 Github リポジトリ