Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Herstellen einer Verbindung mit der Oracle 12c-Datenbank von Pentaho Data Integration (Kettle) Community Edition

Einführung

Pentaho Data Integration (DI)-Tools (auch als Kettle bekannt) enthalten eine leistungsstarke Auswahl an Datenfilter- und Transformationstools, die zum Ausführen von Extraktions-, Transformations- und Ladeprozessen verwendet werden können. Die Pentaho DI Community Edition enthält eine Sammlung von Datenbanktreibern, die auf viele verschiedene Datenbanksysteme entweder als Datenquelle (Eingabe) oder als Ziel (Ausgabe) zugreifen können. Die Community Edition wird jedoch möglicherweise nicht mit Treibern für die Oracle-Datenbank geliefert. Die folgenden Hinweise gehen davon aus, dass Pentaho DI (Wasserkocher) gemäß diesen Pentaho DI-Installationshinweisen installiert wurde.

Installieren von Oracle JDBC-Treibern

Um Oracle-Datenquellen mit Pentaho DI zu verwenden, müssen Sie zunächst sicherstellen, dass die Oracle JDBC-Treiber installiert sind. Falls nicht, besorgen Sie sie sich von Oracle und installieren Sie sie im lib-Ordner für Pentaho DI.

Die Oracle JDBC-Treiber werden mit jeder Oracle Server-Installation ausgeliefert und befinden sich im Verzeichnis \jdbc Ordner des Oracle-Home. Wenn Sie keinen Zugriff auf den Oracle-Server haben, können Sie die neuesten Treiber von der JDBC-Website von Oracle herunterladen. Stellen Sie sicher, dass Sie die JDBC-Treiber herunterladen, die der Version von Java Runtime Environment (JRE) entsprechen, die Sie ausführen.

Kopieren Sie die Oracle JDBC-Treiber in den Ordner Pentaho\data-integration\lib. Wenn Sie Pentaho DI mit Java7 ausführen, verwenden Sie die Java 7-Versionen der JDBC-Treiber, wie in der folgenden Abbildung gezeigt:

Hinzufügen von Unterstützung für Oracle Wallets

Wenn Sie beabsichtigen, eine Verbindung zu einer sicheren Oracle-Datenbank wie einer autonomen Datenbank in Oracle Cloud (wie in diesem Beispiel) herzustellen, stellen Sie sicher, dass Sie auch die JDBC-Unterstützungsdateien herunterladen und kopieren, einschließlich (für JDK Version 8):

ojdbc8.jar
oraclepki.jar
osdt_cert.jar
osdt_core.jar

WICHTIG:Achten Sie darauf, Pentaho Data Integration neu zu starten, nachdem Sie das neue jar kopiert haben Dateien in die lib Ordner.

Anweisungen zum Einrichten einer neuen Verbindung zu Oracle von PDI finden Sie auf der nächsten Seite.

Pentaho DI ausführen und eine Tabellenausgabeumwandlung erstellen

Führen Sie Spoon aus und erstellen Sie eine neue Transformation für eine Tabellenausgabe

Rufen Sie die Eigenschaften der Tabellenausgabe wie unten gezeigt ab:

Klicken Sie für die Verbindung auf die Schaltfläche Neu…, um eine neue Verbindung zu erstellen.

Geben Sie Ihrer neuen Datenbankverbindung einen Namen und wählen Sie dann Oracle als Verbindungstyp aus. Wählen Sie JDBC (nativ) als Zugriffstyp.

Geben Sie den Hostnamen oder die IP-Adresse des Servers ein, auf dem derzeit Oracle ausgeführt wird. Wenn Sie Oracle auf Ihrem eigenen lokalen Computer ausführen, verwenden Sie die localhost-IP-Adresse 127.0.0.1. Legen Sie die Portnummer fest, auf der der Oracle-Datenbank-Listener ausgeführt wird. Standardmäßig ist dies Port 1521.

Geben Sie den Datenbanknamen entweder gemäß Ihrem Oracle-Dienstnamen oder Ihrer SID ein. Wenn Ihre Oracle 12c-Datenbank mit austauschbaren Datenbanken konfiguriert ist, verwenden Sie einen Schrägstrich gefolgt vom Namen der austauschbaren Datenbank (pdb1 im Beispiel unten).

Geben Sie den Benutzernamen und das Kennwort des Oracle-Kontos für die Verbindung an. Wenn die Felder Tablespace for Data und Tablespace for Index leer gelassen werden, werden die Standard-Tablespaces für das Schema verwendet. Wenn Sie diese ändern möchten, geben Sie die Namen der Tablespaces gemäß den Eingabeaufforderungen ein.

Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Test, um die Verbindung zu testen.

Häufige Fehlermeldungen

Wenn der Test fehlschlägt, überprüfen Sie die Fehlermeldungen. Zum Beispiel:

Error connecting to database [Oracle12cDatabase] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database
Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)
ORA-01017: invalid username/password; logon denied

Überprüfen Sie den Benutzernamen und das Passwort

Error connecting to database [Oracle12cDatabase] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database
Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)
Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

Überprüfen Sie den Datenbanknamen (Oracle Service Name, SID oder austauschbarer Datenbankname)

Error connecting to database [Oracle12cDatabase] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database
Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)
IO Error: The Network Adapter could not establish the connection

Überprüfen Sie den Hostnamen und/oder die Portnummer.

ORA-28000, Account Locked

Stellen Sie sicher, dass das Oracle-Konto entsperrt und das Kennwort aktuell ist. In einigen Fällen kann Pentaho, wenn sich das Passwort in einer „Gnadenfrist“ befindet, dies immer noch als „Konto gesperrt“ interpretieren. Ihr Datenbankadministrator muss Ihr Konto möglicherweise entweder manuell entsperren (ALTER USER xyz ACCOUNT UNLOCK; ) oder setzen Sie Ihr Passwort zurück.

Sobald der Test erfolgreich ist, klicken Sie auf die Schaltfläche OK und die Datenbankverbindung wird in der Tabellenausgabeumwandlung gespeichert. Stellen Sie sicher, dass das Zielschema mit dem Benutzernamen und/oder beabsichtigten Schema für die Datenausgabe (oder -eingabe) übereinstimmt.