sql >> Database >  >> RDS >> Oracle

Verbinding maken met Oracle 12c Database vanuit Pentaho Data Integration (Kettle) Community Edition

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.


  1. MySQL-update GEVAL WANNEER/DAN/ELSE

  2. Hoe brengt u SQL Server 2005-gegevens over naar of exporteert u deze naar Excel?

  3. Impact van het definiëren van VARCHAR2-kolom met grotere lengte

  4. Batch-modus Bitmaps in SQL Server