Oracle
 sql >> Database >  >> RDS >> Oracle

Connessione al database Oracle 12c da Pentaho Data Integration (Kettle) Community Edition

Introduzione

Gli strumenti Pentaho Data Integration (DI) (noti anche come Kettle) contengono un potente assortimento di strumenti di filtraggio e trasformazione dei dati che possono essere utilizzati per eseguire processi di estrazione, trasformazione e caricamento. Pentaho DI Community Edition viene fornito con una raccolta di driver di database che possono accedere a molti sistemi di database diversi come origine dati (input) o destinazione (output). Tuttavia, l'edizione community potrebbe non essere fornita con i driver per il database Oracle. Le seguenti note presuppongono che Pentaho DI (bollitore) sia stato installato secondo queste note di installazione di Pentaho DI.

Installazione dei driver Oracle JDBC

Per utilizzare le origini dati Oracle con Pentaho DI, devi prima assicurarti che i driver Oracle JDBC siano installati. In caso contrario, ottenerli da Oracle e installarli nella cartella lib per Pentaho DI.

I driver Oracle JDBC vengono forniti con ogni installazione di Oracle Server e sono disponibili in \jdbc cartella della home di Oracle. Se non hai accesso al server Oracle, puoi scaricare i driver più recenti dal sito Web JDBC di Oracle. Assicurati di scaricare i driver JDBC che corrispondono alla versione di Java Runtime Environment (JRE) in esecuzione.

Copia i driver Oracle JDBC nella cartella Pentaho\data-integration\lib. Quando si esegue Pentaho DI con Java7, utilizzare le versioni Java 7 dei driver JDBC come mostrato nella figura seguente:

Aggiunta del supporto per Oracle Wallet

Se intendi connetterti a un database Oracle sicuro come un database autonomo in Oracle Cloud (come in questo esempio), assicurati di scaricare e copiare anche i file di supporto JDBC inclusi (per JDK versione 8):

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

IMPORTANTE:assicurati di riavviare Pentaho Data Integration dopo aver copiato il nuovo jar file nella lib cartella.

Le istruzioni per impostare una nuova connessione a Oracle da PDI sono fornite nella pagina successiva.

Esecuzione di Pentaho DI e creazione di una trasformazione di output tabella

Esegui Spoon e crea una nuova trasformazione per un output tabella

Ottieni le proprietà dell'output della tabella come mostrato di seguito:

Per la Connessione, fare clic sul pulsante Nuovo... per creare una nuova connessione.

Assegna un nome alla nuova connessione al database e quindi seleziona Oracle come Tipo di connessione. Scegli JDBC (nativo) come tipo di accesso.

Inserisci il nome host o l'indirizzo IP del server che attualmente esegue Oracle. Se si esegue Oracle sul proprio computer locale, utilizzare l'indirizzo IP localhost 127.0.0.1. Impostare il numero di porta su cui è in esecuzione il listener di database Oracle. Di default questa è la porta 1521.

Inserisci il nome del database in base al nome del servizio Oracle o al SID. Se il database Oracle 12c è configurato con database collegabili, utilizza una barra seguita dal nome del database collegabile (pdb1 nell'esempio seguente).

Fornisci il nome utente e la password dell'account Oracle per la connessione. Se i campi Tablespace for Data e Tablespace for Index vengono lasciati vuoti, verranno utilizzati i tablespace predefiniti per lo schema. Se desideri modificarli, digita i nomi dei tablespace in base alle richieste.

Al termine, fai clic sul pulsante Test per testare la connessione.

Messaggi di errore comuni

Se il test ha esito negativo, controllare i messaggi di errore. Ad esempio:

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

Controlla il nome utente e la password

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

Controllare il nome del database (nome del servizio Oracle, SID o nome del database collegabile)

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

Controlla il nome host e/o il numero di porta.

ORA-28000, Account Locked

Assicurati che l'account Oracle sia sbloccato e che la password sia aggiornata. In alcuni casi, se la password è in "periodo di grazia", ​​Pentaho può ancora interpretarlo come "account bloccato". L'amministratore del database potrebbe dover sbloccare manualmente il tuo account (ALTER USER xyz ACCOUNT UNLOCK; ) o reimpostare la password.

Una volta che il test ha esito positivo, fare clic sul pulsante OK e la connessione al database verrà salvata nella trasformazione Table Output. Assicurati che lo schema di destinazione corrisponda al nome utente e/o allo schema previsto per l'operazione di output (o input) dei dati.