PostgreSQL のインストールと構成
Qlik Sense マルチノード展開でのパフォーマンスを向上させるため、リポジトリPostgreSQL(QSR)、SenseServices、QSMQ、および Licenses データベースを専用のリモート サーバーにインストールするオプションが用意されています。
データベース
QSR、SenseServices、および QSMQ データベースは同じログイン ロールを共有しており、同じ PostgreSQL インスタンスにインストールする必要があります。以前の展開の一部としてすでに PostgreSQL データベースがインストールされている場合、それを引き続き使用することができます。
PostgreSQL のインスタンスを、Windows、Linux、クラウド ホスト サービス (例: Amazon RDS) などのプラットフォームで実行できます。ただし、PostgreSQL が Windows 上で実行されていないと、Qlik は構成に対応できません。Linux や Amazon RDS を使用する場合、Qlik Sense 用の PostgreSQL の実行インスタンスを使用するためにインストールし、構成するのはユーザーの責任です。
Qlik Sense リポジトリ データベース (QSR)
QSR は Qlik Sense 展開のプライマリ データベースです。
PostgreSQL サーバー/ホストの詳細を Qlik Sense インストーラーに入力する必要があるため、QSR データベースを専用の PostgreSQL サーバーにインストールする場合は、Qlik Sense をインストールする前に PostgreSQL をインストールして構成する必要があります。
Qlik Sense サービス データベース (SenseServices)
SenseServices データベースには、各 Qlik Sense サービスのスキーマが含まれており、同じ PostgreSQL インスタンスとログイン ロールを共有したまま、Qlik Sense リポジトリ データベース から独立して拡張することができます。
Qlik Sense メッセージ キュー データベース (QSMQ)
QSMQ データベースを利用すると、Qlik Sense Enterprise 内のサービス間におけるメッセージの内部送信が容易になります。PostgreSQL の NOTIFY と LISTEN の機能により、メッセージング テーブルに書き込まれた新しいメッセージをサービスに通知できます。
ライセンス サービス データベース (Licenses)
Licenses データベースには、応答時間を短縮するとともに堅牢性を高めるため、ライセンス データのローカル コピーが保管されます。ライセンス サービスのみがアクセスします。
専用の PostgreSQL サーバーに QSR、SenseServices、QSMQ、および Licenses データベースをインストールするには、以下の手順を実行します。
- PostgreSQL のインストール
- PostgreSQL データベースを作成し、ログイン ロールを構成します。
- Qlik Sense ノードからのアクセスを許可するように構成ファイルを編集します。
- データベースがインストールされ、正しく動作していることを確認します。
PostgreSQL のインストール
専用の PostgreSQL サーバー インスタンスをインストールする前に、サーバーが www.postgresql.org に記載のシステム要件を満たしていることを確認します。
PostgreSQL を専用のサーバーにインストールするには、次の手順を実行します。
- PostgreSQL をインストールするサーバーに管理者としてログインします。
参照先: ユーザー アカウント
-
PostgreSQL Web サイトから PostgreSQL EnterpriseDB バージョン 12.x をダウンロードします。
PostgreSQL のどのバージョンが Qlik Sense でサポートされているかを確認するには、次を参照してください: Qlik Sense Enterprise のシステム必要条件 - [PostgreSQL 設定ウィザード] を実行します。
- [インストール ディレクトリ] および [データ ディレクトリ] 画面で既定のパスを受け入れます。
- [パスワード] 画面で PostgreSQL のスーパーユーザーのためのパスワードを作成します。
このパスワードは PostgreSQL データベースに接続するときに使用し、Qlik Sense の設定を実行するときにも使用するよう促されます。 -
[ポート] 画面でポート 4432 を指定します。このポートは、サイト内の全ノード間の通信に必要です。
- [高度なオプション] 画面で既定の場所を受け入れます。
-
[インストール準備完了] 画面で [次へ] をクリックして設定を実行します。
- 設定の実行後、Stack Builder をインストールすることもできます。これを後からインストールする場合は、チェック ボックスの選択を解除します。
- [完了] をクリックしてインストールを完了します。
PostgreSQL EnterpriseDB をインストールすると、pgAdmin ツールが付属します。
PostgreSQL データベースの作成
リポジトリ QSR、SenseServices、QSMQ、Licenses データベースは、pgAdmin ツールを使用して手動で作成するか、スクリプトを使用して作成します。
pgAdmin ツールを使って、新しい空の PostgreSQL データベースを作成するには、次の手順を実行します。
-
pgAdmin ツールを開きます。
- pgAdmin [ブラウザー] の [サーバー] で PostgreSQL ノードを右クリックし、[サーバーを接続] をクリックします。
- 接続するために、PostgreSQL のスーパーユーザーのパスワードを入力します。サーバーの接続が成功すると、画面の右下に緑色のステータス バーが表示されます。
- [データベース] ノードを右クリックし、[作成] をクリックしてから [データベース] をクリックします。
- 作成しているデータベースの名前を入力し、[保存] をクリックします。
pgAdmin ツール内でスクリプトを実行して、新しい空の PostgreSQL データベースを作成するには、次の手順を実行します。
- [クエリ ツール] を開きます。最初に、postgres など既存のデータベースを選択して、[ツール] メニューの [クエリ ツール] オプションを表示します。
- 次のスクリプトを実行します。
CREATE DATABASE "<databasename>" ENCODING = 'UTF8'; --creates an empty database。
<databasename> は、リポジトリ データベースの QSR、SenseServices データベースの SenseServices、メッセージ キュー データベースの QSMQ、ライセンス サービスの Licenses で置き換えます。
ログイン ロールの作成
PostgreSQL データベースを作成する場合は、ユーザーのログイン ロールを作成する必要があります。ログイン ロールは、pgAdmin ツールを使用するか、スクリプトを実行して作成できます。
QSR、SenseServices、QSMQ、Licenses のログイン ロール
pgAdmin ツールを使ってログイン ロールを作成するには、次の手順を実行します。
- [ログイン/グループのロール] ノードを右クリックします。新規データベース ユーザーを作成するには、[作成] をクリックして、[ログイン/グループ ロール] をクリックします。
- [作成 - ログイン/グループのロール] ウィンドウの [基本設定] タブで名前「qliksenserepository」を入力します。
- [権限] タブで [Can login?] (ログイン可能) を有効にし、他の既定の権限は変更せずそのままにします。
- [定義] タブで、任意のパスワードを入力して [保存] をクリックします。
Qlik Sense の設定時、[共有持続性データベース接続設定] 画面で、Qlik Sense とリポジトリ データベースの接続のために、ここで作成した [データベース ユーザー] のパスワードの入力を求められます。 - [qliksenserepository] を [QSR、SenseServices]、[QSMQ]、および [ライセンス] データベースの所有者にします。それには、前に作成した QSR、SenseServices、QSMQ、Licenses データベースを右クリックし、[プロパティ] をクリックします。
- [基本設定] タブの [所有者] ドロップダウンで、QSR、SenseServices、QSMQ、Licenses データベースの [所有者] として qliksenserepository を選択し、[保存] をクリックします。
pgAdmin ツール内でスクリプトを実行してログイン ロールを作成するには、次の手順を実行します。
[クエリ ツール] を開きます。既存のデータベースを選択して、[ツール] メニューの [クエリ ツール] オプションを表示します。
次のスクリプトを実行します。
CREATE ROLE "qliksenserepository" WITH LOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity'; -- change <qliksenserepository_user_pass> to your password for the repository service user
ALTER ROLE "qliksenserepository" WITH ENCRYPTED PASSWORD '<qliksenserepository_user_pass>';
GRANT qliksenserepository TO postgres;
ALTER DATABASE "QSR" OWNER TO "qliksenserepository";
ALTER DATABASE "SenseServices" OWNER TO "qliksenserepository";
ALTER DATABASE "QSMQ" OWNER TO "qliksenserepository";
ALTER DATABASE "Licenses" OWNER TO qliksenserepository;
GRANT TEMPORARY, CONNECT ON DATABASE "QSMQ" TO PUBLIC;
GRANT ALL ON DATABASE "QSMQ" TO postgres;
GRANT CREATE ON DATABASE "QSMQ" TO "qliksenserepository";
GRANT TEMPORARY, CONNECT ON DATABASE "SenseServices" TO PUBLIC;
GRANT ALL ON DATABASE "SenseServices" TO postgres;
GRANT CREATE ON DATABASE "SenseServices" TO "qliksenserepository";
GRANT TEMPORARY, CONNECT ON DATABASE "Licenses" TO PUBLIC;
GRANT ALL ON DATABASE "Licenses" TO postgres;
GRANT CREATE ON DATABASE "Licenses" TO qliksenserepository;
PostgreSQL の構成
PostgreSQL リポジトリ データベースと Qlik Sense ノード間の通信を確立するには、pga_hba.conf 構成ファイルと postgresql.conf 構成ファイルを編集します。
postgresql.conf
postgresql.conf ファイルでは、監査、認証、暗号化など、PostgreSQL サーバーの一般的なパラメーターを指定できます。このファイルを編集することで、どの Qlik Sense ノードが PostgreSQL データベース サーバーにアクセスできるのかをコントロールします。
postgresql.conf ファイルを編集するには、次の手順を実行します。
- PostgreSQL が格納されている C:\Program Files\PostgreSQL\<バージョン>\data の postgresql.conf ファイルにアクセスします。
- 管理者としてこのファイルをテキスト エディタで開きます。
- 以下の構成の変更を行います。
PostgreSQL 構成の変更 設定 説明 値の例 listen_addresses 待ち受けを行う IP アドレスを入力します。複数の待ち受けアドレスを入力する場合は、それぞれカンマで区切りながら入力します。
すべての IP アドレスからの接続を待ち受ける場合は、 * を入力します。** max_connections データベースへの同時最大接続数を指定します。シングル サーバーの既定値は 100 です。
マルチノード環境では、これはすべてのリポジトリ接続プールの合計 + 20 に調整する必要があります。既定では、この値はノードあたり 110 です。
- 変更内容を保存します。
これらのパラメーターの設定方法については、PostgreSQL のドキュメントを参照してください。
pg_hba.conf
pg_hba.conf ファイルではクライアントの認証を扱います。各レコードは、クライアント IP アドレス範囲、データベース名、ユーザー名、使用する認証方法など、接続タイプを指定します。
pg_hba.conf ファイルを編集するには、次の手順を実行します。
- PostgreSQL が格納されている C:\Program Files\PostgreSQL\<バージョン>\data の pg_hba.conf にアクセスします。
- 管理者としてこのファイルをテキスト エディタで開きます。
-
次の行を探します。
host all all 127.0.0.1/32 md5リポジトリ データベース サーバーにアクセスできるサーバーをこの行で指定します。既定のアドレス設定、127.0.0.1/32 は、データベースへのアクセスをローカル ホストだけに許可します。
-
127.0.0.1/32 をサイト内のすべてのノードの IP アドレスを含むサブネット指定で置き換えます。
これらの設定を指定する際には、アドレスごとにサフィックスとして /32 を使って各ノードに 1 行追加するか、/24 などのサフィックスを使ってすべてのアドレスを含むサブ ネットを追加します。- IPv4 (32 ビット アドレス):
- 単一のアドレスを指定する場合: 192.168.1.0/24 または 172.20.143.89/32
小規模ネットワークの場合: 172.20.143.0/24、またはより規模が大きいネットワークの場合は 10.6.0.0/16
すべての IPv4 アドレスからのアクセスを許可する場合: 0.0.0.0/0
- IPv6 (128 ビットの数値アドレス):
- 単一のホストの場合: ::1/128 (この場合、IPv6 ループバック アドレス)
- 小規模ネットワークの場合: fe80::7a31:c1ff:0000:0000/96
- すべての IPv6 アドレスからのアクセスを許可する場合: ::/0
- IPv4 (32 ビット アドレス):
- 変更内容を保存します。
制限的な IP アドレスの設定方法については、PostgreSQL のドキュメントを参照してください。
別のサーバーへの PostgreSQL データベースのインストールと構成が完了しました。Qlik Sense のインストールを再開する準備が完了しました。