paint-brush
分析用の専用データベース サーバーをセットアップする方法@alejandroduarte
1,421 測定値
1,421 測定値

分析用の専用データベース サーバーをセットアップする方法

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

長すぎる; 読むには

たまたま古いラップトップやマシンが横になっていてほこりがたまっている場合は、それを再利用することをお勧めします。分析処理 (アドホック レポートの生成など) 用の高速な SQL データベースは良さそうですか?もしそうなら、読み続けてください! この記事では、古いラップトップをほこりから取り除き、Rocky Linux と Docker 上で分析専用のデータベース サーバーとして再利用する方法を紹介します。

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - 分析用の専用データベース サーバーをセットアップする方法
Alejandro Duarte HackerNoon profile picture


たまたま古いラップトップやマシンが横になっていてほこりがたまっている場合は、それを再利用することをお勧めします。分析処理 (アドホック レポートの生成など) 用の高速な 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 接続を構成した場合は、いくつかの追加手順を実行する必要があります。


  1. イーサネットケーブルを使用して、マシンをルーターに接続します。


  2. encli connectionを実行し、イーサネット接続名をメモします。私の場合はenp0s25 でした。


  3. nmcli connection up enp0s25実行して接続を有効にします (接続の名前を使用します)。


  4. yum install NetworkManager-wifiを実行して、不足している Wi-Fi ユーティリティをインストールします。

  5. イーサネット ケーブルを取り外します。


  6. rebootを実行してマシンを再起動します。


  7. マシンが再起動したら、 rootとしてログインし、 ping google.comを実行して Wi-Fi 接続が機能していることを確認します。


  8. dnf install NetworkManager-tuiを使用して、ネットワーク管理 UI をインストールします。


  9. nmtuiを実行し、手動の静的 IP を使用するように Wi-Fi 接続を編集します。サーバーアドレスを192.168.1.200/24に設定し、 ifconfigを使用して同じネットワーク内の別の (macOS) マシンから取得したゲートウェイと DNS サーバーを追加しました。 Linux ではip addrを、Windows ではipconfigを使用します。次に例を示します。




蓋を閉じたときにラップトップがサスペンドしないようにする

ふたを閉じたときにラップトップが自動的にサスペンド モードにならないようにするには、 /etc/systemd/logind.confファイルを編集して次のプロパティを設定します ( viを使用するか、 yum install nanoを使用して GNU nano をインストールできます)。


 [Login] HandleLidSwitch=lock LidSwitchIgnoreInhibited=no


再起動時に以前の変更を保持するには、 systemctl restart systemd-logind.serviceを実行します。


マシンを再起動して、すべてが機能することを再確認します。

SSH を使用したサーバーへの接続

この時点で、日常のマシンに移動し、SSH を使用して新しいサーバーに接続できます。


 ssh [email protected]


クライアント マシンにホスト名を割り当てることもできます。 /etc/hostsファイル (Unix 系のマシン) またはc:\Windows\System32\drivers\etc\hostsファイル (Windows の場合) を編集し、次の行を追加します (任意の名前を使用しますが、静的 IP アドレスを指定します)。前に設定したもの):


 192.168.1.200 pickanyname.local


IP アドレスの代わりにホスト名を使用する場合は、サーバーへの接続に使用するすべてのマシンでこれを行う必要があります。この後、次のようにサーバーに接続できるようになります。


 ssh [email protected]

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 はMariaDB-csという名前の新しいコンテナーを作成し、コンテナーの開始に進み、ポート 3306 で MariaDB データベース サーバーを効果的に開始します。


このコマンドは、たとえば開発マシンからデータベースに接続できるように、ポートを外部に公開します。

分析用のデモ データベースの準備

インストールしたものにより、テーブルを作成するときに MariaDB ColumnStore ストレージ エンジンを使用できるようになります。例えば:


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


これにより、MariaDB データベースは、ColumnStore エンジンを使用してデータを列形式で格納するように指示されます。このエンジンは、ビッグ データのスケーリング用に設計されており、ペタバイト単位のデータを処理できるため、インデックスの定義と維持から解放されます。これにより、非常に大きなデータ セットに対するアドホック クエリに最適です。


必要に応じて、トランザクション ワークロードに適したデフォルトの InnoDB エンジンを引き続き使用できます。 ENGINEオプションを省略してください。単一の SQL ステートメントで、ColumnStore を使用するテーブルと InnoDB を使用するテーブルを結合できます。


トランザクション ノード (InnoDB) と分析ノード (ColumnStore) の間でレプリケーションを使用して、ハイブリッド トランザクション分析処理 (HTAP) ワークロードを有効にすることもできます。


ColumnStore を試す最善の方法は、既存のデータ セットを使用して試すことです。


500 万行をテーブルにロードするこのGithub リポジトリを確認してください。このテーブルを使用して分析クエリを実行し、ColumnStore のパフォーマンスを自分で確認してください。