メイン コンテンツをスキップする 補完的コンテンツへスキップ

PostgreSQL のインストールと構成

Qlik Sense マルチノード展開でのパフォーマンスを向上させるため、リポジトリPostgreSQL(QSR)、SenseServices、QSMQ、および Licenses データベースを専用のリモート サーバーにインストールするオプションが用意されています。

情報メモQlik PostgreSQL インストーラーPostgreSQLをインストールする簡単な方法を提供します。以下を参照してください。Qlik PostgreSQL インストーラー を使用した PostgreSQL のインストールまたはアップグレード

データベース

QSR、SenseServices、および QSMQ データベースは同じログイン ロールを共有しており、同じ PostgreSQL インスタンスにインストールする必要があります。以前の展開の一部としてすでに PostgreSQL データベースがインストールされている場合、それを引き続き使用することができます。

情報メモQlik Sense Enterprise でマルチクラウド展開のコンポーネントをすべて構成するかどうかはオプションです。ただし、マルチクラウドでもオンプレミスでも、すべての展開で SenseServices データベースおよび QSMQ データベースをインストールする必要があります。
警告メモQlik SensePostgreSQL データベースを専用のインフラストラクチャで使用する場合、PostgreSQL の対応するバージョンを使用できます。PostgreSQL のどのバージョンが Qlik Sense でサポートされているかを確認するには、次を参照してください: Qlik Sense Enterprise のシステム必要条件
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 に記載のシステム要件を満たしていることを確認します。

情報メモ Microsoft AzurePostgreSQL 用の Azure データベースをインストールする場合は、Azure での PostgreSQL のインストールと構成 の指示に従ってください。

PostgreSQL を専用のサーバーにインストールするには、次の手順を実行します。

  1. PostgreSQL をインストールするサーバーに管理者としてログインします。

    参照先: ユーザー アカウント

  2. PostgreSQL Web サイトから PostgreSQL EnterpriseDB バージョン 12.x をダウンロードします。
    PostgreSQL のどのバージョンが Qlik Sense でサポートされているかを確認するには、次を参照してください: Qlik Sense Enterprise のシステム必要条件

  3. [PostgreSQL 設定ウィザード] を実行します。
  4. [インストール ディレクトリ] および [データ ディレクトリ] 画面で既定のパスを受け入れます。
  5. [パスワード] 画面で PostgreSQL のスーパーユーザーのためのパスワードを作成します。
    このパスワードは PostgreSQL データベースに接続するときに使用し、Qlik Sense の設定を実行するときにも使用するよう促されます。
  6. [ポート] 画面でポート 4432 を指定します。このポートは、サイト内の全ノード間の通信に必要です。

  7. [高度なオプション] 画面で既定の場所を受け入れます。
  8. [インストール準備完了] 画面で [次へ] をクリックして設定を実行します。

  9. 設定の実行後、Stack Builder をインストールすることもできます。これを後からインストールする場合は、チェック ボックスの選択を解除します。
  10. [完了] をクリックしてインストールを完了します。

PostgreSQL EnterpriseDB をインストールすると、pgAdmin ツールが付属します。

PostgreSQL データベースの作成

リポジトリ QSR、SenseServices、QSMQ、Licenses データベースは、pgAdmin ツールを使用して手動で作成するか、スクリプトを使用して作成します。

pgAdmin ツールを使って、新しい空の PostgreSQL データベースを作成するには、次の手順を実行します。

  1. pgAdmin ツールを開きます。

  2. pgAdmin [ブラウザー] の [サーバー] で PostgreSQL ノードを右クリックし、[サーバーを接続] をクリックします。
  3. 接続するために、PostgreSQL のスーパーユーザーのパスワードを入力します。サーバーの接続が成功すると、画面の右下に緑色のステータス バーが表示されます。
  4. [データベース] ノードを右クリックし、[作成] をクリックしてから [データベース] をクリックします。
  5. 作成しているデータベースの名前を入力し、[保存] をクリックします。

pgAdmin ツール内でスクリプトを実行して、新しい空の PostgreSQL データベースを作成するには、次の手順を実行します。

  1. [クエリ ツール] を開きます。最初に、postgres など既存のデータベースを選択して、[ツール] メニューの [クエリ ツール] オプションを表示します。
  2. 次のスクリプトを実行します。
    CREATE DATABASE "<databasename>" ENCODING = 'UTF8'; --creates an empty database
    <databasename> は、リポジトリ データベースの QSRSenseServices データベースの SenseServices、メッセージ キュー データベースの QSMQ、ライセンス サービスの Licenses で置き換えます。

ログイン ロールの作成

PostgreSQL データベースを作成する場合は、ユーザーのログイン ロールを作成する必要があります。ログイン ロールは、pgAdmin ツールを使用するか、スクリプトを実行して作成できます。

QSR、SenseServices、QSMQ、Licenses のログイン ロール

pgAdmin ツールを使ってログイン ロールを作成するには、次の手順を実行します。

  1. [ログイン/グループのロール] ノードを右クリックします。新規データベース ユーザーを作成するには、[作成] をクリックして、[ログイン/グループ ロール] をクリックします。
  2. [作成 - ログイン/グループのロール] ウィンドウの [基本設定] タブで名前「qliksenserepository」を入力します。
  3. [権限] タブで [Can login?] (ログイン可能) を有効にし、他の既定の権限は変更せずそのままにします。
  4. [定義] タブで、任意のパスワードを入力して [保存] をクリックします。
    Qlik Sense の設定時、[共有持続性データベース接続設定] 画面で、Qlik Sense とリポジトリ データベースの接続のために、ここで作成した [データベース ユーザー] のパスワードの入力を求められます。
  5. [qliksenserepository] を [QSR、SenseServices]、[QSMQ]、および [ライセンス] データベースの所有者にします。それには、前に作成した QSR、SenseServicesQSMQLicenses データベースを右クリックし、[プロパティ] をクリックします。
  6. [基本設定] タブの [所有者] ドロップダウンで、QSR、SenseServicesQSMQLicenses データベースの [所有者] として 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;
情報メモqliksenserepository のパスワードを含めます。Qlik Sense のインストール時にこのパスワードが求められます。

PostgreSQL バージョン 15 および 16 の権限の付与

PostgreSQL バージョン 15 および 16 をQlik Sense で使用するには、次のスクリプトを実行して必要な権限を付与する必要があります。この操作により、qliksenserepository ユーザーがすべての Qlik Sense データベースでパブリック スキーマへの必要なアクセス権を持つことが保証されます。

スクリプトはコマンドライン (psql) または pgAdmin で実行できます。使用する方法に応じて、次の手順に従ってください。

SQL スクリプト

CREATE DATABASE "QSR" ENCODING = 'UTF8' TEMPLATE=template0;
CREATE DATABASE "SenseServices" ENCODING = 'UTF8' TEMPLATE=template0;
CREATE DATABASE "QSMQ" ENCODING = 'UTF8' TEMPLATE=template0;
CREATE DATABASE "Licenses" ENCODING = 'UTF8' template=template0;
CREATE ROLE "qliksenserepository" WITH LOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';
--Replace `your_password` with the desired password for the repository user
ALTER ROLE "qliksenserepository" WITH ENCRYPTED PASSWORD 'your_password';
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";

GRANT TEMPORARY, CONNECT ON DATABASE "QSR" TO PUBLIC;
GRANT ALL ON DATABASE "QSR" TO postgres;
GRANT CREATE ON DATABASE "QSR" TO "qliksenserepository";

--Connect to each database and grant full permissions on the public schema to qliksenserepository
\c QSR
GRANT ALL ON SCHEMA public TO qliksenserepository;
\c Licenses
GRANT ALL ON SCHEMA public TO qliksenserepository;
\c QSMQ
GRANT ALL ON SCHEMA public TO qliksenserepository;
\c SenseServices
GRANT ALL ON SCHEMA public TO qliksenserepository;

psql を使用して SQL スクリプトを実行する

  1. SQL スクリプトを .sql 拡張子のテキスト ファイルに保存します (例: script.sql)。

  2. コマンド プロンプトまたはターミナルを開き、プレースホルダーを実際の値に置き換えて、次のコマンドでスクリプトを実行します。

    psql -h localhost -U postgres -p 4432 -f c:\path\to\your\script.sql

pgAdmin を使用して SQL スクリプトを実行する

  1. pgAdmin アプリケーションを開き、PostgreSQL サーバーに接続して、クエリ ツールを開きます。

  2. SQL スクリプトをコピーしてクエリ ツールに貼り付け、実行します。

  3. 最後に、各データベース (QSR、QSMQ、SenseServices、Licenses) に対して次のコマンドを実行し、パブリック スキーマに対する権限を付与します。

    GRANT ALL ON SCHEMA public TO qliksenserepository;

PostgreSQL の構成

PostgreSQL リポジトリ データベースと Qlik Sense ノード間の通信を確立するには、pga_hba.conf 構成ファイルと postgresql.conf 構成ファイルを編集します。

情報メモ元の設定に戻すこともできるように、編集の開始前に、 postgresql.conf ファイルと pg_hba.confファイルのバックアップ コピーを作成しておきます。
情報メモこの説明のパスは、専用サーバーのデータベースとして使用されるデフォルトの PostgreSQL インストールに合わせたものです。Qlik Sense によってインストールされた PostgreSQL データベースには次のデータベース パスがあります。%ProgramData%\Qlik\Sense\Repository\PostgreSQL\<version>\

postgresql.conf

postgresql.conf ファイルでは、監査、認証、暗号化など、PostgreSQL サーバーの一般的なパラメーターを指定できます。このファイルを編集することで、どの Qlik Sense ノードが PostgreSQL データベース サーバーにアクセスできるのかをコントロールします。

postgresql.conf ファイルを編集するには、次の手順を実行します。

  1. PostgreSQL が格納されている C:\Program Files\PostgreSQL\<バージョン>\datapostgresql.conf ファイルにアクセスします。
  2. 管理者としてこのファイルをテキスト エディタで開きます。
  3. 以下の構成の変更を行います。
    PostgreSQL 構成の変更
    設定説明値の例
    listen_addresses

    待ち受けを行う IP アドレスを入力します。複数の待ち受けアドレスを入力する場合は、それぞれカンマで区切りながら入力します。
    すべての IP アドレスからの接続を待ち受ける場合は、 * を入力します。*

    *
    max_connections

    データベースへの同時最大接続数を指定します。シングル サーバーの既定値は 100 です。

    マルチノード環境では、これはすべてのリポジトリ接続プールの合計 + 20 に調整する必要があります。既定では、この値はノードあたり 110 です。

     
  4. 変更内容を保存します。

これらのパラメーターの設定方法については、PostgreSQL のドキュメントを参照してください。

pg_hba.conf

pg_hba.conf ファイルではクライアントの認証を扱います。各レコードは、クライアント IP アドレス範囲、データベース名、ユーザー名、使用する認証方法など、接続タイプを指定します。

pg_hba.conf ファイルを編集するには、次の手順を実行します。

  1. PostgreSQL が格納されている C:\Program Files\PostgreSQL\<バージョン>\datapg_hba.conf にアクセスします。
  2. 管理者としてこのファイルをテキスト エディタで開きます。
  3. 次の行を探します。

    host all all 127.0.0.1/32 md5

    リポジトリ データベース サーバーにアクセスできるサーバーをこの行で指定します。既定のアドレス設定、127.0.0.1/32 は、データベースへのアクセスをローカル ホストだけに許可します。

  4. 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
  5. 警告メモIPv6 接続を追加し、アドレス列でホスト名を使用する場合、クライアントからの接続を受け入れるには、クライアント マシンのフォワードとリバースの nslookup の両方が PostgreSQL の有効な値を返す必要があります。詳細については、PostgreSQL のドキュメントを参照してください。
  6. 変更内容を保存します。

制限的な IP アドレスの設定方法については、PostgreSQL のドキュメントを参照してください。

別のサーバーへの PostgreSQL データベースのインストールと構成が完了しました。Qlik Sense のインストールを再開する準備が完了しました。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。