Inleiding
Pentaho Data Integration (DI)-tools (ook bekend als Kettle) bevatten een krachtig assortiment aan datafilter- en transformatietools die kunnen worden gebruikt om Extract-, Transform- en Load-processen uit te voeren. De Pentaho DI Community Edition wordt geleverd met een verzameling databasestuurprogramma's die toegang hebben tot veel verschillende databasesystemen als een gegevensbron (invoer) of een doel (uitvoer). De community-editie wordt echter mogelijk niet geleverd met stuurprogramma's voor de Oracle-database. De volgende opmerkingen gaan ervan uit dat de Pentaho DI (waterkoker) is geïnstalleerd volgens deze Pentaho DI-installatie-opmerkingen.
Oracle JDBC-stuurprogramma's installeren
Om Oracle-gegevensbronnen met Pentaho DI te gebruiken, moet u er eerst voor zorgen dat de Oracle JDBC-stuurprogramma's zijn geïnstalleerd. Als dat niet het geval is, haalt u ze op bij Oracle en installeert u ze in de lib-map voor Pentaho DI.
De Oracle JDBC-stuurprogramma's worden bij elke Oracle Server-installatie geleverd en zijn te vinden in de \jdbc map van de Oracle home. Als u geen toegang heeft tot de Oracle-server, kunt u de nieuwste stuurprogramma's downloaden van de JDBC-website van Oracle. Zorg ervoor dat u de JDBC-stuurprogramma's downloadt die overeenkomen met de versie van Java Runtime Environment (JRE) die u gebruikt.
Kopieer de Oracle JDBC-stuurprogramma's naar de map Pentaho\data-integration\lib. Gebruik bij het uitvoeren van Pentaho DI met Java7 de Java 7-versies van de JDBC-stuurprogramma's zoals weergegeven in de onderstaande afbeelding:
Ondersteuning toevoegen voor Oracle Wallets
Als u van plan bent verbinding te maken met een beveiligde Oracle-database zoals een Autonomous Database in Oracle Cloud (zoals in dit voorbeeld), zorg er dan voor dat u ook de JDBC-ondersteuningsbestanden downloadt en kopieert, inclusief (voor JDK versie 8):
ojdbc8.jar oraclepki.jar osdt_cert.jar osdt_core.jar
BELANGRIJK:Zorg ervoor dat u Pentaho Data Integration opnieuw start na het kopiëren van een nieuwe jar bestanden naar de lib map.
Instructies voor het opzetten van een nieuwe verbinding met Oracle vanuit PDI vindt u op de volgende pagina.
Pentaho DI uitvoeren en een tabeluitvoertransformatie maken
Voer Spoon uit en maak een nieuwe transformatie voor een tabeluitvoer
Verkrijg de eigenschappen van de tabeluitvoer zoals hieronder getoond:
Klik voor de verbinding op de knop Nieuw... om een nieuwe verbinding te maken.
Geef uw nieuwe databaseverbinding een naam en selecteer vervolgens Oracle als verbindingstype. Kies JDBC (Native) als het toegangstype.
Vul de hostnaam of het IP-adres in van de server waarop Oracle momenteel draait. Als u Oracle op uw eigen lokale computer draait, gebruik dan het localhost IP-adres 127.0.0.1. Stel het poortnummer in waarop de Oracle-databaselistener wordt uitgevoerd. Standaard is dit poort 1521.
Vul de databasenaam in volgens uw Oracle-servicenaam of SID. Als uw Oracle 12c-database is geconfigureerd met insteekbare databases, gebruikt u een slash gevolgd door de naam van de insteekbare database (pdb1 in het onderstaande voorbeeld).
Geef de gebruikersnaam en het wachtwoord van het Oracle-account voor de verbinding op. Als de velden Tabelruimte voor gegevens en Tabelruimte voor index leeg worden gelaten, worden de standaardtabelruimten voor het schema gebruikt. Als u deze wilt wijzigen, typt u de namen van de tablespaces in volgens de aanwijzingen.
Als u klaar bent, klikt u op de knop Test om de verbinding te testen.
Veelvoorkomende foutmeldingen
Als de test mislukt, controleer dan de foutmeldingen. Bijvoorbeeld:
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
Controleer de gebruikersnaam en het wachtwoord
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
Controleer de databasenaam (Oracle Service Name, SID of pluggable databasenaam)
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
Controleer de hostnaam en/of het poortnummer.
ORA-28000, Account Locked
Zorg ervoor dat het Oracle-account is ontgrendeld en dat het wachtwoord actueel is. In sommige gevallen, als het wachtwoord zich in de "respijtperiode" bevindt, kan Pentaho dit nog steeds interpreteren als "account vergrendeld". Het kan zijn dat uw databasebeheerder uw account handmatig moet ontgrendelen (GEBRUIKER WIJZIGEN xyz ACCOUNT ONTGRENDELEN; ) of reset uw wachtwoord.
Zodra de test succesvol is, klikt u op de knop OK en wordt de databaseverbinding opgeslagen in de tabeluitvoertransformatie. Zorg ervoor dat het doelschema overeenkomt met de gebruikersnaam en/of het beoogde schema voor de gegevensuitvoer (of invoer) bewerking.