PostgreSQL
In diesem Abschnitt wird erläutert, wie die Verbindung zu einem PostgreSQL-Ziel anhand des PostgreSQL-Zielkonnektors konfiguriert wird. PostgreSQL kann nur als Ziel in einer Replikationsaufgabe verwendet werden. Bevor Sie eine Verbindung mit einem PostgreSQL-Ziel herstellen können, müssen Sie die Erforderliche Berechtigungen in der Datenbank konfigurieren. Wenn Sie eine Verbindung zu PostgreSQL über Data Movement Gateway herstellen, müssen Sie auch den Treiber wie in Treibereinrichtung beschrieben installieren.
Weitere Informationen zu den Einschränkungen und Überlegungen bei der Verwendung des PostgreSQL-Konnektors finden Sie unter Einschränkungen und Überlegungen.
Einrichten von Verbindungseigenschaften
Gehen Sie wie folgt vor, um den Konnektor zu konfigurieren:
-
Klicken Sie in Verbindungen auf Verbindung erstellen.
-
Wählen Sie den PostgreSQL-Zielkonnektor aus und geben Sie dann die folgenden Einstellungen an:
Datenziel
-
Daten-Gateway: Wählen Sie bei der Arbeit mit Data Movement Gateway das Daten-Gateway aus, das zum Testen der Verbindung zum PostgreSQL-Ziel verwendet wird. Dabei muss es sich um das gleiche Gateway wie für den Zugriff auf die Datenquelle handeln.
Informationshinweis- Dieses Feld ist für Qlik Talend Cloud Starter-Abonnements nicht verfügbar, da Data Movement Gateway für diese Abonnementstufe nicht unterstützt wird.
-
Sie müssen auch den entsprechenden Treiber auf dem Data Movement Gateway-Rechner installieren. Weitere Einzelheiten finden Sie unter Treibereinrichtung unten.
-
Cloudanbieter: Wählen Sie wie erforderlich eine der folgenden Optionen aus:
-
Keine – Wählen Sie diese Option aus, wenn Sie mit folgenden Systemen arbeiten:
- PostgreSQL lokal
- Amazon Aurora
- Azure Database for PostgreSQL - Flexibler Server
- Kein Data Movement Gateway
-
Amazon RDS
Für Amazon RDS for PostgreSQL
-
Google Cloud – Wählen Sie diese Option aus, wenn Sie mit folgenden Systemen arbeiten:
- Google Cloud SQL for PostgreSQL
- Google Cloud AlloyDB for PostgreSQL
-
Microsoft Azure
Für Microsoft Azure Database for PostgreSQL
-
-
Host: Hostname oder IP-Adresse des Computers, auf dem die PostgreSQL-Datenbank installiert ist.
-
Port: Der Port, der bei der Verbindung zur Datenbank verwendet werden soll. Der Standardwert ist 5432.
Kontoeigenschaften
Benutzername und Kennwort: Benutzername und Kennwort eines Benutzers, der zum Zugriff auf die PostgreSQL Server-Datenbank berechtigt ist.
Datenbankeigenschaften
-
Datenbankname: Es gibt zwei Methoden zum Angeben einer Datenbank:
- Methode 1 – Aus einer Liste auswählen: Klicken Sie auf Datenbanken laden und wählen Sie dann eine Datenbank aus.
- Methode 2 – Manuell: Wählen Sie Datenbanknamen manuell eingeben aus und geben Sie dann den Datenbanknamen ein.
- SSL-Modus: Wählen Sie eine der folgenden Optionen aus:
- disable: Stellen Sie nur mit einem Nachnamen und einem Kennwort eine Verbindung her.
- allow: Richten Sie eine verschlüsselte Verbindung ein, wenn dies vom Server angefordert wird.
- prefer: Dies ist die Standardeinstellung. Sie stellt eine verschlüsselte Verbindung her, wenn der Server verschlüsselte Verbindungen unterstützt, und greift auf eine unverschlüsselte Verbindung zurück, wenn keine verschlüsselte Verbindung hergestellt werden kann.
- require: Stellt eine verschlüsselte Verbindung her, wenn der Server verschlüsselte Verbindungen unterstützt. Die Verbindungsversuch schlägt fehl, wenn eine verschlüsselte Verbindung nicht hergestellt werden kann.
- verify-ca: Ähnlich wie Required, jedoch wird auch das Zertifikat der Server-Zertifizierungsstelle (ZS) im Vergleich zu den konfigurierten ZS-Zertifikaten verifiziert. Der Verbindungsversuch schlägt fehl, wenn keine gültigen und passenden ZS-Zertifikate gefunden werden.
- verify-full: Ähnlich wie Verify CA, jedoch wird auch eine Verifizierung der Identität des Hostnamens durchgeführt, indem der Hostname, den der Client (also Qlik Talend Data Integration) für die Herstellung der Verbindung zum Server verwendet, mit der Identität im Zertifikat, das der Server an den Client übermittelt, abgeglichen wird. Der Client überprüft, ob der Hostname, den er für die Verbindung benutzt, mit dem Wert „Allgemeiner Name“ im Serverzertifikat übereinstimmt. Die Verbindung schlägt fehl, wenn keine Übereinstimmung festgestellt wird.
- Vertrauenswürdiges Zertifikat: Die Zertifizierungsstelle (ZS), die die Clientzertifikat-Datei im PEM-Format ausgestellt hat.
- Clientzertifikat: Laden Sie das vom Server angeforderte Clientzertifikat hoch.
- Clientzertifikat-Schlüssel: Die private Clientschlüsseldatei im PEM-Format.
- CRL: Das CRL-Zertifikat. Diese Datei enthält Zertifikate, die von Zertifizierungsstellen widerrufen wurden. Falls das Serverzertifikat in dieser Liste aufgeführt ist, schlägt die Verbindung fehl.
- SSL-Komprimierung: Wählen Sie diese Option aus, um die Daten vor der Verschlüsselung zu komprimieren.
- Maximale Dateigröße (KB): Wählen Sie die maximale Größe (in KB) einer CSV-Datei aus bzw. geben Sie sie ein, bevor sie in die PostgreSQL-Zieldatenbank geladen wird. Der Standardwert ist 32000 KB.
Interne Eigenschaften
Interne Eigenschaften sind für besondere Anwendungsfälle vorgesehen und werden daher nicht im Dialogfenster angezeigt. Sie sollten sie nur verwenden, wenn Sie vom Qlik Support dazu angewiesen werden.
Verwenden Sie die Schaltflächen und rechts neben den Feldern, um Eigenschaften wie erforderlich hinzuzufügen oder zu entfernen.
Name
Der Anzeigename für die Verbindung.
Voraussetzungen
Erforderliche Berechtigungen
Der in den Konnektoreinstellungen angegebene Benutzer muss ein registrierter Benutzer in der PostgreSQL-Datenbank sein.
Zusätzlich müssen die folgenden Berechtigungen gewährt werden:
- Kann sich anmelden
- Datenbanken erstellen
Treibereinrichtung
Sie können den driver mit dem Treiberinstallations-Dienstprogramm (empfohlen) oder manuell installieren. Eine manuelle Installation sollte nur in dem unwahrscheinlichen Fall versucht werden, dass Sie beim Verwenden des Treiberinstallations-Dienstprogramms auf Probleme stoßen.
Verwenden des Treiberinstallations-Dienstprogramms zum Installieren des Treibers
In diesem Abschnitt wird die Installation des erforderlichen driver beschrieben. Der Prozess umfasst das Ausführen eines Skripts, das den erforderlichen driver automatisch herunterlädt, installiert und konfiguriert. Sie können auch Skripte ausführen, um den driver bei Bedarf zu aktualisieren und zu deinstallieren.
Vorbereiten der Installation
-
Vergewissern Sie sich, dass Python 3.6 oder höher auf dem Data Movement-Gateway-Server installiert ist.
Python ist in den meisten Linux-Distributionen vorinstalliert. Führen Sie den folgenden Befehl aus, um zu prüfen, welche Python-Version auf Ihrem System installiert ist.
python3 --version
Installieren von driver
So laden Sie den driver herunter und installieren ihn:
-
Ändern Sie auf dem Data Movement-Gateway-Computer das Arbeitsverzeichnis zu:
opt/qlik/gateway/movement/drivers/bin
-
Führen Sie den folgenden Befehl aus:
Syntax:
./install postgres
Wenn der driver (aufgrund von Zugriffsbeschränkungen oder technischen Fehlern) nicht heruntergeladen werden kann, wird eine Meldung mit Anleitungen dazu angezeigt, wo Sie den driver herunterladen können und wohin er im Data Movement-Gateway-Computer kopiert werden muss. Führen Sie dann den Befehl install postgres erneut aus.
Andernfalls wird die Endbenutzer-Lizenzvereinbarung für den driver angezeigt.
-
Gehen Sie folgendermaßen vor:
- Drücken Sie mehrmals die [Eingabetaste], um langsam durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
- Drücken Sie mehrmals die Leertaste, um schnell durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
- Drücken Sie q, um den Lizenztext zu schließen und die Optionen zum Akzeptieren der Endbenutzer-Lizenzvereinbarung anzuzeigen.
-
Gehen Sie folgendermaßen vor:
- Geben Sie „y“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung zu akzeptieren und mit der Installation zu beginnen.
- Geben Sie „n“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung abzulehnen und den Installationsvorgang abzubrechen.
-
Geben Sie „v“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung erneut anzuzeigen.
Der driver wird installiert.
Aktualisieren des driver
Führen Sie den Befehl „update“ aus, wenn Sie vorherige Versionen des driver deinstallieren möchten, bevor Sie den bereitgestellten driver installieren.
So laden Sie den driver herunter und aktualisieren ihn:
-
Ändern Sie auf dem Data Movement-Gateway-Computer das Arbeitsverzeichnis zu:
opt/qlik/gateway/movement/drivers/bin
-
Führen Sie den folgenden Befehl aus:
Syntax:
./update postgres
Wenn der driver (aufgrund von Zugriffsbeschränkungen oder technischen Fehlern) nicht heruntergeladen werden kann, wird eine Meldung mit Anleitungen dazu angezeigt, wo Sie den driver herunterladen können und wohin er im Data Movement-Gateway-Computer kopiert werden muss. Führen Sie dann den Befehl update postgres erneut aus.
Andernfalls wird die Endbenutzer-Lizenzvereinbarung für den driver angezeigt.
-
Gehen Sie folgendermaßen vor:
- Drücken Sie mehrmals die [Eingabetaste], um langsam durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
- Drücken Sie mehrmals die Leertaste, um schnell durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
- Drücken Sie q, um den Lizenztext zu schließen und die Optionen zum Akzeptieren der Endbenutzer-Lizenzvereinbarung anzuzeigen.
-
Gehen Sie folgendermaßen vor:
- Geben Sie „y“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung zu akzeptieren und mit der Installation zu beginnen.
- Geben Sie „n“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung abzulehnen und den Installationsvorgang abzubrechen.
- Geben Sie „v“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung von Anfang an anzuzeigen.
Der alte driver wird deinstalliert und der neue driver installiert.
Deinstallieren des driver
Führen Sie den Befehl „uninstall“ aus, wenn Sie den driver deinstallieren möchten.
So deinstallieren Sie den driver:
-
Halten Sie alle Aufgaben an, die für die Verwendung dieses Konnektors konfiguriert sind.
-
Ändern Sie auf dem Data Movement-Gateway-Computer das Arbeitsverzeichnis zu:
opt/qlik/gateway/movement/drivers/bin
-
Führen Sie den folgenden Befehl aus:
Syntax:
./uninstall postgres
Der driver wird deinstalliert.
Manuelles Installieren der Treiber und Bibliotheken
Nehmen Sie nur dann eine manuelle Installation des driver vor, wenn die automatische Treiberinstallation nicht erfolgreich abgeschlossen werden konnte.
Laden Sie nach der Installation von Data Movement Gateway die folgenden RPM-Dateien herunter. Direkte Download-Links für die Dateien finden Sie unter binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/postgres.yaml. Kopieren Sie nach Abschluss des Downloads die Dateien auf den Data Movement Gateway-Rechner.
Wenn Data Movement Gateway unter Red Hat 9.x installiert ist:
- postgresql<version>-libs-<version>PGDG.rhel9.x86_64.rpm
- postgresql<version>-<version>PGDG.rhel9.x86_64.rpm
- postgresql<version>-odbc-<version>PGDG.rhel9.x86_64.
Wenn Data Movement Gateway unter Red Hat 8.x installiert ist:
- postgresql<version>-libs-<version>PGDG.rhel8.x86_64.rpm
- postgresql<version>-<version>PGDG.rhel8.x86_64.rpm
- postgresql<version>-odbc-<version>PGDG.rhel8.x86_64.rpm
Öffnen Sie auf dem Data Movement Gateway-Server eine Shell-Eingabeaufforderung und führen Sie Folgendes durch:
-
Halten Sie den Data Movement Gateway-Dienst an:
sudo systemctl stop repagent
-
Bestätigen Sie optional, dass der Dienst angehalten wurde:
sudo systemctl status repagent
Der Status lautet wie folgt:
Active: inactive (dead) since <timestamp> ago
-
Installieren Sie die RPM-Dateien.
-
Ändern Sie das Arbeitsverzeichnis in <Data Movement Gateway-Install_Dir>/bin.
-
Kopieren Sie den Treiberspeicherort wie folgt in die Datei site_arep_login.sh:
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/pgsql-<version>/lib" >> site_arep_login.sh
Dadurch wird der Treiber zu „LD_LIBRARY_PATH“ hinzugefügt und der Treiberspeicherort in der Datei site_arep_login.sh aktualisiert.
-
Bestätigen Sie optional, dass der Speicherort des Treibers kopiert wurde:
cat site_arep_login.sh
-
Stellen Sie sicher, dass die Datei /etc/odbcinst.ini einen Eintrag für PostgreSQL enthält, wie im folgenden Beispiel gezeigt:
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/pgsql-13/lib/psqlodbc.so
Setup = /usr/pgsql-13/lib/psqlodbcw.so
UsageCount = 1
-
Starten Sie den Data Movement Gateway-Dienst:
sudo systemctl start repagent
-
Bestätigen Sie optional, dass der Dienst gestartet wurde:
sudo systemctl status repagent
Der Status lautet wie folgt:
Active: active (running) since <timestamp> ago
Einschränkungen und Überlegungen
Die folgenden Einschränkungen gelten, wenn PostgreQL als Replikationsziel verwendet wird:
- UPDATE- und DELETE-Vorgänge in Tabellen ohne Primärschlüssel/eindeutigen Index, die duplizierte Datensätze enthalten, werden nicht unterstützt. Alle Änderungen an diesen Tabellen wirken sich auf alle Datensätze im Ziel aus.
- Tabellen mit einer LOB-Spalte im Schlüssel werden im stapeloptimierten Anwendungsmodus nicht unterstützt. Wenn eine VARBINARY-Spalte als Quelltabellenschlüssel verwendet wird, wird eine BYTEA-Spalte im Ziel erstellt. Dies führt zu unvorhersehbarem Verhalten im stapeloptimierten Anwendungsmodus. Als Problemumgehung wird empfohlen, die SQLite HEX-Funktion zu verwenden, um VARBINARY in VARCHAR zu konvertieren.
Datentypen
Informationen zum nativen Datentyp werden beibehalten und in der Spalte Nativer Datentyp in Datensatzansichten angezeigt. Wenn die Spalte nicht angezeigt wird, müssen Sie die Spaltenauswahl in der Datensatzansicht öffnen und die Spalte Nativer Datentyp auswählen.
Qlik Cloud-Datentypen | PostgreSQL-Datentypen |
---|---|
BOOL |
BOOL |
BYTES |
BYTEA |
DATE |
DATE |
TIME |
TIME |
DATETIME |
Wenn Dezimalstellen => 0 und =< 6, dann: TIMESTAMP Wenn Dezimalstellen => 7 und =< 12, dann: VARCHAR (37) |
INT1 |
SMALLINT |
INT2 |
SMALLINT |
INT4 |
INTEGER |
INT8 |
BIGINT |
NUMERIC |
DECIMAL (P, S) |
REAL4 |
FLOAT4 |
REAL8 |
FLOAT8 |
STRING |
Wenn Länge 1 - 21845, dann: VARCHAR (Länge in Byte = der STRING-Wert multipliziert mit drei) Wenn Länge 21846 - 2147483647, dann: VARCHAR (65535) |
UINT1 |
SMALLINT |
UINT2 |
INTEGER |
UINT4 |
BIGINT |
UINT8 |
BIGINT |
WSTRING |
Wenn Länge 1 - 21845, dann: VARCHAR (Länge in Byte = der WSTRING-Wert multipliziert mit drei) Wenn Länge 21846 - 2147483647, dann: VARCHAR (65535) |
BLOB |
BYTEA |
NCLOB |
TEXT |
CLOB |
TEXT |
Datentypen beim Replizieren aus einer PostgreSQL-Quelle
Wenn von einer PostgreSQL-Quelle repliziert wird, wird die Zieltabelle mit den gleichen Datentypen für alle Spalten erstellt, abgesehen von Spalten mit benutzerdefinierten oder PostGIS-Datentypen. In diesen Fällen wird der Datentyp als „Zeichen variierend“ im Ziel erstellt.