© 2019 QlikTech International AB. All rights reserved.
PostgreSQLの
ソース・ターゲットエンドポイント
としての利用
クリックテック・ジャパン株式会社
© 2019 QlikTech International AB. All rights reserved.
2
Using PostgreSQL
as a source
3
クライアント側の前提条件
• Qlik Replicate をWindowsサーバーにインストールしている場合:
• PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64を、Qlik Replicateのマシンにインストールする必要があります。
※ psql.exe のパスをシステム環境変数に追加してください。 (例 "C:Program FilesPostgreSQL1202bin")
• Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。:
1. postgresql12をインストールします。例えば、 Red Hat 7 の場合は、postgresql12-12.1-2PGDG.rhel7.x86_64.rpm が必要な
パッケージです。
2. ODBC driver postgresql12をインストールします。例えば、 Red Hat 7の場合は、postgresql12-odbc-12.01.0000-
1PGDG.rhel7.x86_64.rpmが必要なパッケージです。
3. ドライバの場所を site_arep_login.sh ファイルにコピーします。 :
• これにより、"LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。
echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh
4
クライアント側の前提条件
• Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。:
4. 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。:
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/pgsql-12/lib/psqlodbc.so
Setup = /usr/pgsql-12/lib/psqlodbcw.so
Debug = 0
CommLog = 1
UsageCount = 2
5
サーバー側の前提条件
• Qlik ReplicateマシンのIPアドレスは、pg_hba.conf構成ファイルのdatabaseフィールドに “replication“というキーワードを入れて追加する必要
があります。
• 例: host replication all 176.123.1.212/32 trust
• test_decoding出力プラグイン(postgresql12-contribパッケージに含まれています)がインストールされていることを確認してください。
• 変更キャプチャ・タスクごとに、ReplicateはPostgreSQLデータベースから変更内容を読み取るためのスロットを作成します。この処理を有効にするに
は、レプリケート・ユーザー(エンドポイントの設定で定義されている)に、ソース・データベースに対する読み書きの権限が与えられていなければなりま
せん。
6
サーバー側の前提条件
• 以下のパラメータと値を設定ファイルpostgresql.confで設定する必要があります。
• wal_level = logical
• max_replication_slots >=1
• max_replication_slotsの値は、実行したいタスクの数に応じて設定する必要があります。例えば、5本のタスクを実行するには、最低
5つのスロットを設定する必要があります。スロットは、タスクが開始されると同時に自動的に開き、タスクが実行されなくなっても開いたまま
になります。開いたスロットは手動で削除する必要があるので注意が必要です。
• max_wal_senders >=1
• max_wal_senderパラメータは、同時実行可能なタスクの数を設定します。
• wal_sender_timeoutパラメータは、指定されたミリ秒を超えて非アクティブになったレプリケーション接続を終了させます。デフォルトのタイムア
ウトは60秒です。タイムアウト機構を無効にする(任意)には、このパラメータを0に設定します。
※ デフォルトでは、wal_sender_timeoutパラメータの値は、サーバーによってミリ秒として解釈されます。秒数を明示的に指定するには、
以下の例のように値に「s」を付けます。
※ wal_sender_timeout=60s
• 設定パラメータのより詳細な説明はPostgreSQLのドキュメントを確認してください。:
• https://www.postgresql.org/docs/12/runtime-config-replication.html
7
セキュリティ要件
• 以下の要件を満たすPostgreSQLアカウントを用意してください。
• Full Load レプリケーション: ソースデータベースに対する SELECT 権限
• Apply Changes レプリケーション: Superuser 権限
※ Superuser権限無しで利用する場合は、 “superuserロールを持たないアカウントを使用する”ページを確認してください。
8
superuserロールを持たないアカウントを使用する
• 「superuser」ロールを持つアカウントを使用しない場合は、データ定義言語(DDL)イベントをキャプチャするためにいくつかのオブジェクトを作成する
必要があります。選択したアカウントでこれらのオブジェクトを作成し、マスターユーザーアカウントでトリガーを作成します。
1. オブジェクトを作成するスキーマを選択します。デフォルトのスキーマはpublicです。スキーマが実際に存在し、スーパーユーザー権限を持たないアカウン
トがアクセスできることを確認してください。
2. 次のコマンドを実行して、テーブルattrep_ddl_auditを作成します。
create table <オブジェクトを作成するスキーマ名>.attrep_ddl_audit
(
c_key bigserial primary key,
c_time timestamp, -- Informational
c_user varchar(64), -- Informational: current_user
c_txn varchar(16), -- Informational: current transaction
c_tag varchar(24), -- Either 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE'
c_oid integer, -- For future use - TG_OBJECTID
c_name varchar(64), -- For future use - TG_OBJECTNAME
c_schema varchar(64), -- For future use - TG_SCHEMANAME. For now, holds the current_schema
c_ddlqry text -- The DDL query associated with the current DDL event)
9
superuserロールを持たないアカウントを使用する
3. 次のコマンドを実行して、関数attrep_intercept_ddlを作成します。:
CREATE OR REPLACE FUNCTION <オブジェクトを作成するスキーマ名>.attrep_intercept_ddl()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
declare _qry text;
BEGIN
if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE') then
SELECT current_query() into _qry;
insert into <オブジェクトを作成するスキーマ名>.attrep_ddl_audit
values
(
default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,'',current_schema,_qry
);
delete from <オブジェクトを作成するスキーマ名>.attrep_ddl_audit;
end if;
END;
$$;
10
superuserロールを持たないアカウントを使用する
4. スーパーユーザー権限を持たないアカウントでログインしている場合はここで一度ログアウトし、superuserロールを持つアカウントでログインしなおしま
す。
※ attrep_intercept_ddlストアドプロシージャがデフォルトのスキーマで作成されていない場合は、エンドポイント設定時にAdvancedタブ(高
度な接続プロパティ設定)で、Create DDL artifacts in schemaにスキーマ名を指定する必要があります。
5. 以下のコマンドを実行して、イベントトリガー「attrep_intercept_ddl」を作成します。
CREATE EVENT TRIGGER attrep_intercept_ddl ON ddl_command_end
EXECUTE PROCEDURE <オブジェクトを作成するスキーマ名>.attrep_intercept_ddl();
11
制限事項
• データベース名にセミコロン(;)を含むことはできません。
• ホットスタンバイモードになっているデータベースの変更捕捉はサポートされません。
• スレーブデータベースからの変更のレプリケーションを行うためには、データベースに対する読み取り・書き込み権限を必ず設定してください。
• ソーステーブルとそれに対応するターゲットテーブルの両方に、同一の主キーがなければなりません。どちらかのテーブルに主キーがない場合、DELETE
やUPDATEのレコード操作の結果は予測できないものになります。
• “Start Process Changes from Timestamp” のRunオプションはサポートされません。
• Before Imageのレプリケーションはサポートされません。
• 同じ名前でケースが異なる複数のテーブル(例:table1、TABLE1、Table1)を複製すると、予測不可能な動作を引き起こす可能性があるため、
サポートされていません。
• CREATE|ALTER|DROP]テーブルDDLの変更処理は、内部の関数/プロシージャのボディブロックやその他の入れ子構造に保持されていない限
りサポートされます。 例えば、次のような変更は捕捉されません。 :
CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT
NULL);
END;
$$;
12
制限事項
• TRUNCATE操作の変更処理はサポートされていません。
• Deferred Constraintsはサポートされていません。
• パーティションテーブル
• パーティション化されたテーブルのフルロードレプリケーションを実行すると、親テーブルが作成され、各パーティションに個別の子テーブルが作成さ
れます。
• 変更は、親テーブルではなく、子テーブルに対して行われます。したがって、レプリケーションの対象となるテーブルを(手動またはパターンを使用
して)選択する際には、子テーブルも含めることが重要です。
• パーティション化された親テーブルに対するDMLは、対応するターゲットテーブルの物理パーティションにのみ適用されます。
• パーティショニングされたテーブルでは主キーがサポートされていないため、UPDATE操作に影響を与える可能性があります。
• また、以下も参照してください。同種のレプリケーション(PostgreSQL同士)に適用されるパーティション・テーブルの要件については、
「 Replication of Partitioned Tables 」も参照してください。
• パラレルロード機能を使用する場合、パーティションやサブパーティションによるテーブルの分割はサポートされていません。
• 主キーを含まないフィルターを使用する場合、DELETE操作はキャプチャされません。
• Replica Identityのデフォルト構成のみがサポートされています。
• Replica identityに関する詳細は、こちらを確認してください: https://www.postgresql.org/docs/10/logical-replication-
publication.html
• 書き込み権限が必要なため(「サーバー側の前提条件」参照)、PostgreSQLのリードレプリカ(高可用性環境)はサポートされていません。
13
Qlik Replicate
側での基本セットアップ
14
Qlik Replicate側での基本セットアップ
• 「クライアント側の前提条件」のページを参考に、Qlik ReplicateサーバーにPostgreSQLのODBCドライバーをインストールしてください。
• ドライバーは以下のPostgreSQLのサイトからダウンロードいただけます。
 https://www.postgresql.org/ftp/odbc/versions/
PostgreSQL ODBCドライバーインストーラ(Windowsの場合)
15
ODBCドライバーインストールに関する注意事項
• 以下のようなODBCドライバー関連のエラーが報告されています。
 https://community.qlik.com/t5/Knowledge/Replicate-7-0-PostgreSQL-Source-prerequisites/ta-p/1791782
• 後のエンドポイント作成時に上記のエラーが出る場合は、記事の内容に従って、
• ” psqlodbc_10_03_0000-x64”を最初にインストールし、次に” psqlodbc_12_02_0000-x64”をインストール(アップグレード)します。
• そして、ODBCのbinフォルダのパスをシステム環境変数のPathに追加します。
• 例:C:Program FilespsqlODBC1003bin
• 最後にQlik Replicate Server(Attunity Replicate Server)のサービスを再起動します。
エンドポイント作成時のエラー
16
PostgreSQL
側での基本セットアップ
17
サーバー側の前提条件
• Qlik ReplicateマシンのIPアドレスは、pg_hba.conf構成ファイルのdatabaseフィールドに “replication“というキーワードを入れて追加する必要
があります。
• pg_hba.confファイルは通常、 PostgreSQL をインストールしたディレクトリの data ディレクトリの中に格納されています。
• 例:C:Program FilesPostgreSQL12data
• 設定例: host replication all 176.123.1.212/32 trust
• test_decoding出力プラグイン(postgresql12-contribパッケージに含まれています)がインストールされていることを確認してください。
• Windowsのパス例:C:Program FilesPostgreSQL12libtest_decoding.dll
• Linuxのパス例:contrib/test_decoding
18
サーバー側の前提条件
• 以下のパラメータと値を設定ファイルpostgresql.confで設定します。
• 通常、 PostgreSQL をインストールしたディレクトリの data ディレクトリの中に格納されています。
• 例:C:Program FilesPostgreSQL12data
• wal_level = logical
• max_replication_slots >=1
• max_wal_senders >=1
• wal_sender_timeoutパラメータは、指定されたミリ秒を超えて非アクティブになったレプリケーション接続を終了させます。デフォルトのタイムア
ウトは60秒です。タイムアウト機構を無効にする(任意)には、このパラメータを0に設定します。
19
ユーザーのセットアップ
20
ユーザーの作成と必要なアクセス許可
以下の権限をQlik Replicateで使用するユーザーに与えます。
• Full Load レプリケーション: ソースデータベースに対する SELECT 権限
• Apply Changes レプリケーション: Superuser 権限
※ Superuserロールを使用しない場合は、「superuserロールを持たないアカウントを使用する」を参照して設定してください。
psql -U postgres –d <使用するデータベース名>
# プロンプトでパスワードを求められるので、入力してログインします。
CREATE USER replicate_user WITH PASSWORD 'replicate_password' SUPERUSER;
GRANT USAGE ON SCHEMA <使用するスキーマ名> TO replicate_user;
GRANT SELECT ON ALL TABLES IN SCHEMA <使用するスキーマ名> TO replicate_user;
以下がユーザー作成と権限付与の例です。
21
データ型
22
ソースデータ型
次の表は、Qlik Replicateの使用時にサポートされているPostgreSQLのソースデータタイプと、Qlik Replicateのデータタイプへ
のデフォルトマッピングを示しています。PostgreSQLターゲットに同種レプリケーションする場合、「Data type considerations and
exceptions」で説明されている例外を除いて、ソースとターゲットのデータタイプは同じです。
Qlik Replicateのデータタイプについての詳細は、「Replicate data types」を参照してください。
23
ソースデータ型
PostgreSQL データ型 Qlik Replicate データ型
INTEGER INT4
SMALLINT INT2
BIGINT INT8
NUMERIC NUMERIC(28,6)
NUMERIC(p,s) If precision is =< 38, then:
NUMERIC(p,s)
If precision is => 39, then:
STRING
DECIMAL NUMERIC(28,6)
DECIMAL(p,s) If precision is =< 38, then:
NUMERIC(p,s)
If precision is => 39, then:
STRING
REAL REAL4
DOUBLE REAL8
SMALLSERIAL INT2
SERIAL INT4
BIGSERIAL INT8
MONEY NUMERIC(38,4)
※MONEY データ型は、Microsoft SQL Serverでは
FLOAT型にマップされます。
CHAR WSTRING (1)
CHAR(n) WSTRING (n)
PostgreSQL データ型 Qlik Replicate データ型
VARCHAR(n)
※ 長さ (n) の指定のないVARCHARは正しいデータ型
としてターゲットエンドポイントに認識されません。 その結
果、明示的な長さを指定せずにソース列のデータ型を
VARCHARに設定した場合、Replicateはデフォルトの
長さを8000バイトに設定します。以下の内部パラメータを
必要な長さに設定することで、デフォルトを変更することが
できます。:
unboundedVarcharMaxSize
See also Internal Parameters.
WSTRING (n)
TEXT NCLOB
BYTEA BLOB
TIMESTAMP DATETIME
TIMESTAMP (z) DATETIME
DATE
※ Replicateは、ISOフォーマットのテキストDATEフォー
マットのみをサポートします(デフォルト)。他のフォーマット
を使用した場合、エラーが発生します。日付フォーマットは、
postgresql.confファイルまたは環境変数
PGDATESTYLEで変更することができます。また、データ
ベースレベルで日付形式を変更することもできます。
DATE
TIME TIME
TIME (z) TIME
INTERVAL STRING (128) - 1 YEAR, 2 MONTHS, 3
DAYS, 4 HOURS, 5 MINUTES, 6 SECONDS
BOOLEAN STRING (5) TRUE|FALSE
24
ソースデータ型
PostgreSQL データ型 Qlik Replicate データ型
JSON
※ JSONデータの読み書きは、ワイドストリング(1文字
が2バイトを占める)で行われます。そのため、JSONカラ
ムをPostgreSQLターゲットに複製する際には、limited
lob sizeを最大JSON長の2倍に設定してください。例え
ば、JSONデータが4KBであれば、limited lob sizeの
値を8KBに設定します。
NCLOB
JSONB
※JSONBデータの読み書きは、ワイドストリング(1文字
が2バイトを占める)で行われます。そのため、JSONBカ
ラムをPostgreSQLターゲットに複製する際には、
limited lob sizeを最大JSONB長の2倍に設定してくだ
さい。例えば、JSONBデータが4KBであれば、limited
lob sizeの値を8KBに設定します。
NCLOB
ARRAY NCLOB
COMPOSITE NCLOB
INT4RANGE STRING (255)
INT8RANGE STRING (255)
NUMRANGE STRING (255)
STRRANGE STRING (255)
CHARACTER VARYING If length is specified:
WSTRING (LENGTH)
If no length is specified:
WSTRING (8000)
TINTERVAL WSTRING(255)
PostgreSQL データ型 Qlik Replicate データ型
ENUM STRING (64)
CIDR STRING (50)
INET STRING (50)
MACADDR STRING (18)
BIT (n) STRING (n)
BIT VARYING (n) STRING (n)
UUID STRING
TSVECTOR CLOB
TSQUERY CLOB
XML CLOB
POINT STRING (255) "(x,y)"
LINE STRING (255) "(x,y,z)"
LSEG STRING (255) "((x1,y1),(x2,y2))"
BOX STRING (255) "((x1,y1),(x2,y2))"
PATH CLOB "((x1,y1),(xn,yn))"
POLYGON CLOB "((x1,y1),(xn,yn))"
CIRCLE STRING (255) "(x,y),r"
25
同種レプリケーション
• PostrgreSQLのソースからPostrgreSQLのターゲットにレプリケートする場合、ソースとターゲットのデータタイプのほとんどは同
じになります。例外として、以下の表に示すものがあります。
• また、同種のレプリケーションでは、「 Column and table collation」で説明されるように、ソースの列とテーブルの照合順序
がターゲットにレプリケートされます。
※ 同種のレプリケーションでは、ソースデータは最初にQlik Replicateのデータタイプを通過するため、そのデータタイプのあらゆる
制限を受けます。レプリケートデータタイプとその制限(該当する場合)については、「Replicate data types」を参照してくだ
さい。PostgreSQLからのレプリケーションでソースデータがどのReplicateデータタイプを通過するかについては、前述の
PostgreSQLとQlik Replicateのデータタイプのマッピングテーブルを参照してください。
26
同種レプリケーション
• パーティションテーブルのレプリケーション
• パーティション化されたテーブルをPostgreSQLソースからPostgreSQLターゲットに複製するためには、次のことを行う必
要があります。 :
1. ターゲットデータベースに親テーブルと子テーブルを手動で作成します。
2. それらのテーブルにレプリケートするために、別々のタスクを定義します。
3. Full Load SettingsでTruncate before loadingオプションを設定してください。
27
同種レプリケーションにおける、データ型の注意事項と例外
• PostgreSQLから別のPostgreSQLに複製する場合、ソースとターゲットのデータタイプは、以下の例外を除き、サポートされる
すべてのPostgreSQLバージョンで同一です。
PostgreSQL ソース PostgreSQL ターゲット
ENUM STRING
COMPOSITE STRING
NUMERIC NUMERIC (28,6)
NUMERIC (p,s)
A numeric array with precision and scale.
NUMERIC
A numeric array without precision and scale.
TINTERVAL ※PostgreSQLはTINTERVALデータ型のサポートを中止しましたので、ター
ゲットデータベースのバージョンがこのデータ型をサポートしていない場合、この
データ型を持つテーブルはターゲット上に作成されません。
• JSON, JSONB データの読み書きは、ワイドストリング(1文字が2バイトを占める)で行われます。そのため、JSON,
JSONBカラムをPostgreSQLターゲットに複製する際には、limited lob sizeを最大JSON長の2倍に設定してください。例
えば、JSON , JSONBのデータが4KBであれば、limited lob sizeの値を8KBに設定します。
28
カラムとテーブルの照合順序
• 1つのPostgreSQLデータベースから別のデータベースに複製する場合、列とテーブルの照合順序は、ターゲットにレプリケーショ
ンされます。
※ 照合順序のレプリケーションをサポートするために、DBAはソースのPostgreSQLデータベースに定義された照合がター
ゲットのPostgreSQLデータベースに定義された照合と同じであることを確認する必要があります。
• 非Null制約カラムとプライマリ/ユニークインデックス名
• 同種のレプリケーションでは、非Null制約列とPrimary/Unique Index名が保持されます。
29
Qlik Replicateでの
エンドポイント定義
30
一般的な接続プロパティの設定
PostgreSQL ソース エンドポイントをQlik Replicateに追加するには、次の手順を実行します。
1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開き
ます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and
managing endpoints 」を参照してください。
2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。
3. Descriptionフィールドには、PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。
4. Roleにて、[Source] を選択します。
5. TypeのリストからPostgreSQLを選択します。
• このエンドポイントがLog Stream Stagingの設定で重複したソースとして使用されている場合、「Read changes from log stream」チェッ
クボックスを選択し、ドロップダウンリストから関連するLog Stream Stagingタスクを選択します。
• ログストリームのステージングタスクの設定と管理については、「 Using the Log Stream 」を参照してください。
6. Server Nameフィールドには、PostgreSQL データベースがインストールされているコンピュータのホスト名またはIPアドレスを入力します。
7. Portから、任意でデフォルトのポート(5432)を変更できます。
8. PostgreSQLデータベースユーザーの認証情報(ユーザー名、パスワード)を入力します。
• 認証情報はケースセンシティブです(大文字小文字を区別します) 。
9. Database名を入力するか、browseのリストからソースデータベースを選択します。
10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
31
一般的な接続プロパティの設定
SSL認証オプション
Securityセクションでは、SSLを使ってPostgreSQLデータベースに接続するようにReplicateを設定できます。
※ 証明書のパスは、WALプロトコルで変更をキャプチャするときにのみ関係します(つまり、Full Loadやメタデータの検索には関係しません)。
1. SSL Mode: 以下からひとつ選択します。:
• Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー
ルバックします。
• Disable – ユーザー名とパスワードのみで接続します。
• Allow - サーバーから要求された場合は、暗号化された接続を確立します。
• Required - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。
• Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接
続の試みは失敗します。
• Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に
記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい
るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。
2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。
3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。
4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。
5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された
場合、接続は失敗します。
6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
32
高度な接続プロパティの設定
[Advanced ] タブでは、次のプロパティを設定できます。
• Capture DDLs: このオプションを選択すると、次のような動作が行われます。 :
• オペレーション上のアーティファクトが、タスクの開始時にデータベース内に(Replicateによって)作成されます。DDLイベントをキャプチャするために、
Qlik Replicateはタスクの開始時にPostgreSQLデータベースに様々なアーティファクトを作成します。これらのアーティファクトは、「データベースから
Replicateのアーティファクトを削除する」で説明するように、後で削除することができます。
• ストリームされたDDLイベントがキャプチャされます。
• Create DDL artifacts in schema: オペレーション上のDDLデータベースのアーティファクトが作成されるスキーマを指定します。既定値は「Public」です。
• WAL heartbeat - (ソーステーブルが活動していないために)実行中でありながら変更を取り込んでいないApply Changesタスクは、そのレプリケーショ
ンスロットのLSNの位置を占め続け、WALの切り捨てを防ぎます。WALはすべてのPostgreSQLプロセスで使用されるサーバ全体のリソースですので、変更
が長期間取り込まれないと、非常に大きくなる可能性があります。 この現象を防ぐには、"WAL heartbeat "オプションを有効にしてください。このオプションを
有効にすると、PostgreSQLソースエンドポイントは、ハートビートテーブルに定期的に疑似トランザクション(すなわち "ハートビート")をコミットすることで、タ
スクアクティビティを模倣し、それによってタスクスロットのLSNポジションを進めます。
• Create WAL heartbeat table in schema: WALハートビートテーブル(attrep_wal_heartbeat)が作成されるスキーマです。デフォルト値
は "public "です。
• Heartbeat frequency (minutes): ハートビートテーブルにトランザクションをコミットする頻度
33
高度な接続プロパティの設定
• Internal parameters:
• 内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。
• internal Qlik Replicate parametersを追加するには:
• Internal Parameters リンクをクリックします。
• Internal Parameters ダイアログボックスが開きます。
• 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。
• 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。
• 必要に応じてデフォルト値を変更します。
• パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。
• More Options
• これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に
指示されていない限り、これらのオプションを設定しないでください。
• オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ
ョンの値を設定したり、有効にしたりします。
• Settings summary
• 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ
る場合に便利です。
34
データベースからReplicateのアーティファクトを削除する
• DDLをキャプチャするために、Qlik Replicateはタスクの開始時にPostgreSQLデータベースに様々なアーティファクトを作成します。タスクが完了した時、こ
れらのアーティファクトを削除したい場合があります。
• アーティファクトを削除するには、以下のステートメントを(以下の順番で)発行してください(publicはアーティファクトが作成されるデフォルトのスキーマで
す)。:
※ イベントトリガーは特定のスキーマに属していないことに注意してください。
※ スキーマの削除は、細心の注意を払って行う必要があります。運用中のスキーマを削除してはいけません、特にpublicスキーマの削除には細心の注
意を払う必要があります。
drop event trigger attrep_intercept_ddl;
drop function public.attrep_intercept_ddl()
drop table public.attrep_ddl_audit
drop schema public
35
Microsoft Azure for
PostgreSQL の変更補足に
関する追加情報
36
Microsoft Azure for PostgreSQL の変更補足
• Microsoft Azure for PostgreSQLからの変更を取り込めるようにするには、以下の手順で「replication」プロパティを「logical」に設定する必要があり
ます。
• Azure CLI を開き、以下のコマンドを実行します。:
※ Azure CLIをダウンロードするか、Azureポータルのシェルコマンドで接続することができます。
• 構文:
• az postgres server configuration set --resource-group resource-group --server-name server-name --name
azure.replication_support --value logical
• 実行例:
• az postgres server configuration set --resource-group azuredb --server-name qlik-azure-pg --name
azure.replication_support --value logical
• ポータルまたはCLIからデータベースを再起動します。
37
AWS Aurora Cloud for
PostgreSQLの追加情報
38
クライアント側の前提条件
• Qlik Replicate をWindowsサーバーにインストールしている場合:
• PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64のみを、Qlik Replicateのマシンにインストールする必要があります。
※ psql.exe のパスがシステム環境変数を追加してください。 (例 "C:Program FilesPostgreSQL1202bin")
• Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。:
1. postgresql12をインストールします。例えば、 Red Hat 7 の場合は、postgresql12-12.1-2PGDG.rhel7.x86_64.rpm が必要な
パッケージです。
2. ODBC driver postgresql12をインストールします。例えば、 Red Hat 7の場合は、postgresql12-odbc-12.01.0000-
1PGDG.rhel7.x86_64.rpmが必要なパッケージです。
3. ドライバの場所を site_arep_login.sh ファイルにコピーします。 :
• これにより、"LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。
echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh
39
クライアント側の前提条件
• Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。:
4. 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。:
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/pgsql-12/lib/psqlodbc.so
Setup = /usr/pgsql-12/lib/psqlodbcw.so
Debug = 0
CommLog = 1
UsageCount = 2
• Apply Changesタスクオプションを有効にした場合、PostgreSQLソースエンドポイントの「General」タブで指定したユーザーにスーパー
ユーザー権限を付与する必要があります。
40
セキュリティ要件
• 以下の要件を満たすユーザーを用意してください。
• Full Load レプリケーション: ソースデータベースに対する SELECT 権限
• Apply Changes レプリケーション: 次項で解説
• Apply Changesおよび/またはStore Changesタスクレプリケーションオプションが有効な場合、AWS Aurora Cloud
for PostgreSQLソースエンドポイントのGeneralタブで指定するユーザーにsuperuser権限を付与する必要があります。
41
AWS Aurora Cloud for PostgreSQLのCDC設定
• PostgreSQLデータベースインスタンスのAWSマスターユーザーアカウントを、AWS Aurora Cloud for PostgreSQLソースエンドポイントのユーザー
として使用することができます。マスターユーザーアカウントは、チェンジデータキャプチャー(CDC)の設定を可能にする必要な役割を持っています。
• マスターユーザーアカウントを使用したくない場合は、使用するアカウントがrds_superuserロールとrds_replicationロールを持っている必要がありま
す。rds_replicationロールは、論理スロットの管理と論理スロットを使用したデータのストリーミングの権限を付与します。
• AWS Aurora Cloud PostgreSQLデータベースインスタンスのロジカルレプリケーションを有効にするには、以下の手順に従います。
1. 以下の設定で、新しいDBクラスターパラメータグループを作成します。:
1. データベースパラメータグループのrds.logical_replicationパラメータを1に設定します。
2. max_wal_sender - 並行して実行できるタスクの数を設定します。
3. max_replication_slots – 接続(例:タスク)ごとに新しいスロットが作成されます。このパラメータは、データベースに確立できる同
時接続数を設定します。
2. AWS Aurora CloudのクラスタDBをDBクラスタのパラメータグループにリンクします。
※ attrep_intercept_ddlストアドプロシージャがデフォルトのスキーマで作成されていない場合は、エンドポイント設定のAdvancedタブでCreate
DDL artifacts in schemaフィールドにスキーマ名を指定する必要があります。
42
制限事項
• データベース名にセミコロン(;)を含むことはできません。
• ソーステーブルとそれに対応するターゲットテーブルの両方に、同一の主キーがなければなりません。どちらかのテーブルに主キーがない場合、DELETE
やUPDATEのレコード操作の結果は予測できないものになります。
• “Start Process Changes from Timestamp” のRunオプションはサポートされません。
• Before Imageのレプリケーションはサポートされません。
• 同じ名前でケースが異なる複数のテーブル(例:table1、TABLE1、Table1)を複製すると、予測不可能な動作を引き起こす可能性があるため、
サポートされていません。
• CREATE|ALTER|DROP]テーブルDDLの変更処理は、内部の関数/プロシージャのボディブロックやその他の入れ子構造に保持されていない限
りサポートされます。 例えば、次のような変更は捕捉されません。 :
CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT
NULL);
END;
$$;
43
制限事項
• TRUNCATE操作の変更処理はサポートされていません。
• Deferred Constraintsはサポートされていません。
• パーティションテーブル
• パーティション化されたテーブルのフルロードレプリケーションを実行すると、親テーブルが作成され、パーティションごとに個別のテーブルが作成され
ます。
• パーティション化された親テーブルに対するDMLは、対応するターゲットテーブルの物理パーティションにのみ適用されます。
• パーティション化されたテーブルでは主キーがサポートされていないため、UPDATE操作に影響を与える可能性があります。
• また、以下も参照してください。同種のレプリケーション(AWS Aurora Cloud for PostgreSQL同士)に適用されるパーティション・テーブ
ルの要件については、「 Replication of Partitioned Tables 」も参照してください。
• パラレルロード機能を使用する場合、パーティションやサブパーティションによるテーブルの分割はサポートされていません。
• 主キーを含まないフィルターを使用する場合、DELETE操作はキャプチャされません。
• Unique IndexセグメントへのUPDATEはターゲットに適用されず、試みられたUPDATEの記録がattrep_apply_exceptions Controlテーブル
に書き込まれます。
44
一般的な接続プロパティの設定
AWS Aurora Cloud for PostgreSQL ソース エンドポイントをQlik Replicateに追加するには、次の手順を実行します。
1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開きます。次に、「New
Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してくださ
い。
2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。
3. Descriptionフィールドには、AWS Aurora Cloud for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。
4. Roleにて、[Source] を選択します。
5. TypeのリストからAWS Aurora Cloud for PostgreSQLを選択します。
• このエンドポイントがLog Stream Stagingの設定で重複したソースとして使用されている場合、「Read changes from log stream」チェックボックスを選択し、ドロ
ップダウンリストから関連するLog Stream Stagingタスクを選択します。
• ログストリームのステージングタスクの設定と管理については、「 Using the Log Stream 」を参照してください。
6. Server Nameフィールドには、AWS Aurora Cloud for PostgreSQLデータベースインスタンスのホスト名を入力します。
• 例:myinstance.123456789012.us-east-1.rds.amazonaws.com
7. Portから、任意でデフォルトのポート(5432)を変更できます。
8. データベースユーザーの認証情報(ユーザー名、パスワード)を入力します。
• 認証情報はケースセンシティブです(大文字小文字を区別します) 。
• 正しいアクセス権を持つユーザ情報を設定してください。
9. Database名を入力するか、browseのリストからソースデータベースを選択します。
10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
45
一般的な接続プロパティの設定
SSL認証オプション
Securityセクションでは、SSLを使ってPostgreSQLデータベースに接続するようにReplicateを設定できます。
※ 証明書のパスは、WALプロトコルで変更をキャプチャするときにのみ関係します(つまり、Full Loadやメタデータの検索には関係しません)。
1. SSL Mode: 以下からひとつ選択します。:
• Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー
ルバックします。
• Disable – ユーザー名とパスワードのみで接続します。
• Allow - サーバーから要求された場合は、暗号化された接続を確立します。
• Required - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。
• Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接
続の試みは失敗します。
• Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に
記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい
るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。
2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。
3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。
4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。
5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された
場合、接続は失敗します。
6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
46
高度な接続プロパティの設定
[Advanced ] タブでは、次のプロパティを設定できます。
• Capture DDLs: このオプションを選択すると、次のような動作が行われます。 :
• オペレーション上のアーティファクトが、タスクの開始時にデータベース内に(Replicateによって)作成されます。DDLイベントをキャプチャするために、
Qlik Replicateはタスクの開始時にAWS Aurora Cloud for PostgreSQLデータベースに様々なアーティファクトを作成します。これらのアーティファ
クトは、「データベースからReplicateのアーティファクトを削除する」で説明するように、後で削除することができます。
• ストリームされたDDLイベントがキャプチャされます。
• Create DDL artifacts in schema: オペレーション上のDDLデータベースのアーティファクトが作成されるスキーマを指定します。既定値は「Public」です。
• WAL heartbeat - (ソーステーブルが活動していないために)実行中でありながら変更を取り込んでいないApply Changesタスクは、そのレプリケーショ
ンスロットのLSNの位置を占め続け、WALの切り捨てを防ぎます。WALはすべてのAWS Aurora Cloud for PostgreSQLプロセスで使用されるサーバ全
体のリソースですので、変更が長期間取り込まれないと、非常に大きくなる可能性があります。 この現象を防ぐには、"WAL heartbeat "オプションを有効に
してください。このオプションを有効にすると、 AWS Aurora Cloud for PostgreSQLソースエンドポイントは、ハートビートテーブルに定期的に疑似トランザ
クション(すなわち "ハートビート")をコミットすることで、タスクアクティビティを模倣し、それによってタスクスロットのLSNポジションを進めます。
• Create WAL heartbeat table in schema: WALハートビートテーブル(attrep_wal_heartbeat)が作成されるスキーマです。デフォルト値
は "public "です。
• Heartbeat frequency (minutes): ハートビートテーブルにトランザクションをコミットする頻度
47
高度な接続プロパティの設定
• Internal parameters:
• 内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。
• internal Qlik Replicate parametersを追加するには:
• Internal Parameters リンクをクリックします。
• Internal Parameters ダイアログボックスが開きます。
• 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。
• 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。
• 必要に応じてデフォルト値を変更します。
• パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。
• More Options
• これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に
指示されていない限り、これらのオプションを設定しないでください。
• オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ
ョンの値を設定したり、有効にしたりします。
• Settings summary
• 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ
る場合に便利です。
48
Amazon RDS for
PostgreSQLの追加情報
49
クライアント側の前提条件
• Qlik Replicate をWindowsサーバーにインストールしている場合:
• PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64のみを、Qlik Replicateのマシンにインストールする必要があります。
※ psql.exe のパスがシステム環境変数を追加してください。 (例 "C:Program FilesPostgreSQL1202bin")
• Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。:
1. postgresql12をインストールします。例えば、 Red Hat 7 の場合は、postgresql12-12.1-2PGDG.rhel7.x86_64.rpm が必要な
パッケージです。
2. ODBC driver postgresql12をインストールします。例えば、 Red Hat 7の場合は、postgresql12-odbc-12.01.0000-
1PGDG.rhel7.x86_64.rpmが必要なパッケージです。
3. ドライバの場所を site_arep_login.sh ファイルにコピーします。 :
• これにより、"LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。
echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh
50
クライアント側の前提条件
• Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。:
4. 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。:
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/pgsql-12/lib/psqlodbc.so
Setup = /usr/pgsql-12/lib/psqlodbcw.so
Debug = 0
CommLog = 1
UsageCount = 2
• Apply Changesタスクオプションを有効にした場合、PostgreSQLソースエンドポイントの「General」タブで指定したユーザーにスーパー
ユーザー権限を付与する必要があります。
51
セキュリティ要件
• 以下の要件を満たすユーザーを用意してください。
• Full Load レプリケーション: ソースデータベースに対する SELECT 権限
• Apply Changes レプリケーション: 次項で解説
52
Amazon RDS for PostgreSQL のCDC設定
• PostgreSQLデータベースインスタンスのAWSマスターユーザーアカウントを、Amazon RDS for PostgreSQLソースエンドポイントのユーザーとして
使用することができます。マスターユーザーアカウントは、チェンジデータキャプチャー(CDC)の設定を可能にする必要な役割を持っています。
• マスターユーザーアカウントを使用したくない場合は、使用するアカウントがrds_superuserロールとrds_replicationロールを持っている必要がありま
す。rds_replicationロールは、論理スロットの管理と論理スロットを使用したデータのストリーミングの権限を付与します。
• Amazon RDS for PostgreSQLデータベースインスタンスのロジカルレプリケーションを有効にするには、以下の手順に従います。
1. 以下の設定で、新しいDBクラスターパラメータグループを作成します。:
1. データベースパラメータグループのrds.logical_replicationパラメータを1に設定します。
2. max_wal_sender - 並行して実行できるタスクの数を設定します。
3. max_replication_slots – 接続(例:タスク)ごとに新しいスロットが作成されます。このパラメータは、データベースに確立できる同
時接続数を設定します。
2. Amazon RDS for PostgreSQLのクラスタDBをDBクラスタのパラメータグループにリンクします。
※ attrep_intercept_ddlストアドプロシージャがデフォルトのスキーマで作成されていない場合は、エンドポイント設定のAdvancedタブでCreate
DDL artifacts in schemaフィールドにスキーマ名を指定する必要があります。
53
rds_superuserロールを持たないアカウントを使用する
• 「rds_superuser」ロールを持つアカウントを使用しない場合は、データ定義言語(DDL)イベントをキャプチャするためにいくつかのオブジェクトを作
成する必要があります。選択したアカウントでこれらのオブジェクトを作成し、マスターユーザーアカウントでトリガーを作成します。
1. オブジェクトを作成するスキーマを選択します。デフォルトのスキーマはpublicです。スキーマが実際に存在し、スーパーユーザー権限を持たないアカウン
トがアクセスできることを確認してください。
2. 次のコマンドを実行して、テーブルattrep_ddl_auditを作成します。
create table <オブジェクトを作成するスキーマ名>.attrep_ddl_audit
(
c_key bigserial primary key,
c_time timestamp, -- Informational
c_user varchar(64), -- Informational: current_user
c_txn varchar(16), -- Informational: current transaction
c_tag varchar(24), -- Either 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE'
c_oid integer, -- For future use - TG_OBJECTID
c_name varchar(64), -- For future use - TG_OBJECTNAME
c_schema varchar(64), -- For future use - TG_SCHEMANAME. For now, holds the current_schema
c_ddlqry text -- The DDL query associated with the current DDL event)
54
rds_superuserロールを持たないアカウントを使用する
3. 次のコマンドを実行して、関数attrep_intercept_ddlを作成します。:
CREATE OR REPLACE FUNCTION <オブジェクトを作成するスキーマ名>.attrep_intercept_ddl()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
declare _qry text;
BEGIN
if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE') then
SELECT current_query() into _qry;
insert into <オブジェクトを作成するスキーマ名>.attrep_ddl_audit
values
(
default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,'',current_schema,_qry
);
delete from <オブジェクトを作成するスキーマ名>.attrep_ddl_audit;
end if;
END;
$$;
55
rds_superuserロールを持たないアカウントを使用する
4. スーパーユーザー権限を持たないアカウントでログインしている場合はここで一度ログアウトし、superuserロールを持つアカウントでログインしなおしま
す。
※ attrep_intercept_ddlストアドプロシージャがデフォルトのスキーマで作成されていない場合は、エンドポイント設定時にAdvancedタブ(高
度な接続プロパティ設定)で、Create DDL artifacts in schemaにスキーマ名を指定する必要があります。
5. 以下のコマンドを実行して、イベントトリガー「attrep_intercept_ddl」を作成します。
CREATE EVENT TRIGGER attrep_intercept_ddl ON ddl_command_end
EXECUTE PROCEDURE <オブジェクトを作成するスキーマ名>.attrep_intercept_ddl();
56
制限事項
• データベース名にセミコロン(;)を含むことはできません。
• ”RDS”はAWSの予約語のため、”rds”から始まるタスク名は設定してはいけません。
• ソーステーブルとそれに対応するターゲットテーブルの両方に、同一の主キーがなければなりません。どちらかのテーブルに主キーがない場合、DELETE
やUPDATEのレコード操作の結果は予測できないものになります。
• “Start Process Changes from Timestamp” のRunオプションはサポートされません。
• Before Imageのレプリケーションはサポートされません。
• 同じ名前でケースが異なる複数のテーブル(例:table1、TABLE1、Table1)を複製すると、予測不可能な動作を引き起こす可能性があるため、
サポートされていません。
• CREATE|ALTER|DROP]テーブルDDLの変更処理は、内部の関数/プロシージャのボディブロックやその他の入れ子構造に保持されていない限
りサポートされます。 例えば、次のような変更は捕捉されません。 :
CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT
NULL);
END;
$$;
57
制限事項
• TRUNCATE操作の変更処理はサポートされていません。
• Deferred Constraintsはサポートされていません。
• パーティションテーブル
• パーティション化されたテーブルのフルロードレプリケーションを実行すると、親テーブルが作成され、パーティションごとに個別のテーブルが作成され
ます。
• パーティション化された親テーブルに対するDMLは、対応するターゲットテーブルの物理パーティションにのみ適用されます。
• パーティション化されたテーブルでは主キーがサポートされていないため、UPDATE操作に影響を与える可能性があります。
• また、以下も参照してください。同種のレプリケーション(Amazon RDS for PostgreSQL同士)に適用されるパーティション・テーブルの要
件については、「 Replication of Partitioned Tables 」も参照してください。
• パラレルロード機能を使用する場合、パーティションやサブパーティションによるテーブルの分割はサポートされていません。
• 主キーを含まないフィルターを使用する場合、DELETE操作はキャプチャされません。
58
一般的な接続プロパティの設定
Amazon RDS for PostgreSQL ソース エンドポイントをQlik Replicateに追加するには、次の手順を実行します。
1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開きます。次に、「New
Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してくださ
い。
2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。
3. Descriptionフィールドには、 Amazon RDS for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。
4. Roleにて、[Source] を選択します。
5. TypeのリストからAmazon RDS for PostgreSQLを選択します。
• このエンドポイントがLog Stream Stagingの設定で重複したソースとして使用されている場合、「Read changes from log stream」チェックボックスを選択し、ドロ
ップダウンリストから関連するLog Stream Stagingタスクを選択します。
• ログストリームのステージングタスクの設定と管理については、「 Using the Log Stream 」を参照してください。
6. Server Nameフィールドには、 Amazon RDS for PostgreSQLデータベースインスタンスのホスト名を入力します。
• 例:myinstance.123456789012.us-east-1.rds.amazonaws.com
7. Portから、任意でデフォルトのポート(5432)を変更できます。
8. データベースユーザーの認証情報(ユーザー名、パスワード)を入力します。
• 認証情報はケースセンシティブです(大文字小文字を区別します) 。
• 正しいアクセス権を持つユーザ情報を設定してください。
9. Database名を入力するか、browseのリストからソースデータベースを選択します。
10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
59
一般的な接続プロパティの設定
SSL認証オプション
Securityセクションでは、SSLを使ってPostgreSQLデータベースに接続するようにReplicateを設定できます。
※ 証明書のパスは、WALプロトコルで変更をキャプチャするときにのみ関係します(つまり、Full Loadやメタデータの検索には関係しません)。
1. SSL Mode: 以下からひとつ選択します。:
• Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー
ルバックします。
• Disable – ユーザー名とパスワードのみで接続します。
• Allow - サーバーから要求された場合は、暗号化された接続を確立します。
• Required - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。
• Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接
続の試みは失敗します。
• Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に
記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい
るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。
2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。
3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。
4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。
5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された
場合、接続は失敗します。
6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
60
高度な接続プロパティの設定
[Advanced ] タブでは、次のプロパティを設定できます。
• Capture DDLs: このオプションを選択すると、次のような動作が行われます。 :
• オペレーション上のアーティファクトが、タスクの開始時にデータベース内に(Replicateによって)作成されます。DDLイベントをキャプチャするために、
Qlik Replicateはタスクの開始時にAmazon RDS for PostgreSQLデータベースに様々なアーティファクトを作成します。これらのアーティファクトは
、「データベースからReplicateのアーティファクトを削除する」で説明するように、後で削除することができます。
• ストリームされたDDLイベントがキャプチャされます。
• Create DDL artifacts in schema: オペレーション上のDDLデータベースのアーティファクトが作成されるスキーマを指定します。既定値は「Public」です。
• WAL heartbeat - (ソーステーブルが活動していないために)実行中でありながら変更を取り込んでいないApply Changesタスクは、そのレプリケーショ
ンスロットのLSNの位置を占め続け、WALの切り捨てを防ぎます。WALはすべてのAmazon RDS for PostgreSQLプロセスで使用されるサーバ全体のリ
ソースですので、変更が長期間取り込まれないと、非常に大きくなる可能性があります。 この現象を防ぐには、"WAL heartbeat "オプションを有効にしてく
ださい。このオプションを有効にすると、 Amazon RDS for PostgreSQLソースエンドポイントは、ハートビートテーブルに定期的に疑似トランザクション(す
なわち "ハートビート")をコミットすることで、タスクアクティビティを模倣し、それによってタスクスロットのLSNポジションを進めます。
• Create WAL heartbeat table in schema: WALハートビートテーブル(attrep_wal_heartbeat)が作成されるスキーマです。デフォルト値
は "public "です。
• Heartbeat frequency (minutes): ハートビートテーブルにトランザクションをコミットする頻度
61
高度な接続プロパティの設定
• Internal parameters:
• 内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。
• internal Qlik Replicate parametersを追加するには:
• Internal Parameters リンクをクリックします。
• Internal Parameters ダイアログボックスが開きます。
• 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。
• 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。
• 必要に応じてデフォルト値を変更します。
• パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。
• More Options
• これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に
指示されていない限り、これらのオプションを設定しないでください。
• オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ
ョンの値を設定したり、有効にしたりします。
• Settings summary
• 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ
る場合に便利です。
62
Google Cloud SQL for
PostgreSQLの追加情報
63
クライアント側の前提条件
• Qlik Replicate をWindowsサーバーにインストールしている場合:
• PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64のみを、Qlik Replicateのマシンにインストールする必要があります。
※ psql.exe のパスがシステム環境変数を追加してください。 (例 "C:Program FilesPostgreSQL1202bin")
• Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。:
1. postgresql12をインストールします。例えば、 Red Hat 7 の場合は、postgresql12-12.1-2PGDG.rhel7.x86_64.rpm が必要な
パッケージです。
2. ODBC driver postgresql12をインストールします。例えば、 Red Hat 7の場合は、postgresql12-odbc-12.01.0000-
1PGDG.rhel7.x86_64.rpmが必要なパッケージです。
3. ドライバの場所を site_arep_login.sh ファイルにコピーします。 :
• これにより、"LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。
echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh
64
クライアント側の前提条件
• Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。:
4. 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。:
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/pgsql-12/lib/psqlodbc.so
Setup = /usr/pgsql-12/lib/psqlodbcw.so
Debug = 0
CommLog = 1
UsageCount = 2
65
セキュリティ要件
• Google SQL for PostgreSQLソースエンドポイントは、フルロードのみサポートしています。 Qlik Replicate ユーザーには、
ソースデータベースに対するSELECT権限を付与してください。
66
制限事項
• Google SQL for PostgreSQLソースエンドポイントは、フルロードのみサポートしています。Apply Changes, Store Changesオプションはサ
ポートされていません。
• データベース名にセミコロン(;)を含むことはできません。
• 同じ名前でケースが異なる複数のテーブル(例:table1、TABLE1、Table1)を複製すると、予測不可能な動作を引き起こす可能性があるため、
サポートされていません。
• Deferred Constraintsはサポートされていません。
• パーティションテーブル
• パーティション化されたテーブルのフルロードレプリケーションを実行すると、親テーブルが作成され、パーティションごとに個別のテーブルが作成され
ます。
• また、以下も参照してください。同種のレプリケーション(Google Cloud SQL for PostgreSQL同士)に適用されるパーティション・テーブ
ルの要件については、「 Replication of Partitioned Tables 」も参照してください。
• パラレルロード機能を使用する場合、パーティションやサブパーティションによるテーブルの分割はサポートされていません。
• 主キーを含まないフィルターを使用する場合、DELETE操作はキャプチャされません。
67
一般的な接続プロパティの設定
Google SQL for PostgreSQL ソース エンドポイントをQlik Replicateに追加するには、次の手順を実行します。
1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開きます。次に、「New
Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してくださ
い。
2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。
3. Descriptionフィールドには、 Google SQL for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。
4. Roleにて、[Source] を選択します。
5. TypeのリストからGoogle SQL for PostgreSQLを選択します。
• このエンドポイントがLog Stream Stagingの設定で重複したソースとして使用されている場合、「Read changes from log stream」チェックボックスを選択し、ドロ
ップダウンリストから関連するLog Stream Stagingタスクを選択します。
• ログストリームのステージングタスクの設定と管理については、「 Using the Log Stream 」を参照してください。
6. Server フィールドには、 Google SQL for PostgreSQLデータベースのIPアドレスかホスト名を入力します。
7. Portから、任意でデフォルトのポート(5432)を変更できます。
8. データベースユーザーの認証情報(ユーザー名、パスワード)を入力します。
• 認証情報はケースセンシティブです(大文字小文字を区別します) 。
• 正しいアクセス権を持つユーザ情報を設定してください。
9. Database名を入力するか、browseのリストからソースデータベースを選択します。
10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
68
高度な接続プロパティの設定
• Internal parameters:
• 内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。
• internal Qlik Replicate parametersを追加するには:
• Internal Parameters リンクをクリックします。
• Internal Parameters ダイアログボックスが開きます。
• 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。
• 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。
• 必要に応じてデフォルト値を変更します。
• パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。
• More Options
• これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に
指示されていない限り、これらのオプションを設定しないでください。
• オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ
ョンの値を設定したり、有効にしたりします。
• Settings summary
• 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ
る場合に便利です。
[Advanced ] タブでは、次のプロパティを設定できます。
69
Using a
PostgreSQL-Based
database as a
target
70
対応するデータベース
このセクションでは、レプリケーションタスクのターゲットとして PostgreSQLベースのデータベースをセットアップして使用する方法を説明します。
以下のいずれかのデータベースへレプリケーションを行う場合は、Replicate PostgreSQL エンドポイントを設定する必要があります。
• PostgreSQL
• Amazon Aurora (PostgreSQL)
• Amazon RDS for PostgreSQL
71
一般的な前提条件
• Qlik ReplicateタスクでPostgreSQLをエンドポイントとして使用するには、以下の前提条件が満たされていることを確認してください。
• Qlik Replicate Server for Windows
• The PostgreSQL ODBC Driver: PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64 または以降のバー
ジョンをReplicateサーバーにインストールします。
• Postgresql-binaries:
• postgresql-12.6-3-windows-x64-binaries.zip をダウンロードします。
• binフォルダーをReplicateサーバマシンにコピーします。
• binフォルダのパスをサーバーのシステム環境変数に追加します。
※ PostgreSQLバイナリとGreenplumクライアントが同じReplicate Server上に配置されている場合、PostgreSQLター
ゲットを使用するタスクは失敗します。
• Microsoft Visual Studio 2013 Redistributable (x86) - (x64ではない) – がQlik Replicateサーバーマシンにインス
トールされている必要があります。
72
一般的な前提条件
• Qlik Replicate Server for Linux:
• Postgresql12をインストールします。例えば、Red Hat 7なら、 postgresql12-12.1-2PGDG.rhel7.x86_64.rpmパッケージが必要となり
ます。
• ODBCドライバー postgresql12 をインストールします。例えば、Red Hat 7なら、 postgresql12-odbc-12.01.0000-
1PGDG.rhel7.x86_64.rpmが必要なクライアントとなります。
• 以下のコマンドで、ドライバーのロケーションをsite_arep_login.sh ファイルにコピーします。:
• "LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。
• 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。:
echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/pgsql-12/lib/psqlodbc.so
Setup = /usr/pgsql-12/lib/psqlodbcw.so
Debug = 0
CommLog = 1
UsageCount = 2
73
制限事項
• ドライバーの制限により、重複するレコードを含む主キー/ユニークインデックスのないテーブルに対するUPDATEおよびDELETE操作はサポートされていません。
これらのテーブルに変更を加えると、ターゲットのすべてのレコードに影響を与えます。
74
セキュリティ要件
• エンドポイント設定のGeneralタブの「Setting general connection properties」で指定したユーザーは、PostgreSQLデー
タベースに登録されているユーザーである必要があります。
75
データ型
76
ターゲットデータ型
次の表は、Qlik Replicateの使用時にサポートされているPostgreSQLデータベースのターゲットデータタイプと、Qlik Replicateの
データタイプからのデフォルトマッピングを示しています。
ソースからマッピングされたデータタイプを表示する方法については、使用しているソースエンドポイントのセクションを参照してください。
Qlik Replicateのデータタイプの詳細については、「Replicate data types」を参照してください。
77
ターゲットデータ型
Qlik Replicate データ型 PostgreSQL データ型
BOOL BOOL
BYTES BYTEA
DATE DATE
TIME TIME
DATETIME If scale is => 0 and =< 6, then:
TIMESTAMP
If scale is => 7 and =< 12, then:
VARCHAR (37)
INT1 SMALLINT
INT2 SMALLINT
INT4 INTEGER
INT8 BIGINT
NUMERIC DECIMAL (P, S)
REAL4 FLOAT4
REAL8 FLOAT8
STRING If length is 1 - 21845, then:
VARCHAR (Length in Bytes = The STRING value multiplied by three)
If length is 21846 - 2147483647, then:
VARCHAR (65535)
UINT1 SMALLINT
UINT2 INTEGER
UINT4 BIGINT
UINT8 BIGINT
Qlik Replicate データ型 PostgreSQL データ型
WSTRING If length is 1 - 21845, then:
VARCHAR (Length in Bytes = The WSTRING value multiplied by three)
If length is 21846 - 2147483647, then:
VARCHAR (65535)
BLOB BYTEA
NCLOB TEXT
CLOB TEXT
78
PostgreSQLソースから複製する際のデータタイプ
• PostgreSQLソースからのレプリケーションでは、ユーザー定義のデータ型を持つ列を除き、すべての列に対して同じデータ型で
ターゲットテーブルが作成されます。ユーザー定義のデータ型の場合、データ型はターゲットでは "character varying "として作
成されます。
79
Qlik Replicateでの
エンドポイント定義
80
一般的な接続プロパティの設定
PostgreSQL ターゲット エンドポイントをQlik Replicateに追加するには、次の手順を実行します。
1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開き
ます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and
managing endpoints 」を参照してください。
2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。
3. Descriptionフィールドには、PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。
4. Roleにて、[Target] を選択します。
5. Typeのリストから[PostgreSQL]を選択します。以下の何れのDBについても[PostgreSQL]を選択してください。
• PostgreSQL, Amazon Aurora PostgreSQL, Amazon RDS for PostgreSQL
6. Server フィールドには、PostgreSQLデータベースがインストールされているコンピュータのホスト名またはIPアドレスを入力します。
7. Portから、任意でデフォルトのポート(5432)を変更できます。
8. PostgreSQLデータベースの認証ユーザーのPostgreSQL認証情報(ユーザー名、パスワード)を入力します。この情報がわからない場合は、
PostgreSQLデータベース管理者(DBA)に確認してください。
• こちらのフィールドは、ケースセンシティブです(大文字小文字を区別します)。
9. Database名を入力するか、リストからソースデータベースを選択します。
10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
81
一般的な接続プロパティの設定
SSL認証オプション
Securityセクションでは、SSLを使ってPostgreSQLデータベースに接続するようにReplicateを設定できます。
※ 指定された証明書は、一括挿入操作にのみ関連します。
1. SSL Mode: 以下からひとつ選択します。:
• Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー
ルバックします。
• Disable – ユーザー名とパスワードのみで接続します。
• Allow - サーバーから要求された場合は、暗号化された接続を確立します。
• Require - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。
• Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接
続の試みは失敗します。
• Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に
記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい
るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。
2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。
3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。
4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。
5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された
場合、接続は失敗します。
6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
82
高度な接続プロパティの設定
[Advanced ] タブでは、次のプロパティを設定できます。
• Max file size (KB): CSVファイルがPostgreSQLのターゲットデータベースに読み込まれるまでの最大サイズ(KB)を選択または入力します。既定値は
32000KBです。
83
高度な接続プロパティの設定
• Internal parameters:
• 内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。
• internal Qlik Replicate parametersを追加するには:
• Internal Parameters リンクをクリックします。
• Internal Parameters ダイアログボックスが開きます。
• 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。
• 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。
• 必要に応じてデフォルト値を変更します。
• パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。
• More Options
• これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に
指示されていない限り、これらのオプションを設定しないでください。
• オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ
ョンの値を設定したり、有効にしたりします。
• Settings summary
• 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ
る場合に便利です。
84
Microsoft Azure
Database for
PostgreSQLの追加情報
85
一般的な接続プロパティの設定
Microsoft Azure Database for PostgreSQL ターゲット エンドポイントをQlik Replicateに追加するには、次の手順を実行します。
1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開き
ます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and
managing endpoints 」を参照してください。
2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。
3. Descriptionフィールドには、Microsoft Azure Database for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の
設定項目です。
4. Roleにて、[Target] を選択します。
5. Typeのリストから[Microsoft Azure Database for PostgreSQL]を選択します。
6. Server フィールドには、Microsoft Azure Database for PostgreSQLデータベースがインストールされているコンピュータのホスト名またはIPアドレ
スを入力します。
7. Portから、任意でデフォルトのポート(5432)を変更できます。
8. Microsoft Azure Database for PostgreSQLデータベースの認証ユーザーのMicrosoft Azure Database for PostgreSQL認証情報(ユ
ーザー名、パスワード)を入力します。この情報がわからない場合は、 Microsoft Azure Database for PostgreSQLデータベース管理者(DBA
)に確認してください。
• こちらのフィールドは、ケースセンシティブです(大文字小文字を区別します)。
9. Database名を入力するか、リストからソースデータベースを選択します。
10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
86
一般的な接続プロパティの設定
SSL認証オプション
Securityセクションでは、SSLを使ってMicrosoft Azure Database for PostgreSQLデータベースに接続するようにReplicateを設定できます。
※ 指定された証明書は、一括挿入操作にのみ関連します。
1. SSL Mode: 以下からひとつ選択します。:
• Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー
ルバックします。
• Disable – ユーザー名とパスワードのみで接続します。
• Allow - サーバーから要求された場合は、暗号化された接続を確立します。
• Require - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。
• Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接
続の試みは失敗します。
• Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に
記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい
るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。
2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。
3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。
4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。
5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された
場合、接続は失敗します。
6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
87
高度な接続プロパティの設定
[Advanced ] タブでは、次のプロパティを設定できます。
• Max file size (KB): CSVファイルがMicrosoft Azure Database for PostgreSQLのターゲットデータベースに読み込まれるまでの最大サイズ(KB)
を選択または入力します。既定値は32000KBです。
88
Google Cloud SQL for
PostgreSQLの追加情報
89
一般的な接続プロパティの設定
Google Cloud SQL for PostgreSQL ターゲット エンドポイントをQlik Replicateに追加するには、次の手順を実行します。
1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開き
ます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and
managing endpoints 」を参照してください。
2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。
3. Descriptionフィールドには、Google Cloud SQL for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項
目です。
4. Roleにて、[Target] を選択します。
5. Typeのリストから[Google Cloud SQL for PostgreSQL]を選択します。
6. Server フィールドには、Google Cloud SQL for PostgreSQLデータベースがインストールされているコンピュータのホスト名またはIPアドレスを入力
します。
7. Portから、任意でデフォルトのポート(5432)を変更できます。
8. Google Cloud SQL for PostgreSQLデータベースの認証ユーザーのGoogle Cloud SQL for PostgreSQL認証情報(ユーザー名、パスワー
ド)を入力します。この情報がわからない場合は、 Google Cloud SQL for PostgreSQLデータベース管理者(DBA)に確認してください。
• こちらのフィールドは、ケースセンシティブです(大文字小文字を区別します)。
9. Database名を入力するか、リストからソースデータベースを選択します。
10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
90
一般的な接続プロパティの設定
SSL認証オプション
Securityセクションでは、SSLを使ってGoogle Cloud SQL for PostgreSQLデータベースに接続するようにReplicateを設定できます。
※ 指定された証明書は、一括挿入操作にのみ関連します。
1. SSL Mode: 以下からひとつ選択します。:
• Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー
ルバックします。
• Disable – ユーザー名とパスワードのみで接続します。
• Allow - サーバーから要求された場合は、暗号化された接続を確立します。
• Require - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。
• Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接
続の試みは失敗します。
• Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に
記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい
るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。
2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。
3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。
4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。
5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された
場合、接続は失敗します。
6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
91
高度な接続プロパティの設定
[Advanced ] タブでは、次のプロパティを設定できます。
• Max file size (KB): CSVファイルがGoogle Cloud SQL for PostgreSQLのターゲットデータベースに読み込まれるまでの最大サイズ(KB)を選択ま
たは入力します。既定値は32000KBです。
www.qlik.com/sap

PostgreSQLのソース・ターゲットエンドポイントとしての利用

  • 1.
    © 2019 QlikTechInternational AB. All rights reserved. PostgreSQLの ソース・ターゲットエンドポイント としての利用 クリックテック・ジャパン株式会社
  • 2.
    © 2019 QlikTechInternational AB. All rights reserved. 2 Using PostgreSQL as a source
  • 3.
    3 クライアント側の前提条件 • Qlik ReplicateをWindowsサーバーにインストールしている場合: • PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64を、Qlik Replicateのマシンにインストールする必要があります。 ※ psql.exe のパスをシステム環境変数に追加してください。 (例 "C:Program FilesPostgreSQL1202bin") • Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。: 1. postgresql12をインストールします。例えば、 Red Hat 7 の場合は、postgresql12-12.1-2PGDG.rhel7.x86_64.rpm が必要な パッケージです。 2. ODBC driver postgresql12をインストールします。例えば、 Red Hat 7の場合は、postgresql12-odbc-12.01.0000- 1PGDG.rhel7.x86_64.rpmが必要なパッケージです。 3. ドライバの場所を site_arep_login.sh ファイルにコピーします。 : • これにより、"LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。 echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh
  • 4.
    4 クライアント側の前提条件 • Qlik ReplicateをLinuxにインストールしている場合: Replicateのマシンで以下を実行します。: 4. 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。: [PostgreSQL] Description = PostgreSQL ODBC driver Driver = /usr/pgsql-12/lib/psqlodbc.so Setup = /usr/pgsql-12/lib/psqlodbcw.so Debug = 0 CommLog = 1 UsageCount = 2
  • 5.
    5 サーバー側の前提条件 • Qlik ReplicateマシンのIPアドレスは、pg_hba.conf構成ファイルのdatabaseフィールドに“replication“というキーワードを入れて追加する必要 があります。 • 例: host replication all 176.123.1.212/32 trust • test_decoding出力プラグイン(postgresql12-contribパッケージに含まれています)がインストールされていることを確認してください。 • 変更キャプチャ・タスクごとに、ReplicateはPostgreSQLデータベースから変更内容を読み取るためのスロットを作成します。この処理を有効にするに は、レプリケート・ユーザー(エンドポイントの設定で定義されている)に、ソース・データベースに対する読み書きの権限が与えられていなければなりま せん。
  • 6.
    6 サーバー側の前提条件 • 以下のパラメータと値を設定ファイルpostgresql.confで設定する必要があります。 • wal_level= logical • max_replication_slots >=1 • max_replication_slotsの値は、実行したいタスクの数に応じて設定する必要があります。例えば、5本のタスクを実行するには、最低 5つのスロットを設定する必要があります。スロットは、タスクが開始されると同時に自動的に開き、タスクが実行されなくなっても開いたまま になります。開いたスロットは手動で削除する必要があるので注意が必要です。 • max_wal_senders >=1 • max_wal_senderパラメータは、同時実行可能なタスクの数を設定します。 • wal_sender_timeoutパラメータは、指定されたミリ秒を超えて非アクティブになったレプリケーション接続を終了させます。デフォルトのタイムア ウトは60秒です。タイムアウト機構を無効にする(任意)には、このパラメータを0に設定します。 ※ デフォルトでは、wal_sender_timeoutパラメータの値は、サーバーによってミリ秒として解釈されます。秒数を明示的に指定するには、 以下の例のように値に「s」を付けます。 ※ wal_sender_timeout=60s • 設定パラメータのより詳細な説明はPostgreSQLのドキュメントを確認してください。: • https://www.postgresql.org/docs/12/runtime-config-replication.html
  • 7.
    7 セキュリティ要件 • 以下の要件を満たすPostgreSQLアカウントを用意してください。 • FullLoad レプリケーション: ソースデータベースに対する SELECT 権限 • Apply Changes レプリケーション: Superuser 権限 ※ Superuser権限無しで利用する場合は、 “superuserロールを持たないアカウントを使用する”ページを確認してください。
  • 8.
    8 superuserロールを持たないアカウントを使用する • 「superuser」ロールを持つアカウントを使用しない場合は、データ定義言語(DDL)イベントをキャプチャするためにいくつかのオブジェクトを作成する 必要があります。選択したアカウントでこれらのオブジェクトを作成し、マスターユーザーアカウントでトリガーを作成します。 1. オブジェクトを作成するスキーマを選択します。デフォルトのスキーマはpublicです。スキーマが実際に存在し、スーパーユーザー権限を持たないアカウン トがアクセスできることを確認してください。 2.次のコマンドを実行して、テーブルattrep_ddl_auditを作成します。 create table <オブジェクトを作成するスキーマ名>.attrep_ddl_audit ( c_key bigserial primary key, c_time timestamp, -- Informational c_user varchar(64), -- Informational: current_user c_txn varchar(16), -- Informational: current transaction c_tag varchar(24), -- Either 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE' c_oid integer, -- For future use - TG_OBJECTID c_name varchar(64), -- For future use - TG_OBJECTNAME c_schema varchar(64), -- For future use - TG_SCHEMANAME. For now, holds the current_schema c_ddlqry text -- The DDL query associated with the current DDL event)
  • 9.
    9 superuserロールを持たないアカウントを使用する 3. 次のコマンドを実行して、関数attrep_intercept_ddlを作成します。: CREATE ORREPLACE FUNCTION <オブジェクトを作成するスキーマ名>.attrep_intercept_ddl() RETURNS event_trigger LANGUAGE plpgsql AS $$ declare _qry text; BEGIN if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE') then SELECT current_query() into _qry; insert into <オブジェクトを作成するスキーマ名>.attrep_ddl_audit values ( default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,'',current_schema,_qry ); delete from <オブジェクトを作成するスキーマ名>.attrep_ddl_audit; end if; END; $$;
  • 10.
    10 superuserロールを持たないアカウントを使用する 4. スーパーユーザー権限を持たないアカウントでログインしている場合はここで一度ログアウトし、superuserロールを持つアカウントでログインしなおしま す。 ※ attrep_intercept_ddlストアドプロシージャがデフォルトのスキーマで作成されていない場合は、エンドポイント設定時にAdvancedタブ(高 度な接続プロパティ設定)で、CreateDDL artifacts in schemaにスキーマ名を指定する必要があります。 5. 以下のコマンドを実行して、イベントトリガー「attrep_intercept_ddl」を作成します。 CREATE EVENT TRIGGER attrep_intercept_ddl ON ddl_command_end EXECUTE PROCEDURE <オブジェクトを作成するスキーマ名>.attrep_intercept_ddl();
  • 11.
    11 制限事項 • データベース名にセミコロン(;)を含むことはできません。 • ホットスタンバイモードになっているデータベースの変更捕捉はサポートされません。 •スレーブデータベースからの変更のレプリケーションを行うためには、データベースに対する読み取り・書き込み権限を必ず設定してください。 • ソーステーブルとそれに対応するターゲットテーブルの両方に、同一の主キーがなければなりません。どちらかのテーブルに主キーがない場合、DELETE やUPDATEのレコード操作の結果は予測できないものになります。 • “Start Process Changes from Timestamp” のRunオプションはサポートされません。 • Before Imageのレプリケーションはサポートされません。 • 同じ名前でケースが異なる複数のテーブル(例:table1、TABLE1、Table1)を複製すると、予測不可能な動作を引き起こす可能性があるため、 サポートされていません。 • CREATE|ALTER|DROP]テーブルDDLの変更処理は、内部の関数/プロシージャのボディブロックやその他の入れ子構造に保持されていない限 りサポートされます。 例えば、次のような変更は捕捉されません。 : CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void LANGUAGE plpgsql AS $$ BEGIN create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT NULL); END; $$;
  • 12.
    12 制限事項 • TRUNCATE操作の変更処理はサポートされていません。 • DeferredConstraintsはサポートされていません。 • パーティションテーブル • パーティション化されたテーブルのフルロードレプリケーションを実行すると、親テーブルが作成され、各パーティションに個別の子テーブルが作成さ れます。 • 変更は、親テーブルではなく、子テーブルに対して行われます。したがって、レプリケーションの対象となるテーブルを(手動またはパターンを使用 して)選択する際には、子テーブルも含めることが重要です。 • パーティション化された親テーブルに対するDMLは、対応するターゲットテーブルの物理パーティションにのみ適用されます。 • パーティショニングされたテーブルでは主キーがサポートされていないため、UPDATE操作に影響を与える可能性があります。 • また、以下も参照してください。同種のレプリケーション(PostgreSQL同士)に適用されるパーティション・テーブルの要件については、 「 Replication of Partitioned Tables 」も参照してください。 • パラレルロード機能を使用する場合、パーティションやサブパーティションによるテーブルの分割はサポートされていません。 • 主キーを含まないフィルターを使用する場合、DELETE操作はキャプチャされません。 • Replica Identityのデフォルト構成のみがサポートされています。 • Replica identityに関する詳細は、こちらを確認してください: https://www.postgresql.org/docs/10/logical-replication- publication.html • 書き込み権限が必要なため(「サーバー側の前提条件」参照)、PostgreSQLのリードレプリカ(高可用性環境)はサポートされていません。
  • 13.
  • 14.
    14 Qlik Replicate側での基本セットアップ • 「クライアント側の前提条件」のページを参考に、QlikReplicateサーバーにPostgreSQLのODBCドライバーをインストールしてください。 • ドライバーは以下のPostgreSQLのサイトからダウンロードいただけます。  https://www.postgresql.org/ftp/odbc/versions/ PostgreSQL ODBCドライバーインストーラ(Windowsの場合)
  • 15.
    15 ODBCドライバーインストールに関する注意事項 • 以下のようなODBCドライバー関連のエラーが報告されています。  https://community.qlik.com/t5/Knowledge/Replicate-7-0-PostgreSQL-Source-prerequisites/ta-p/1791782 •後のエンドポイント作成時に上記のエラーが出る場合は、記事の内容に従って、 • ” psqlodbc_10_03_0000-x64”を最初にインストールし、次に” psqlodbc_12_02_0000-x64”をインストール(アップグレード)します。 • そして、ODBCのbinフォルダのパスをシステム環境変数のPathに追加します。 • 例:C:Program FilespsqlODBC1003bin • 最後にQlik Replicate Server(Attunity Replicate Server)のサービスを再起動します。 エンドポイント作成時のエラー
  • 16.
  • 17.
    17 サーバー側の前提条件 • Qlik ReplicateマシンのIPアドレスは、pg_hba.conf構成ファイルのdatabaseフィールドに“replication“というキーワードを入れて追加する必要 があります。 • pg_hba.confファイルは通常、 PostgreSQL をインストールしたディレクトリの data ディレクトリの中に格納されています。 • 例:C:Program FilesPostgreSQL12data • 設定例: host replication all 176.123.1.212/32 trust • test_decoding出力プラグイン(postgresql12-contribパッケージに含まれています)がインストールされていることを確認してください。 • Windowsのパス例:C:Program FilesPostgreSQL12libtest_decoding.dll • Linuxのパス例:contrib/test_decoding
  • 18.
    18 サーバー側の前提条件 • 以下のパラメータと値を設定ファイルpostgresql.confで設定します。 • 通常、PostgreSQL をインストールしたディレクトリの data ディレクトリの中に格納されています。 • 例:C:Program FilesPostgreSQL12data • wal_level = logical • max_replication_slots >=1 • max_wal_senders >=1 • wal_sender_timeoutパラメータは、指定されたミリ秒を超えて非アクティブになったレプリケーション接続を終了させます。デフォルトのタイムア ウトは60秒です。タイムアウト機構を無効にする(任意)には、このパラメータを0に設定します。
  • 19.
  • 20.
    20 ユーザーの作成と必要なアクセス許可 以下の権限をQlik Replicateで使用するユーザーに与えます。 • FullLoad レプリケーション: ソースデータベースに対する SELECT 権限 • Apply Changes レプリケーション: Superuser 権限 ※ Superuserロールを使用しない場合は、「superuserロールを持たないアカウントを使用する」を参照して設定してください。 psql -U postgres –d <使用するデータベース名> # プロンプトでパスワードを求められるので、入力してログインします。 CREATE USER replicate_user WITH PASSWORD 'replicate_password' SUPERUSER; GRANT USAGE ON SCHEMA <使用するスキーマ名> TO replicate_user; GRANT SELECT ON ALL TABLES IN SCHEMA <使用するスキーマ名> TO replicate_user; 以下がユーザー作成と権限付与の例です。
  • 21.
  • 22.
    22 ソースデータ型 次の表は、Qlik Replicateの使用時にサポートされているPostgreSQLのソースデータタイプと、Qlik Replicateのデータタイプへ のデフォルトマッピングを示しています。PostgreSQLターゲットに同種レプリケーションする場合、「Datatype considerations and exceptions」で説明されている例外を除いて、ソースとターゲットのデータタイプは同じです。 Qlik Replicateのデータタイプについての詳細は、「Replicate data types」を参照してください。
  • 23.
    23 ソースデータ型 PostgreSQL データ型 QlikReplicate データ型 INTEGER INT4 SMALLINT INT2 BIGINT INT8 NUMERIC NUMERIC(28,6) NUMERIC(p,s) If precision is =< 38, then: NUMERIC(p,s) If precision is => 39, then: STRING DECIMAL NUMERIC(28,6) DECIMAL(p,s) If precision is =< 38, then: NUMERIC(p,s) If precision is => 39, then: STRING REAL REAL4 DOUBLE REAL8 SMALLSERIAL INT2 SERIAL INT4 BIGSERIAL INT8 MONEY NUMERIC(38,4) ※MONEY データ型は、Microsoft SQL Serverでは FLOAT型にマップされます。 CHAR WSTRING (1) CHAR(n) WSTRING (n) PostgreSQL データ型 Qlik Replicate データ型 VARCHAR(n) ※ 長さ (n) の指定のないVARCHARは正しいデータ型 としてターゲットエンドポイントに認識されません。 その結 果、明示的な長さを指定せずにソース列のデータ型を VARCHARに設定した場合、Replicateはデフォルトの 長さを8000バイトに設定します。以下の内部パラメータを 必要な長さに設定することで、デフォルトを変更することが できます。: unboundedVarcharMaxSize See also Internal Parameters. WSTRING (n) TEXT NCLOB BYTEA BLOB TIMESTAMP DATETIME TIMESTAMP (z) DATETIME DATE ※ Replicateは、ISOフォーマットのテキストDATEフォー マットのみをサポートします(デフォルト)。他のフォーマット を使用した場合、エラーが発生します。日付フォーマットは、 postgresql.confファイルまたは環境変数 PGDATESTYLEで変更することができます。また、データ ベースレベルで日付形式を変更することもできます。 DATE TIME TIME TIME (z) TIME INTERVAL STRING (128) - 1 YEAR, 2 MONTHS, 3 DAYS, 4 HOURS, 5 MINUTES, 6 SECONDS BOOLEAN STRING (5) TRUE|FALSE
  • 24.
    24 ソースデータ型 PostgreSQL データ型 QlikReplicate データ型 JSON ※ JSONデータの読み書きは、ワイドストリング(1文字 が2バイトを占める)で行われます。そのため、JSONカラ ムをPostgreSQLターゲットに複製する際には、limited lob sizeを最大JSON長の2倍に設定してください。例え ば、JSONデータが4KBであれば、limited lob sizeの 値を8KBに設定します。 NCLOB JSONB ※JSONBデータの読み書きは、ワイドストリング(1文字 が2バイトを占める)で行われます。そのため、JSONBカ ラムをPostgreSQLターゲットに複製する際には、 limited lob sizeを最大JSONB長の2倍に設定してくだ さい。例えば、JSONBデータが4KBであれば、limited lob sizeの値を8KBに設定します。 NCLOB ARRAY NCLOB COMPOSITE NCLOB INT4RANGE STRING (255) INT8RANGE STRING (255) NUMRANGE STRING (255) STRRANGE STRING (255) CHARACTER VARYING If length is specified: WSTRING (LENGTH) If no length is specified: WSTRING (8000) TINTERVAL WSTRING(255) PostgreSQL データ型 Qlik Replicate データ型 ENUM STRING (64) CIDR STRING (50) INET STRING (50) MACADDR STRING (18) BIT (n) STRING (n) BIT VARYING (n) STRING (n) UUID STRING TSVECTOR CLOB TSQUERY CLOB XML CLOB POINT STRING (255) "(x,y)" LINE STRING (255) "(x,y,z)" LSEG STRING (255) "((x1,y1),(x2,y2))" BOX STRING (255) "((x1,y1),(x2,y2))" PATH CLOB "((x1,y1),(xn,yn))" POLYGON CLOB "((x1,y1),(xn,yn))" CIRCLE STRING (255) "(x,y),r"
  • 25.
    25 同種レプリケーション • PostrgreSQLのソースからPostrgreSQLのターゲットにレプリケートする場合、ソースとターゲットのデータタイプのほとんどは同 じになります。例外として、以下の表に示すものがあります。 • また、同種のレプリケーションでは、「Column and table collation」で説明されるように、ソースの列とテーブルの照合順序 がターゲットにレプリケートされます。 ※ 同種のレプリケーションでは、ソースデータは最初にQlik Replicateのデータタイプを通過するため、そのデータタイプのあらゆる 制限を受けます。レプリケートデータタイプとその制限(該当する場合)については、「Replicate data types」を参照してくだ さい。PostgreSQLからのレプリケーションでソースデータがどのReplicateデータタイプを通過するかについては、前述の PostgreSQLとQlik Replicateのデータタイプのマッピングテーブルを参照してください。
  • 26.
    26 同種レプリケーション • パーティションテーブルのレプリケーション • パーティション化されたテーブルをPostgreSQLソースからPostgreSQLターゲットに複製するためには、次のことを行う必 要があります。: 1. ターゲットデータベースに親テーブルと子テーブルを手動で作成します。 2. それらのテーブルにレプリケートするために、別々のタスクを定義します。 3. Full Load SettingsでTruncate before loadingオプションを設定してください。
  • 27.
    27 同種レプリケーションにおける、データ型の注意事項と例外 • PostgreSQLから別のPostgreSQLに複製する場合、ソースとターゲットのデータタイプは、以下の例外を除き、サポートされる すべてのPostgreSQLバージョンで同一です。 PostgreSQL ソースPostgreSQL ターゲット ENUM STRING COMPOSITE STRING NUMERIC NUMERIC (28,6) NUMERIC (p,s) A numeric array with precision and scale. NUMERIC A numeric array without precision and scale. TINTERVAL ※PostgreSQLはTINTERVALデータ型のサポートを中止しましたので、ター ゲットデータベースのバージョンがこのデータ型をサポートしていない場合、この データ型を持つテーブルはターゲット上に作成されません。 • JSON, JSONB データの読み書きは、ワイドストリング(1文字が2バイトを占める)で行われます。そのため、JSON, JSONBカラムをPostgreSQLターゲットに複製する際には、limited lob sizeを最大JSON長の2倍に設定してください。例 えば、JSON , JSONBのデータが4KBであれば、limited lob sizeの値を8KBに設定します。
  • 28.
  • 29.
  • 30.
    30 一般的な接続プロパティの設定 PostgreSQL ソース エンドポイントをQlikReplicateに追加するには、次の手順を実行します。 1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開き ます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してください。 2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。 3. Descriptionフィールドには、PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。 4. Roleにて、[Source] を選択します。 5. TypeのリストからPostgreSQLを選択します。 • このエンドポイントがLog Stream Stagingの設定で重複したソースとして使用されている場合、「Read changes from log stream」チェッ クボックスを選択し、ドロップダウンリストから関連するLog Stream Stagingタスクを選択します。 • ログストリームのステージングタスクの設定と管理については、「 Using the Log Stream 」を参照してください。 6. Server Nameフィールドには、PostgreSQL データベースがインストールされているコンピュータのホスト名またはIPアドレスを入力します。 7. Portから、任意でデフォルトのポート(5432)を変更できます。 8. PostgreSQLデータベースユーザーの認証情報(ユーザー名、パスワード)を入力します。 • 認証情報はケースセンシティブです(大文字小文字を区別します) 。 9. Database名を入力するか、browseのリストからソースデータベースを選択します。 10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
  • 31.
    31 一般的な接続プロパティの設定 SSL認証オプション Securityセクションでは、SSLを使ってPostgreSQLデータベースに接続するようにReplicateを設定できます。 ※ 証明書のパスは、WALプロトコルで変更をキャプチャするときにのみ関係します(つまり、Full Loadやメタデータの検索には関係しません)。 1.SSL Mode: 以下からひとつ選択します。: • Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー ルバックします。 • Disable – ユーザー名とパスワードのみで接続します。 • Allow - サーバーから要求された場合は、暗号化された接続を確立します。 • Required - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。 • Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接 続の試みは失敗します。 • Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に 記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。 2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。 3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。 4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。 5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された 場合、接続は失敗します。 6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
  • 32.
    32 高度な接続プロパティの設定 [Advanced ] タブでは、次のプロパティを設定できます。 •Capture DDLs: このオプションを選択すると、次のような動作が行われます。 : • オペレーション上のアーティファクトが、タスクの開始時にデータベース内に(Replicateによって)作成されます。DDLイベントをキャプチャするために、 Qlik Replicateはタスクの開始時にPostgreSQLデータベースに様々なアーティファクトを作成します。これらのアーティファクトは、「データベースから Replicateのアーティファクトを削除する」で説明するように、後で削除することができます。 • ストリームされたDDLイベントがキャプチャされます。 • Create DDL artifacts in schema: オペレーション上のDDLデータベースのアーティファクトが作成されるスキーマを指定します。既定値は「Public」です。 • WAL heartbeat - (ソーステーブルが活動していないために)実行中でありながら変更を取り込んでいないApply Changesタスクは、そのレプリケーショ ンスロットのLSNの位置を占め続け、WALの切り捨てを防ぎます。WALはすべてのPostgreSQLプロセスで使用されるサーバ全体のリソースですので、変更 が長期間取り込まれないと、非常に大きくなる可能性があります。 この現象を防ぐには、"WAL heartbeat "オプションを有効にしてください。このオプションを 有効にすると、PostgreSQLソースエンドポイントは、ハートビートテーブルに定期的に疑似トランザクション(すなわち "ハートビート")をコミットすることで、タ スクアクティビティを模倣し、それによってタスクスロットのLSNポジションを進めます。 • Create WAL heartbeat table in schema: WALハートビートテーブル(attrep_wal_heartbeat)が作成されるスキーマです。デフォルト値 は "public "です。 • Heartbeat frequency (minutes): ハートビートテーブルにトランザクションをコミットする頻度
  • 33.
    33 高度な接続プロパティの設定 • Internal parameters: •内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。 • internal Qlik Replicate parametersを追加するには: • Internal Parameters リンクをクリックします。 • Internal Parameters ダイアログボックスが開きます。 • 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。 • 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。 • 必要に応じてデフォルト値を変更します。 • パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。 • More Options • これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に 指示されていない限り、これらのオプションを設定しないでください。 • オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ ョンの値を設定したり、有効にしたりします。 • Settings summary • 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ る場合に便利です。
  • 34.
    34 データベースからReplicateのアーティファクトを削除する • DDLをキャプチャするために、Qlik Replicateはタスクの開始時にPostgreSQLデータベースに様々なアーティファクトを作成します。タスクが完了した時、こ れらのアーティファクトを削除したい場合があります。 •アーティファクトを削除するには、以下のステートメントを(以下の順番で)発行してください(publicはアーティファクトが作成されるデフォルトのスキーマで す)。: ※ イベントトリガーは特定のスキーマに属していないことに注意してください。 ※ スキーマの削除は、細心の注意を払って行う必要があります。運用中のスキーマを削除してはいけません、特にpublicスキーマの削除には細心の注 意を払う必要があります。 drop event trigger attrep_intercept_ddl; drop function public.attrep_intercept_ddl() drop table public.attrep_ddl_audit drop schema public
  • 35.
    35 Microsoft Azure for PostgreSQLの変更補足に 関する追加情報
  • 36.
    36 Microsoft Azure forPostgreSQL の変更補足 • Microsoft Azure for PostgreSQLからの変更を取り込めるようにするには、以下の手順で「replication」プロパティを「logical」に設定する必要があり ます。 • Azure CLI を開き、以下のコマンドを実行します。: ※ Azure CLIをダウンロードするか、Azureポータルのシェルコマンドで接続することができます。 • 構文: • az postgres server configuration set --resource-group resource-group --server-name server-name --name azure.replication_support --value logical • 実行例: • az postgres server configuration set --resource-group azuredb --server-name qlik-azure-pg --name azure.replication_support --value logical • ポータルまたはCLIからデータベースを再起動します。
  • 37.
    37 AWS Aurora Cloudfor PostgreSQLの追加情報
  • 38.
    38 クライアント側の前提条件 • Qlik ReplicateをWindowsサーバーにインストールしている場合: • PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64のみを、Qlik Replicateのマシンにインストールする必要があります。 ※ psql.exe のパスがシステム環境変数を追加してください。 (例 "C:Program FilesPostgreSQL1202bin") • Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。: 1. postgresql12をインストールします。例えば、 Red Hat 7 の場合は、postgresql12-12.1-2PGDG.rhel7.x86_64.rpm が必要な パッケージです。 2. ODBC driver postgresql12をインストールします。例えば、 Red Hat 7の場合は、postgresql12-odbc-12.01.0000- 1PGDG.rhel7.x86_64.rpmが必要なパッケージです。 3. ドライバの場所を site_arep_login.sh ファイルにコピーします。 : • これにより、"LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。 echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh
  • 39.
    39 クライアント側の前提条件 • Qlik ReplicateをLinuxにインストールしている場合: Replicateのマシンで以下を実行します。: 4. 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。: [PostgreSQL] Description = PostgreSQL ODBC driver Driver = /usr/pgsql-12/lib/psqlodbc.so Setup = /usr/pgsql-12/lib/psqlodbcw.so Debug = 0 CommLog = 1 UsageCount = 2 • Apply Changesタスクオプションを有効にした場合、PostgreSQLソースエンドポイントの「General」タブで指定したユーザーにスーパー ユーザー権限を付与する必要があります。
  • 40.
    40 セキュリティ要件 • 以下の要件を満たすユーザーを用意してください。 • FullLoad レプリケーション: ソースデータベースに対する SELECT 権限 • Apply Changes レプリケーション: 次項で解説 • Apply Changesおよび/またはStore Changesタスクレプリケーションオプションが有効な場合、AWS Aurora Cloud for PostgreSQLソースエンドポイントのGeneralタブで指定するユーザーにsuperuser権限を付与する必要があります。
  • 41.
    41 AWS Aurora Cloudfor PostgreSQLのCDC設定 • PostgreSQLデータベースインスタンスのAWSマスターユーザーアカウントを、AWS Aurora Cloud for PostgreSQLソースエンドポイントのユーザー として使用することができます。マスターユーザーアカウントは、チェンジデータキャプチャー(CDC)の設定を可能にする必要な役割を持っています。 • マスターユーザーアカウントを使用したくない場合は、使用するアカウントがrds_superuserロールとrds_replicationロールを持っている必要がありま す。rds_replicationロールは、論理スロットの管理と論理スロットを使用したデータのストリーミングの権限を付与します。 • AWS Aurora Cloud PostgreSQLデータベースインスタンスのロジカルレプリケーションを有効にするには、以下の手順に従います。 1. 以下の設定で、新しいDBクラスターパラメータグループを作成します。: 1. データベースパラメータグループのrds.logical_replicationパラメータを1に設定します。 2. max_wal_sender - 並行して実行できるタスクの数を設定します。 3. max_replication_slots – 接続(例:タスク)ごとに新しいスロットが作成されます。このパラメータは、データベースに確立できる同 時接続数を設定します。 2. AWS Aurora CloudのクラスタDBをDBクラスタのパラメータグループにリンクします。 ※ attrep_intercept_ddlストアドプロシージャがデフォルトのスキーマで作成されていない場合は、エンドポイント設定のAdvancedタブでCreate DDL artifacts in schemaフィールドにスキーマ名を指定する必要があります。
  • 42.
    42 制限事項 • データベース名にセミコロン(;)を含むことはできません。 • ソーステーブルとそれに対応するターゲットテーブルの両方に、同一の主キーがなければなりません。どちらかのテーブルに主キーがない場合、DELETE やUPDATEのレコード操作の結果は予測できないものになります。 •“Start Process Changes from Timestamp” のRunオプションはサポートされません。 • Before Imageのレプリケーションはサポートされません。 • 同じ名前でケースが異なる複数のテーブル(例:table1、TABLE1、Table1)を複製すると、予測不可能な動作を引き起こす可能性があるため、 サポートされていません。 • CREATE|ALTER|DROP]テーブルDDLの変更処理は、内部の関数/プロシージャのボディブロックやその他の入れ子構造に保持されていない限 りサポートされます。 例えば、次のような変更は捕捉されません。 : CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void LANGUAGE plpgsql AS $$ BEGIN create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT NULL); END; $$;
  • 43.
    43 制限事項 • TRUNCATE操作の変更処理はサポートされていません。 • DeferredConstraintsはサポートされていません。 • パーティションテーブル • パーティション化されたテーブルのフルロードレプリケーションを実行すると、親テーブルが作成され、パーティションごとに個別のテーブルが作成され ます。 • パーティション化された親テーブルに対するDMLは、対応するターゲットテーブルの物理パーティションにのみ適用されます。 • パーティション化されたテーブルでは主キーがサポートされていないため、UPDATE操作に影響を与える可能性があります。 • また、以下も参照してください。同種のレプリケーション(AWS Aurora Cloud for PostgreSQL同士)に適用されるパーティション・テーブ ルの要件については、「 Replication of Partitioned Tables 」も参照してください。 • パラレルロード機能を使用する場合、パーティションやサブパーティションによるテーブルの分割はサポートされていません。 • 主キーを含まないフィルターを使用する場合、DELETE操作はキャプチャされません。 • Unique IndexセグメントへのUPDATEはターゲットに適用されず、試みられたUPDATEの記録がattrep_apply_exceptions Controlテーブル に書き込まれます。
  • 44.
    44 一般的な接続プロパティの設定 AWS Aurora Cloudfor PostgreSQL ソース エンドポイントをQlik Replicateに追加するには、次の手順を実行します。 1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開きます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してくださ い。 2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。 3. Descriptionフィールドには、AWS Aurora Cloud for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。 4. Roleにて、[Source] を選択します。 5. TypeのリストからAWS Aurora Cloud for PostgreSQLを選択します。 • このエンドポイントがLog Stream Stagingの設定で重複したソースとして使用されている場合、「Read changes from log stream」チェックボックスを選択し、ドロ ップダウンリストから関連するLog Stream Stagingタスクを選択します。 • ログストリームのステージングタスクの設定と管理については、「 Using the Log Stream 」を参照してください。 6. Server Nameフィールドには、AWS Aurora Cloud for PostgreSQLデータベースインスタンスのホスト名を入力します。 • 例:myinstance.123456789012.us-east-1.rds.amazonaws.com 7. Portから、任意でデフォルトのポート(5432)を変更できます。 8. データベースユーザーの認証情報(ユーザー名、パスワード)を入力します。 • 認証情報はケースセンシティブです(大文字小文字を区別します) 。 • 正しいアクセス権を持つユーザ情報を設定してください。 9. Database名を入力するか、browseのリストからソースデータベースを選択します。 10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
  • 45.
    45 一般的な接続プロパティの設定 SSL認証オプション Securityセクションでは、SSLを使ってPostgreSQLデータベースに接続するようにReplicateを設定できます。 ※ 証明書のパスは、WALプロトコルで変更をキャプチャするときにのみ関係します(つまり、Full Loadやメタデータの検索には関係しません)。 1.SSL Mode: 以下からひとつ選択します。: • Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー ルバックします。 • Disable – ユーザー名とパスワードのみで接続します。 • Allow - サーバーから要求された場合は、暗号化された接続を確立します。 • Required - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。 • Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接 続の試みは失敗します。 • Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に 記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。 2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。 3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。 4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。 5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された 場合、接続は失敗します。 6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
  • 46.
    46 高度な接続プロパティの設定 [Advanced ] タブでは、次のプロパティを設定できます。 •Capture DDLs: このオプションを選択すると、次のような動作が行われます。 : • オペレーション上のアーティファクトが、タスクの開始時にデータベース内に(Replicateによって)作成されます。DDLイベントをキャプチャするために、 Qlik Replicateはタスクの開始時にAWS Aurora Cloud for PostgreSQLデータベースに様々なアーティファクトを作成します。これらのアーティファ クトは、「データベースからReplicateのアーティファクトを削除する」で説明するように、後で削除することができます。 • ストリームされたDDLイベントがキャプチャされます。 • Create DDL artifacts in schema: オペレーション上のDDLデータベースのアーティファクトが作成されるスキーマを指定します。既定値は「Public」です。 • WAL heartbeat - (ソーステーブルが活動していないために)実行中でありながら変更を取り込んでいないApply Changesタスクは、そのレプリケーショ ンスロットのLSNの位置を占め続け、WALの切り捨てを防ぎます。WALはすべてのAWS Aurora Cloud for PostgreSQLプロセスで使用されるサーバ全 体のリソースですので、変更が長期間取り込まれないと、非常に大きくなる可能性があります。 この現象を防ぐには、"WAL heartbeat "オプションを有効に してください。このオプションを有効にすると、 AWS Aurora Cloud for PostgreSQLソースエンドポイントは、ハートビートテーブルに定期的に疑似トランザ クション(すなわち "ハートビート")をコミットすることで、タスクアクティビティを模倣し、それによってタスクスロットのLSNポジションを進めます。 • Create WAL heartbeat table in schema: WALハートビートテーブル(attrep_wal_heartbeat)が作成されるスキーマです。デフォルト値 は "public "です。 • Heartbeat frequency (minutes): ハートビートテーブルにトランザクションをコミットする頻度
  • 47.
    47 高度な接続プロパティの設定 • Internal parameters: •内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。 • internal Qlik Replicate parametersを追加するには: • Internal Parameters リンクをクリックします。 • Internal Parameters ダイアログボックスが開きます。 • 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。 • 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。 • 必要に応じてデフォルト値を変更します。 • パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。 • More Options • これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に 指示されていない限り、これらのオプションを設定しないでください。 • オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ ョンの値を設定したり、有効にしたりします。 • Settings summary • 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ る場合に便利です。
  • 48.
  • 49.
    49 クライアント側の前提条件 • Qlik ReplicateをWindowsサーバーにインストールしている場合: • PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64のみを、Qlik Replicateのマシンにインストールする必要があります。 ※ psql.exe のパスがシステム環境変数を追加してください。 (例 "C:Program FilesPostgreSQL1202bin") • Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。: 1. postgresql12をインストールします。例えば、 Red Hat 7 の場合は、postgresql12-12.1-2PGDG.rhel7.x86_64.rpm が必要な パッケージです。 2. ODBC driver postgresql12をインストールします。例えば、 Red Hat 7の場合は、postgresql12-odbc-12.01.0000- 1PGDG.rhel7.x86_64.rpmが必要なパッケージです。 3. ドライバの場所を site_arep_login.sh ファイルにコピーします。 : • これにより、"LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。 echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh
  • 50.
    50 クライアント側の前提条件 • Qlik ReplicateをLinuxにインストールしている場合: Replicateのマシンで以下を実行します。: 4. 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。: [PostgreSQL] Description = PostgreSQL ODBC driver Driver = /usr/pgsql-12/lib/psqlodbc.so Setup = /usr/pgsql-12/lib/psqlodbcw.so Debug = 0 CommLog = 1 UsageCount = 2 • Apply Changesタスクオプションを有効にした場合、PostgreSQLソースエンドポイントの「General」タブで指定したユーザーにスーパー ユーザー権限を付与する必要があります。
  • 51.
    51 セキュリティ要件 • 以下の要件を満たすユーザーを用意してください。 • FullLoad レプリケーション: ソースデータベースに対する SELECT 権限 • Apply Changes レプリケーション: 次項で解説
  • 52.
    52 Amazon RDS forPostgreSQL のCDC設定 • PostgreSQLデータベースインスタンスのAWSマスターユーザーアカウントを、Amazon RDS for PostgreSQLソースエンドポイントのユーザーとして 使用することができます。マスターユーザーアカウントは、チェンジデータキャプチャー(CDC)の設定を可能にする必要な役割を持っています。 • マスターユーザーアカウントを使用したくない場合は、使用するアカウントがrds_superuserロールとrds_replicationロールを持っている必要がありま す。rds_replicationロールは、論理スロットの管理と論理スロットを使用したデータのストリーミングの権限を付与します。 • Amazon RDS for PostgreSQLデータベースインスタンスのロジカルレプリケーションを有効にするには、以下の手順に従います。 1. 以下の設定で、新しいDBクラスターパラメータグループを作成します。: 1. データベースパラメータグループのrds.logical_replicationパラメータを1に設定します。 2. max_wal_sender - 並行して実行できるタスクの数を設定します。 3. max_replication_slots – 接続(例:タスク)ごとに新しいスロットが作成されます。このパラメータは、データベースに確立できる同 時接続数を設定します。 2. Amazon RDS for PostgreSQLのクラスタDBをDBクラスタのパラメータグループにリンクします。 ※ attrep_intercept_ddlストアドプロシージャがデフォルトのスキーマで作成されていない場合は、エンドポイント設定のAdvancedタブでCreate DDL artifacts in schemaフィールドにスキーマ名を指定する必要があります。
  • 53.
    53 rds_superuserロールを持たないアカウントを使用する • 「rds_superuser」ロールを持つアカウントを使用しない場合は、データ定義言語(DDL)イベントをキャプチャするためにいくつかのオブジェクトを作 成する必要があります。選択したアカウントでこれらのオブジェクトを作成し、マスターユーザーアカウントでトリガーを作成します。 1. オブジェクトを作成するスキーマを選択します。デフォルトのスキーマはpublicです。スキーマが実際に存在し、スーパーユーザー権限を持たないアカウン トがアクセスできることを確認してください。 2.次のコマンドを実行して、テーブルattrep_ddl_auditを作成します。 create table <オブジェクトを作成するスキーマ名>.attrep_ddl_audit ( c_key bigserial primary key, c_time timestamp, -- Informational c_user varchar(64), -- Informational: current_user c_txn varchar(16), -- Informational: current transaction c_tag varchar(24), -- Either 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE' c_oid integer, -- For future use - TG_OBJECTID c_name varchar(64), -- For future use - TG_OBJECTNAME c_schema varchar(64), -- For future use - TG_SCHEMANAME. For now, holds the current_schema c_ddlqry text -- The DDL query associated with the current DDL event)
  • 54.
    54 rds_superuserロールを持たないアカウントを使用する 3. 次のコマンドを実行して、関数attrep_intercept_ddlを作成します。: CREATE ORREPLACE FUNCTION <オブジェクトを作成するスキーマ名>.attrep_intercept_ddl() RETURNS event_trigger LANGUAGE plpgsql AS $$ declare _qry text; BEGIN if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE') then SELECT current_query() into _qry; insert into <オブジェクトを作成するスキーマ名>.attrep_ddl_audit values ( default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,'',current_schema,_qry ); delete from <オブジェクトを作成するスキーマ名>.attrep_ddl_audit; end if; END; $$;
  • 55.
    55 rds_superuserロールを持たないアカウントを使用する 4. スーパーユーザー権限を持たないアカウントでログインしている場合はここで一度ログアウトし、superuserロールを持つアカウントでログインしなおしま す。 ※ attrep_intercept_ddlストアドプロシージャがデフォルトのスキーマで作成されていない場合は、エンドポイント設定時にAdvancedタブ(高 度な接続プロパティ設定)で、CreateDDL artifacts in schemaにスキーマ名を指定する必要があります。 5. 以下のコマンドを実行して、イベントトリガー「attrep_intercept_ddl」を作成します。 CREATE EVENT TRIGGER attrep_intercept_ddl ON ddl_command_end EXECUTE PROCEDURE <オブジェクトを作成するスキーマ名>.attrep_intercept_ddl();
  • 56.
    56 制限事項 • データベース名にセミコロン(;)を含むことはできません。 • ”RDS”はAWSの予約語のため、”rds”から始まるタスク名は設定してはいけません。 •ソーステーブルとそれに対応するターゲットテーブルの両方に、同一の主キーがなければなりません。どちらかのテーブルに主キーがない場合、DELETE やUPDATEのレコード操作の結果は予測できないものになります。 • “Start Process Changes from Timestamp” のRunオプションはサポートされません。 • Before Imageのレプリケーションはサポートされません。 • 同じ名前でケースが異なる複数のテーブル(例:table1、TABLE1、Table1)を複製すると、予測不可能な動作を引き起こす可能性があるため、 サポートされていません。 • CREATE|ALTER|DROP]テーブルDDLの変更処理は、内部の関数/プロシージャのボディブロックやその他の入れ子構造に保持されていない限 りサポートされます。 例えば、次のような変更は捕捉されません。 : CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void LANGUAGE plpgsql AS $$ BEGIN create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT NULL); END; $$;
  • 57.
    57 制限事項 • TRUNCATE操作の変更処理はサポートされていません。 • DeferredConstraintsはサポートされていません。 • パーティションテーブル • パーティション化されたテーブルのフルロードレプリケーションを実行すると、親テーブルが作成され、パーティションごとに個別のテーブルが作成され ます。 • パーティション化された親テーブルに対するDMLは、対応するターゲットテーブルの物理パーティションにのみ適用されます。 • パーティション化されたテーブルでは主キーがサポートされていないため、UPDATE操作に影響を与える可能性があります。 • また、以下も参照してください。同種のレプリケーション(Amazon RDS for PostgreSQL同士)に適用されるパーティション・テーブルの要 件については、「 Replication of Partitioned Tables 」も参照してください。 • パラレルロード機能を使用する場合、パーティションやサブパーティションによるテーブルの分割はサポートされていません。 • 主キーを含まないフィルターを使用する場合、DELETE操作はキャプチャされません。
  • 58.
    58 一般的な接続プロパティの設定 Amazon RDS forPostgreSQL ソース エンドポイントをQlik Replicateに追加するには、次の手順を実行します。 1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開きます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してくださ い。 2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。 3. Descriptionフィールドには、 Amazon RDS for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。 4. Roleにて、[Source] を選択します。 5. TypeのリストからAmazon RDS for PostgreSQLを選択します。 • このエンドポイントがLog Stream Stagingの設定で重複したソースとして使用されている場合、「Read changes from log stream」チェックボックスを選択し、ドロ ップダウンリストから関連するLog Stream Stagingタスクを選択します。 • ログストリームのステージングタスクの設定と管理については、「 Using the Log Stream 」を参照してください。 6. Server Nameフィールドには、 Amazon RDS for PostgreSQLデータベースインスタンスのホスト名を入力します。 • 例:myinstance.123456789012.us-east-1.rds.amazonaws.com 7. Portから、任意でデフォルトのポート(5432)を変更できます。 8. データベースユーザーの認証情報(ユーザー名、パスワード)を入力します。 • 認証情報はケースセンシティブです(大文字小文字を区別します) 。 • 正しいアクセス権を持つユーザ情報を設定してください。 9. Database名を入力するか、browseのリストからソースデータベースを選択します。 10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
  • 59.
    59 一般的な接続プロパティの設定 SSL認証オプション Securityセクションでは、SSLを使ってPostgreSQLデータベースに接続するようにReplicateを設定できます。 ※ 証明書のパスは、WALプロトコルで変更をキャプチャするときにのみ関係します(つまり、Full Loadやメタデータの検索には関係しません)。 1.SSL Mode: 以下からひとつ選択します。: • Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー ルバックします。 • Disable – ユーザー名とパスワードのみで接続します。 • Allow - サーバーから要求された場合は、暗号化された接続を確立します。 • Required - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。 • Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接 続の試みは失敗します。 • Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に 記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。 2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。 3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。 4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。 5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された 場合、接続は失敗します。 6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
  • 60.
    60 高度な接続プロパティの設定 [Advanced ] タブでは、次のプロパティを設定できます。 •Capture DDLs: このオプションを選択すると、次のような動作が行われます。 : • オペレーション上のアーティファクトが、タスクの開始時にデータベース内に(Replicateによって)作成されます。DDLイベントをキャプチャするために、 Qlik Replicateはタスクの開始時にAmazon RDS for PostgreSQLデータベースに様々なアーティファクトを作成します。これらのアーティファクトは 、「データベースからReplicateのアーティファクトを削除する」で説明するように、後で削除することができます。 • ストリームされたDDLイベントがキャプチャされます。 • Create DDL artifacts in schema: オペレーション上のDDLデータベースのアーティファクトが作成されるスキーマを指定します。既定値は「Public」です。 • WAL heartbeat - (ソーステーブルが活動していないために)実行中でありながら変更を取り込んでいないApply Changesタスクは、そのレプリケーショ ンスロットのLSNの位置を占め続け、WALの切り捨てを防ぎます。WALはすべてのAmazon RDS for PostgreSQLプロセスで使用されるサーバ全体のリ ソースですので、変更が長期間取り込まれないと、非常に大きくなる可能性があります。 この現象を防ぐには、"WAL heartbeat "オプションを有効にしてく ださい。このオプションを有効にすると、 Amazon RDS for PostgreSQLソースエンドポイントは、ハートビートテーブルに定期的に疑似トランザクション(す なわち "ハートビート")をコミットすることで、タスクアクティビティを模倣し、それによってタスクスロットのLSNポジションを進めます。 • Create WAL heartbeat table in schema: WALハートビートテーブル(attrep_wal_heartbeat)が作成されるスキーマです。デフォルト値 は "public "です。 • Heartbeat frequency (minutes): ハートビートテーブルにトランザクションをコミットする頻度
  • 61.
    61 高度な接続プロパティの設定 • Internal parameters: •内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。 • internal Qlik Replicate parametersを追加するには: • Internal Parameters リンクをクリックします。 • Internal Parameters ダイアログボックスが開きます。 • 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。 • 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。 • 必要に応じてデフォルト値を変更します。 • パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。 • More Options • これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に 指示されていない限り、これらのオプションを設定しないでください。 • オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ ョンの値を設定したり、有効にしたりします。 • Settings summary • 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ る場合に便利です。
  • 62.
    62 Google Cloud SQLfor PostgreSQLの追加情報
  • 63.
    63 クライアント側の前提条件 • Qlik ReplicateをWindowsサーバーにインストールしている場合: • PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64のみを、Qlik Replicateのマシンにインストールする必要があります。 ※ psql.exe のパスがシステム環境変数を追加してください。 (例 "C:Program FilesPostgreSQL1202bin") • Qlik Replicate をLinuxにインストールしている場合: Replicateのマシンで以下を実行します。: 1. postgresql12をインストールします。例えば、 Red Hat 7 の場合は、postgresql12-12.1-2PGDG.rhel7.x86_64.rpm が必要な パッケージです。 2. ODBC driver postgresql12をインストールします。例えば、 Red Hat 7の場合は、postgresql12-odbc-12.01.0000- 1PGDG.rhel7.x86_64.rpmが必要なパッケージです。 3. ドライバの場所を site_arep_login.sh ファイルにコピーします。 : • これにより、"LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。 echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh
  • 64.
    64 クライアント側の前提条件 • Qlik ReplicateをLinuxにインストールしている場合: Replicateのマシンで以下を実行します。: 4. 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。: [PostgreSQL] Description = PostgreSQL ODBC driver Driver = /usr/pgsql-12/lib/psqlodbc.so Setup = /usr/pgsql-12/lib/psqlodbcw.so Debug = 0 CommLog = 1 UsageCount = 2
  • 65.
    65 セキュリティ要件 • Google SQLfor PostgreSQLソースエンドポイントは、フルロードのみサポートしています。 Qlik Replicate ユーザーには、 ソースデータベースに対するSELECT権限を付与してください。
  • 66.
    66 制限事項 • Google SQLfor PostgreSQLソースエンドポイントは、フルロードのみサポートしています。Apply Changes, Store Changesオプションはサ ポートされていません。 • データベース名にセミコロン(;)を含むことはできません。 • 同じ名前でケースが異なる複数のテーブル(例:table1、TABLE1、Table1)を複製すると、予測不可能な動作を引き起こす可能性があるため、 サポートされていません。 • Deferred Constraintsはサポートされていません。 • パーティションテーブル • パーティション化されたテーブルのフルロードレプリケーションを実行すると、親テーブルが作成され、パーティションごとに個別のテーブルが作成され ます。 • また、以下も参照してください。同種のレプリケーション(Google Cloud SQL for PostgreSQL同士)に適用されるパーティション・テーブ ルの要件については、「 Replication of Partitioned Tables 」も参照してください。 • パラレルロード機能を使用する場合、パーティションやサブパーティションによるテーブルの分割はサポートされていません。 • 主キーを含まないフィルターを使用する場合、DELETE操作はキャプチャされません。
  • 67.
    67 一般的な接続プロパティの設定 Google SQL forPostgreSQL ソース エンドポイントをQlik Replicateに追加するには、次の手順を実行します。 1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開きます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してくださ い。 2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。 3. Descriptionフィールドには、 Google SQL for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。 4. Roleにて、[Source] を選択します。 5. TypeのリストからGoogle SQL for PostgreSQLを選択します。 • このエンドポイントがLog Stream Stagingの設定で重複したソースとして使用されている場合、「Read changes from log stream」チェックボックスを選択し、ドロ ップダウンリストから関連するLog Stream Stagingタスクを選択します。 • ログストリームのステージングタスクの設定と管理については、「 Using the Log Stream 」を参照してください。 6. Server フィールドには、 Google SQL for PostgreSQLデータベースのIPアドレスかホスト名を入力します。 7. Portから、任意でデフォルトのポート(5432)を変更できます。 8. データベースユーザーの認証情報(ユーザー名、パスワード)を入力します。 • 認証情報はケースセンシティブです(大文字小文字を区別します) 。 • 正しいアクセス権を持つユーザ情報を設定してください。 9. Database名を入力するか、browseのリストからソースデータベースを選択します。 10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
  • 68.
    68 高度な接続プロパティの設定 • Internal parameters: •内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。 • internal Qlik Replicate parametersを追加するには: • Internal Parameters リンクをクリックします。 • Internal Parameters ダイアログボックスが開きます。 • 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。 • 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。 • 必要に応じてデフォルト値を変更します。 • パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。 • More Options • これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に 指示されていない限り、これらのオプションを設定しないでください。 • オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ ョンの値を設定したり、有効にしたりします。 • Settings summary • 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ る場合に便利です。 [Advanced ] タブでは、次のプロパティを設定できます。
  • 69.
  • 70.
  • 71.
    71 一般的な前提条件 • Qlik ReplicateタスクでPostgreSQLをエンドポイントとして使用するには、以下の前提条件が満たされていることを確認してください。 •Qlik Replicate Server for Windows • The PostgreSQL ODBC Driver: PostgreSQL ODBC Driver psqlodbc_12_02_0000-x64 または以降のバー ジョンをReplicateサーバーにインストールします。 • Postgresql-binaries: • postgresql-12.6-3-windows-x64-binaries.zip をダウンロードします。 • binフォルダーをReplicateサーバマシンにコピーします。 • binフォルダのパスをサーバーのシステム環境変数に追加します。 ※ PostgreSQLバイナリとGreenplumクライアントが同じReplicate Server上に配置されている場合、PostgreSQLター ゲットを使用するタスクは失敗します。 • Microsoft Visual Studio 2013 Redistributable (x86) - (x64ではない) – がQlik Replicateサーバーマシンにインス トールされている必要があります。
  • 72.
    72 一般的な前提条件 • Qlik ReplicateServer for Linux: • Postgresql12をインストールします。例えば、Red Hat 7なら、 postgresql12-12.1-2PGDG.rhel7.x86_64.rpmパッケージが必要となり ます。 • ODBCドライバー postgresql12 をインストールします。例えば、Red Hat 7なら、 postgresql12-odbc-12.01.0000- 1PGDG.rhel7.x86_64.rpmが必要なクライアントとなります。 • 以下のコマンドで、ドライバーのロケーションをsite_arep_login.sh ファイルにコピーします。: • "LD_LIBRARY_PATH "にドライバーが追加され、site_arep_login.shファイル内のドライバーの場所が更新されます。 • 次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL のエントリが含まれていることを確認します。: echo "export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/pgsql-12/lib:$LD_LIBRARY_PATH" >> site_arep_login.sh [PostgreSQL] Description = PostgreSQL ODBC driver Driver = /usr/pgsql-12/lib/psqlodbc.so Setup = /usr/pgsql-12/lib/psqlodbcw.so Debug = 0 CommLog = 1 UsageCount = 2
  • 73.
  • 74.
    74 セキュリティ要件 • エンドポイント設定のGeneralタブの「Setting generalconnection properties」で指定したユーザーは、PostgreSQLデー タベースに登録されているユーザーである必要があります。
  • 75.
  • 76.
  • 77.
    77 ターゲットデータ型 Qlik Replicate データ型PostgreSQL データ型 BOOL BOOL BYTES BYTEA DATE DATE TIME TIME DATETIME If scale is => 0 and =< 6, then: TIMESTAMP If scale is => 7 and =< 12, then: VARCHAR (37) INT1 SMALLINT INT2 SMALLINT INT4 INTEGER INT8 BIGINT NUMERIC DECIMAL (P, S) REAL4 FLOAT4 REAL8 FLOAT8 STRING If length is 1 - 21845, then: VARCHAR (Length in Bytes = The STRING value multiplied by three) If length is 21846 - 2147483647, then: VARCHAR (65535) UINT1 SMALLINT UINT2 INTEGER UINT4 BIGINT UINT8 BIGINT Qlik Replicate データ型 PostgreSQL データ型 WSTRING If length is 1 - 21845, then: VARCHAR (Length in Bytes = The WSTRING value multiplied by three) If length is 21846 - 2147483647, then: VARCHAR (65535) BLOB BYTEA NCLOB TEXT CLOB TEXT
  • 78.
  • 79.
  • 80.
    80 一般的な接続プロパティの設定 PostgreSQL ターゲット エンドポイントをQlikReplicateに追加するには、次の手順を実行します。 1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開き ます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してください。 2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。 3. Descriptionフィールドには、PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項目です。 4. Roleにて、[Target] を選択します。 5. Typeのリストから[PostgreSQL]を選択します。以下の何れのDBについても[PostgreSQL]を選択してください。 • PostgreSQL, Amazon Aurora PostgreSQL, Amazon RDS for PostgreSQL 6. Server フィールドには、PostgreSQLデータベースがインストールされているコンピュータのホスト名またはIPアドレスを入力します。 7. Portから、任意でデフォルトのポート(5432)を変更できます。 8. PostgreSQLデータベースの認証ユーザーのPostgreSQL認証情報(ユーザー名、パスワード)を入力します。この情報がわからない場合は、 PostgreSQLデータベース管理者(DBA)に確認してください。 • こちらのフィールドは、ケースセンシティブです(大文字小文字を区別します)。 9. Database名を入力するか、リストからソースデータベースを選択します。 10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
  • 81.
    81 一般的な接続プロパティの設定 SSL認証オプション Securityセクションでは、SSLを使ってPostgreSQLデータベースに接続するようにReplicateを設定できます。 ※ 指定された証明書は、一括挿入操作にのみ関連します。 1. SSLMode: 以下からひとつ選択します。: • Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー ルバックします。 • Disable – ユーザー名とパスワードのみで接続します。 • Allow - サーバーから要求された場合は、暗号化された接続を確立します。 • Require - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。 • Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接 続の試みは失敗します。 • Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に 記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。 2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。 3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。 4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。 5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された 場合、接続は失敗します。 6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
  • 82.
    82 高度な接続プロパティの設定 [Advanced ] タブでは、次のプロパティを設定できます。 •Max file size (KB): CSVファイルがPostgreSQLのターゲットデータベースに読み込まれるまでの最大サイズ(KB)を選択または入力します。既定値は 32000KBです。
  • 83.
    83 高度な接続プロパティの設定 • Internal parameters: •内部パラメータは、UIで公開されていないパラメータです。Qlikサポートの指示があった場合のみ使用してください。 • internal Qlik Replicate parametersを追加するには: • Internal Parameters リンクをクリックします。 • Internal Parameters ダイアログボックスが開きます。 • 編集ボックスで、 追加するパラメータの名前を入力し、クリックします。 • 検索ボックスの下のテーブルに、パラメータがデフォルト値で追加されます。 • 必要に応じてデフォルト値を変更します。 • パラメータの値をデフォルトに戻すには、行の最後にある「Restore default value」アイコンをクリックします。 • More Options • これらのオプションは、特定のバージョンや環境にのみ関連するため、UIには表示されません。したがって、Qlikサポートや製品マニュアルで明示的に 指示されていない限り、これらのオプションを設定しないでください。 • オプションを設定するには、オプションを「Add feature name」フィールドにコピーして「Add」をクリックします。その後、受け取った指示に従ってオプシ ョンの値を設定したり、有効にしたりします。 • Settings summary • 「Setting Summary 」リンクをクリックすると、設定の概要を表示することができます。この機能は、Qlikサポートに設定の概要を送信する必要があ る場合に便利です。
  • 84.
  • 85.
    85 一般的な接続プロパティの設定 Microsoft Azure Databasefor PostgreSQL ターゲット エンドポイントをQlik Replicateに追加するには、次の手順を実行します。 1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開き ます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してください。 2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。 3. Descriptionフィールドには、Microsoft Azure Database for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の 設定項目です。 4. Roleにて、[Target] を選択します。 5. Typeのリストから[Microsoft Azure Database for PostgreSQL]を選択します。 6. Server フィールドには、Microsoft Azure Database for PostgreSQLデータベースがインストールされているコンピュータのホスト名またはIPアドレ スを入力します。 7. Portから、任意でデフォルトのポート(5432)を変更できます。 8. Microsoft Azure Database for PostgreSQLデータベースの認証ユーザーのMicrosoft Azure Database for PostgreSQL認証情報(ユ ーザー名、パスワード)を入力します。この情報がわからない場合は、 Microsoft Azure Database for PostgreSQLデータベース管理者(DBA )に確認してください。 • こちらのフィールドは、ケースセンシティブです(大文字小文字を区別します)。 9. Database名を入力するか、リストからソースデータベースを選択します。 10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
  • 86.
    86 一般的な接続プロパティの設定 SSL認証オプション Securityセクションでは、SSLを使ってMicrosoft Azure Databasefor PostgreSQLデータベースに接続するようにReplicateを設定できます。 ※ 指定された証明書は、一括挿入操作にのみ関連します。 1. SSL Mode: 以下からひとつ選択します。: • Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー ルバックします。 • Disable – ユーザー名とパスワードのみで接続します。 • Allow - サーバーから要求された場合は、暗号化された接続を確立します。 • Require - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。 • Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接 続の試みは失敗します。 • Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に 記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。 2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。 3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。 4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。 5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された 場合、接続は失敗します。 6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
  • 87.
    87 高度な接続プロパティの設定 [Advanced ] タブでは、次のプロパティを設定できます。 •Max file size (KB): CSVファイルがMicrosoft Azure Database for PostgreSQLのターゲットデータベースに読み込まれるまでの最大サイズ(KB) を選択または入力します。既定値は32000KBです。
  • 88.
    88 Google Cloud SQLfor PostgreSQLの追加情報
  • 89.
    89 一般的な接続プロパティの設定 Google Cloud SQLfor PostgreSQL ターゲット エンドポイントをQlik Replicateに追加するには、次の手順を実行します。 1. Qlik Replicate コンソールで、[Manage Endpoint Connections]をクリックして、[Manage Endpoint Connections]ダイアログボックスを開き ます。次に、「New Endpoint Connection」ボタンをクリックします。Qlik Replicateにエンドポイントを追加する方法については、「 Defining and managing endpoints 」を参照してください。 2. Nameフィールドに、エンドポイントの名前を入力します。この名前は、使用するデータベースを識別するのに役立つものであれば何でも構いません。 3. Descriptionフィールドには、Google Cloud SQL for PostgreSQLデータベースを識別するのに役立つ説明を入力します。これは任意の設定項 目です。 4. Roleにて、[Target] を選択します。 5. Typeのリストから[Google Cloud SQL for PostgreSQL]を選択します。 6. Server フィールドには、Google Cloud SQL for PostgreSQLデータベースがインストールされているコンピュータのホスト名またはIPアドレスを入力 します。 7. Portから、任意でデフォルトのポート(5432)を変更できます。 8. Google Cloud SQL for PostgreSQLデータベースの認証ユーザーのGoogle Cloud SQL for PostgreSQL認証情報(ユーザー名、パスワー ド)を入力します。この情報がわからない場合は、 Google Cloud SQL for PostgreSQLデータベース管理者(DBA)に確認してください。 • こちらのフィールドは、ケースセンシティブです(大文字小文字を区別します)。 9. Database名を入力するか、リストからソースデータベースを選択します。 10. OKをクリックし設定を保存します。そして、ダイアログボックスを閉じます。
  • 90.
    90 一般的な接続プロパティの設定 SSL認証オプション Securityセクションでは、SSLを使ってGoogle Cloud SQLfor PostgreSQLデータベースに接続するようにReplicateを設定できます。 ※ 指定された証明書は、一括挿入操作にのみ関連します。 1. SSL Mode: 以下からひとつ選択します。: • Prefer - サーバーが暗号化された接続をサポートしている場合は、暗号化された接続を確立し、暗号化された接続が確立できない場合は、非暗号化された接続にフォー ルバックします。 • Disable – ユーザー名とパスワードのみで接続します。 • Allow - サーバーから要求された場合は、暗号化された接続を確立します。 • Require - サーバーが暗号化接続をサポートしている場合は、暗号化接続を確立します。暗号化接続が確立できない場合は、接続は失敗します。 • Verify CA - Requiredに似ていますが、サーバーの認証局(CA)証明書を、設定されたCA証明書と照合します。一致する有効なCA証明書が見つからない場合、接 続の試みは失敗します。 • Verify Full - Verify CAと似ていますが、クライアント(つまり、Qlik Replicate)がサーバーへの接続に使用するホスト名と、サーバーがクライアントに送信する証明書に 記載されているアイデンティティとを照合することで、ホスト名のアイデンティティ検証も行います。クライアントは、接続に使用するホスト名が、サーバーの証明書に記載されてい るCommon Nameの値と一致するかどうかを確認します。不一致があった場合、接続は失敗します。 2. Client certificate path - サーバーから要求されるクライアント証明書のパスです。 3. Private key path - PEM形式のクライアントの秘密鍵ファイルのパスです。 4. CA path - PEM形式のクライアント証明書ファイルを発行したCA(Certificate Authority)へのパスです。 5. CRL path - CRL証明書のパスです。このファイルには、認証局によって取り消された証明書が含まれています。サーバー証明書がこのリストに表示された 場合、接続は失敗します。 6. SSL compression - このオプションを選択すると、暗号化される前にデータが圧縮されます。
  • 91.
    91 高度な接続プロパティの設定 [Advanced ] タブでは、次のプロパティを設定できます。 •Max file size (KB): CSVファイルがGoogle Cloud SQL for PostgreSQLのターゲットデータベースに読み込まれるまでの最大サイズ(KB)を選択ま たは入力します。既定値は32000KBです。
  • 92.