1. はじめに
IBMが提供するデータウェアハウスは2つあり、Netezza (正式には Netezza Performance Server, NPS) と Db2 Warehouse です。Netezzaはチューニングに労力を掛けなくても処理の速いことが特徴です。もちろん Db2 Warehouse も速いですが、Netezzaよりは設定項目が多い印象です。Db2 Warehousは分析向け列表(データを列単位で保持)とトランザクション処理向けの行表(データを行単位で保持)の両方を保持することができます。一方Netezzaは分析向けデータウェアハウスであり、トランザクション処理向けのデータベースではありません。
Netezzaはアプライアンス(ソフトウェア製品が組み込み済みのハードウェア製品)やクラウド環境 (OpenShift, Cloud Pak for Data) で動作します。Netezzaの開発者版が提供されていて、無料でダウンロードしてWindows PCやMacで動かすことができます!そして次のようなNetezza Web管理画面にアクセスできるようになります。
ただしパソコン上で動かすため、本格的な分析用途ではなく、データベースの機能や互換性の確認が用途となります。
本記事ではWindows PC上にNetezza開発者版であるNPSVBを導入します。そのネットワーク設定が私にはわかりにくく、またWeb管理インターフェースを起動するシェルスクリプトを修正する必要がありました。こういった内容を本記事で説明します。目次は次の通りです。
- はじめに
- ソフトウェア・スタック
- 導入前提
- 導入手順概要
- 導入手順
- エラー例
- 参考資料
- 類似テーマを扱ったQiita記事
Netezzaクライアントツール(nzsql, ODBCドライバ)を用いた接続方法は 別のQiita記事 で紹介することにして、本記事では触れません。
2. ソフトウェア・スタック
Windows OS、仮想化ソフトウェア、仮想マシンの3階層です。開発者版NPSVBの実態は仮想マシンです。
- Windows OS上で仮想化ソフトウェアOracle VM VirtualBoxを動かします。
- この仮想環境で仮想マシンNPSVBを動かします。
- NPSVBはLinuxマシン(CentOS)です。そこにNetezzaが導入されています。
3. 導入前提
-
パソコンのハードウェアについて、CPUのHyper Threadingがオンで2論理コア、メモリ8GiBがあれば動作すると思います。仮想マシンNPSVBに1論理コア、4GiBメモリを割り当てれば動作しました。
-
Windows 10または11が必要です。本記事の検証に使ったのはWindows 10ですが、Windows 11でも同様に動作すると思います。
-
IBMホームページのアカウント(IBMid)が必要です。このアカウントを使って仮想マシンNPSVBをダウンロードします。IBMidを持っていなければ、次のQiita記事をご覧になって作成してください。
4. 導入手順概要
8個のステップに分けて手順を説明します。
- Windowsネットワーク・アダプターに静的IPアドレスを追加
- 仮想化ソフトウェアOracle VM VirtualBoxを導入
- 仮想マシンNPSVBのパッケージを取得
- 仮想マシンNPSVBをインポート
- Netezzaを起動
- Web管理インターフェースを起動
- Web管理画面にアクセス
- 仮想マシンNPSVBを停止
5. 手順1) Windowsネットワーク・アダプターに静的IPアドレスを追加
次のNetezzaマニュアルを参考にして静的IPアドレス192.168.9.1
を追加します。
-
https://www.ibm.com/docs/en/netezza?topic=started-installing-npsvb
- 1.Setting up a new static IP on the host machine
上のマニュアルに沿って実施例を説明します。まずネットワーク・アダプターの名前を確認するために、Windows コマンドプロンプトからipconfig
コマンドを実行します。次の例ではvEthernet (Intel Ethernet)
がその名前です。
Microsoft Windows [Version 10.0.19045.3208]
(c) Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>ipconfig
Windows IP 構成
イーサネット アダプター vEthernet (Intel Dual Band Wireless):
メディアの状態. . . . . . . . . . . .: メディアは接続されていません
接続固有の DNS サフィックス . . . . .:
イーサネット アダプター vEthernet (Intel Ethernet):
接続固有の DNS サフィックス . . . . .:
IPv6 アドレス . . . . . . . . . . . .: 240d:1a:b55:2900:aa24:7bfe:46fa:3803
リンクローカル IPv6 アドレス. . . . .: fe80::e835:ff9f:d9e:c7%16
IPv4 アドレス . . . . . . . . . . . .: 192.168.0.72
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: fe80::260:6bff:fe49:11e5%16
192.168.0.1
ネットワーク・アダプターvEthernet (Intel Ethernet)
を対象としてnetsh
コマンドを実行し、静的IPアドレス192.168.9.1
を追加します。ネットワーク・アダプターの名前は環境によって異なるため、ご自身で確認したものを使ってください。
C:\WINDOWS\system32>netsh interface ipv4 set interface interface="vEthernet (Intel Ethernet)" dhcpstaticipcoexistence=enabled
OK
C:\WINDOWS\system32>netsh interface ipv4 add address "vEthernet (Intel Ethernet)" 192.168.9.1 255.255.255.0
アダプターにIPアドレス192.168.9.1
が追加されていることを確認します。
C:\Users\xxxxxxxx>ipconfig
イーサネット アダプター vEthernet (Intel Ethernet):
接続固有の DNS サフィックス . . . . .:
IPv6 アドレス . . . . . . . . . . . .: 240d:1a:b55:2900:aa24:7bfe:46fa:3803
リンクローカル IPv6 アドレス. . . . .: fe80::e835:ff9f:d9e:c7%16
IPv4 アドレス . . . . . . . . . . . .: 192.168.0.72
サブネット マスク . . . . . . . . . .: 255.255.255.0
IPv4 アドレス . . . . . . . . . . . .: 192.168.9.1
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: fe80::260:6bff:fe49:11e5%16
192.168.0.1
5. 手順2) 仮想化ソフトウェアOracle VM VirtualBoxを導入
次のQiita記事をご覧になって導入してください。
- Windows環境に無料の仮想化ソフトウェアを導入 (Oracle VM VirtualBox)
https://qiita.com/yamasakk/items/31a4be0f42c8eada038a
5. 手順3) 仮想マシンNPSVBのパッケージを取得
次のNetezzaマニュアルを参考にして実行します。
-
https://www.ibm.com/docs/en/netezza?topic=started-installing-npsvb
- 3.Importing the NPSVB machine ova file to VirtualBox
上のマニュアルに沿って実施例を説明します。まず次のリンクをクリックして仮想マシンNPSVBのダウンロードサイトに移動します。
IBMidでログインします。
必要事項を入力します。
ダウンロード可能なパッケージの一覧が表示されます。Netezza Performance Server Developer Editionの最新版をクリックし、次に画面下部のContinue
をクリックします。
遷移した画面からNPSVBのパッケージをダウンロードします。ここにIBM Confidentialと赤い文字で表示されていますが、IBM社外の方も利用可能です(2023年5月30日に確認済み)。
5. 手順4) 仮想マシンNPSVBをインポート
次のNetezzaマニュアルを参考にして実行します。
-
https://www.ibm.com/docs/en/netezza?topic=started-installing-npsvb
- 3.Importing the NPSVB machine ova file to VirtualBox
- 4.Starting the NPSVB virtual machine in VirtualBox Manager
上のマニュアルに沿って実施例を説明します。VirutualBoxを起動し、ツール
のインポート
をクリックします。
ポップアップが表示されます。ここに上でダウンロードしたパッケージ名を入力します。
MACアドレスのポリシー
に表示されるプルダウン・メニューからすべてのネットワークアダプターでMACアドレスを生成
を選択します。
インポートした仮想マシンNPSVB.11.x.x.x BETA
をクリックし、その設定
をクリックします。
ポップアップが表示されます。そのネットワーク
をクリックし、次にアダプター1
タブをクリックします。続いて次の画面のように設定します。ここでアダプターの名前
とアダプタータイプ
は環境によって異なり、手順1で確認した結果に合わせてください。
アダプター2
タブをクリックして次の画面のように設定し、ポップアップ下部のOK
をクリックします。
設定用ポップアップが閉じたら起動
をクリックします。
NPSVBのCentOSが起動を始めます。
5. 手順5) Netezzaを起動
次のNetezzaマニュアルを参考にして実行します。
-
https://www.ibm.com/docs/en/netezza?topic=started-installing-npsvb
- 5.Starting the Netezza Performance Server server
上のマニュアルに沿って実施例を説明します。Windowsコマンドプロンプトを起動して仮想マシンにsshコマンドでログインします。(ユーザーnz
パスワードnz
)
Microsoft Windows [Version 10.0.19045.3208]
(c) Microsoft Corporation. All rights reserved.
C:\Users\xxxxxxxx>ssh nz@192.168.9.2
nz@192.168.9.2's password: nz
[nz@localhost ~]$
nzstart
コマンドでNetezzaを起動し、その状況をnzstate
コマンドで確認します。ここでpython3に関するエラーメッセージが表示されますが、これを修正せずとも本記事の範囲において問題はありませんでした。
nz@192.168.9.2's password: nz
[nz@localhost ~]$ nzstart
/usr/bin/env: python3: No such file or directory
(startupsvr) Info: NZ-00022: --- program 'startupsvr' (2652) starting on host 'localhost.localdomain' ... ---
[nz@localhost ~]$ nzstate
System state is 'Online'.
なお、Netezzaを停止するコマンドはnzstop
です。
5. 手順6) Web管理インターフェースを起動
次のNetezzaマニュアルを参考にして実行します。
-
https://www.ibm.com/docs/en/netezza?topic=started-installing-npsvb
- 6.Starting the web console
上のマニュアルに沿って実施例を説明します。Windowsコマンドプロンプトを起動して仮想マシンにログインします。(ユーザーroot
パスワードnetezza
)
Microsoft Windows [Version 10.0.19045.3208]
(c) Microsoft Corporation. All rights reserved.
C:\Users\xxxxxxxx>ssh root@192.168.9.2
root@192.168.9.2's password: netezza
[root@localhost ~]#
ここでマニュアルに記載されていない事を実行します。まずWeb管理インターフェースを起動するシェルstart-cyclops.sh
をrootのホームディレクトリにコピーします。この名前は任意で、下の実行例ではmy-start-cyclops.sh
としました。次にmy-start-cyclops.sh
に記述されたパスを変更してホームディレクトリ上で動作するように修正します。(修正せずにそのまま実行するとエラーNo such file or directory
が起きて動作しません)
[root@localhost ~]# pwd
/root
[root@localhost ~]# cp /usr/local/bin/start-cyclops.sh my-start-cyclops.sh
[root@localhost ~]# cat my-start-cyclops.sh
#!/bin/bash
systemctl start docker
./cyclops_dockerrun/standalone-startup.sh influxdb:latest cyclops:4.0.2-20220104b14684-x86_64 > /tmp/cyclops_run.log 2>&1 &
[root@localhost ~]# sed -i 's/\.\/cyclops_dockerrun/\/root\/cyclops-dockerrun/' my-start-cyclops.sh
[root@localhost ~]# cat my-start-cyclops.sh
#!/bin/bash
systemctl start docker
/root/cyclops-dockerrun/standalone-startup.sh influxdb:latest cyclops:4.0.2-20220104b14684-x86_64 > /tmp/cyclops_run.log 2>&1 &
ここからマニュアルの記載に沿って実行します。修正したシェルスクリプトを実行してコンテナの状態が次のようにup
であることを確認します。なお、下に表示されているcyclopsコンテナはWeb管理インターフェースを提供します。influxdbコンテナはCPU使用率などの履歴を保持します。
[root@localhost ~]# ./my-start-cyclops.sh
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2565c8d64763 cyclops:4.0.2-20220104b14684-x86_64 "/scripts/start.sh" 5 seconds ago Up 2 seconds 80/tcp, 3000/tcp, 0.0.0.0:3333->3333/tcp, 5480/tcp, 0.0.0.0:8443->8443/tcp nervous_banach
1383cc775795 influxdb:latest "/entrypoint.sh infl…" 6 seconds ago Up 4 seconds 0.0.0.0:8086->8086/tcp influxdb
5. 手順7) Web管理画面にアクセス
次のNetezzaマニュアルを参考にして実行します。
-
https://www.ibm.com/docs/en/netezza?topic=started-installing-npsvb
- 7.Adding web console access
上のマニュアルに沿って実施例を説明します。Webブラウザを起動して https://192.168.9.2:8443 にアクセスします。表示された画面のSelect an instance
をクリックしてそのプルダウン・メニューのAdd a new instance
をクリックします。
次の画面のように入力してAdd instance
をクリックします。ここでInstance name
は任意で下図と同じ名前を入力する必要はありません。
次のようなWeb管理画面が表示されます。
5. 手順8) 仮想マシンNPSVBを停止
NPSVBのファイル
タブをクリックし、閉じる
をクリックします。続いて表示されるポップアップにおいて仮想マシンの状態を保存
をクリックし、OK
をクリックします。
6. エラー例) Web管理画面にアクセスできない (192.168.9.2 refused to connect)
上の手順8を実行せずに仮想マシンを止めたとき、このエラーに遭遇しました。対処方法はNetezzaの起動およびコンテナ(cyclopsとfluxdb)の削除と起動です。
まずNetezzaにユーザーnz
でログインします。NetezzaがOnline
かどうかを確認し、Stopped
であれば起動します。
C:\Users\xxxxxxxx>ssh nz@192.168.9.2
nz@192.168.9.2's password: nz
[nz@localhost ~]$ nzstate
System state is 'Stopped'.
[nz@localhost ~]$ nzstart
/usr/bin/env: python3: No such file or directory
(startupsvr) Info: NZ-00022: --- program 'startupsvr' (3135) starting on host 'localhost.localdomain' ... ---
[nz@localhost ~]$ nzstate
System state is 'Online'.
Netezzaにユーザーroot
でログインします。手順6で修正した/root/my-start-cyclops.sh
を実行します。
C:\Users\xxxxxxxx>ssh root@192.168.9.2
root@192.168.9.2's password: netezza
[root@localhost ~]# /root/my-start-cyclops.sh
止まっているコンテナ(cyclopsとinfluxdb)を確認して、削除します。
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0a384f30e4df cyclops:4.0.2-20220104b14684-x86_64 "/scripts/start.sh" 8 seconds ago Created 80/tcp, 3000/tcp, 0.0.0.0:3333->3333/tcp, 5480/tcp, 0.0.0.0:8443->8443/tcp upbeat_chatterjee
dbe410124a72 influxdb:latest "/entrypoint.sh infl…" 38 minutes ago Exited (0) 9 minutes ago influxdb
[root@localhost ~]# docker rm 0a384f30e4df dbe410124a72
0a384f30e4df
dbe410124a72
再度/root/my-start-cyclops.sh
を実行し、コンテナ(cyclopsとinfluxdb)が実行中であることを確認します。
[root@localhost ~]# /root/my-start-cyclops.sh
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a851b547db6e cyclops:4.0.2-20220104b14684-x86_64 "/scripts/start.sh" 4 minutes ago Up 4 minutes 80/tcp, 3000/tcp, 0.0.0.0:3333->3333/tcp, 5480/tcp, 0.0.0.0:8443->8443/tcp nervous_swanson
95b4a62acf9d influxdb:latest "/entrypoint.sh infl…" 4 minutes ago Up 4 minutes 0.0.0.0:8086->8086/tcp influxdb
Web管理画面 https://192.168.9.2:8443/ にアクセスできることを確認します。
7. 参考資料
- Oracle VM VirtualBox User Manual
https://www.virtualbox.org/manual/UserManual.html - Netezzaマニュアル
- Installing NPSVB
https://www.ibm.com/docs/en/netezza?topic=started-installing-npsvb - The nzsql command
https://www.ibm.com/docs/en/netezza?topic=commands-nzsql-command - Summary of command-line commands
https://www.ibm.com/docs/en/netezza?topic=c-summary-command-line-commands
- Installing NPSVB
- Qiita記事
- Windows環境に無料の仮想化ソフトウェアを導入 (Oracle VM VirtualBox)
https://qiita.com/yamasakk/items/31a4be0f42c8eada038a - 高速データウェアハウス Netezza にクライアント接続する(Windows編)
https://qiita.com/yamasakk/items/5893de8ad9b2d058f615
- Windows環境に無料の仮想化ソフトウェアを導入 (Oracle VM VirtualBox)
8. 類似テーマを扱ったQiita記事
- PC上でメモリ5GBで動く! Netezza Software Emulatorを使ってみた
https://qiita.com/ishida330/items/8a23ae32b34b9aa461a0 - macOS に Netezza Software Emulator をインストール
https://qiita.com/sonots/items/08cbc2b55f19404af2cc