Wprowadzenie
Narzędzia Pentaho Data Integration (DI) (znane również jako Kettle) zawierają potężny zestaw narzędzi do filtrowania i transformacji danych, których można używać do przeprowadzania procesów wyodrębniania, przekształcania i ładowania. Pentaho DI Community Edition zawiera kolekcję sterowników baz danych, które mogą uzyskiwać dostęp do wielu różnych systemów baz danych jako źródło danych (wejście) lub cel (wyjście). Jednak wersja Community może nie być dostarczana ze sterownikami do bazy danych Oracle. Poniższe uwagi zakładają, że Pentaho DI (czajnik) został zainstalowany zgodnie z tymi uwagami dotyczącymi instalacji Pentaho DI.
Instalowanie sterowników Oracle JDBC
Aby korzystać ze źródeł danych Oracle z Pentaho DI, należy najpierw upewnić się, że zainstalowano sterowniki Oracle JDBC. Jeśli nie, uzyskaj je od Oracle i zainstaluj w folderze lib dla Pentaho DI.
Sterowniki Oracle JDBC są dostarczane z każdą instalacją Oracle Server i można je znaleźć w \jdbc folder domu Oracle. Jeśli nie masz dostępu do serwera Oracle, możesz pobrać najnowsze sterowniki ze strony internetowej Oracle JDBC. Pamiętaj, aby pobrać sterowniki JDBC, które pasują do używanej wersji środowiska Java Runtime Environment (JRE).
Skopiuj sterowniki Oracle JDBC do folderu Pentaho\data-integration\lib. Podczas uruchamiania Pentaho DI z Java7 użyj wersji Java 7 sterowników JDBC, jak pokazano na poniższym rysunku:
Dodawanie wsparcia dla portfeli Oracle
Jeśli zamierzasz połączyć się z bezpieczną bazą danych Oracle, taką jak Autonomous Database w Oracle Cloud (jak w tym przykładzie), pamiętaj, aby również pobrać i skopiować pliki obsługi JDBC, w tym (dla JDK w wersji 8):
ojdbc8.jar oraclepki.jar osdt_cert.jar osdt_core.jar
WAŻNE:Pamiętaj, aby ponownie uruchomić integrację danych Pentaho po skopiowaniu nowego jar pliki do lib folder.
Instrukcje dotyczące konfigurowania nowego połączenia z Oracle z PDI znajdują się na następnej stronie.
Uruchamianie Pentaho DI i tworzenie transformacji danych wyjściowych tabeli
Uruchom Spoon i utwórz nową transformację dla danych wyjściowych tabeli
Pobierz właściwości danych wyjściowych tabeli, jak pokazano poniżej:
W przypadku połączenia kliknij przycisk Nowe…, aby utworzyć nowe połączenie.
Nadaj nowemu połączeniu z bazą danych nazwę, a następnie wybierz Oracle jako Typ połączenia. Wybierz JDBC (natywny) jako typ dostępu.
Wpisz nazwę hosta lub adres IP serwera, na którym aktualnie działa Oracle. Jeśli używasz Oracle na własnym komputerze lokalnym, użyj adresu IP hosta lokalnego 127.0.0.1. Ustaw numer portu, na którym działa nasłuchiwanie bazy danych Oracle. Domyślnie jest to port 1521.
Wpisz nazwę bazy danych zgodnie z nazwą usługi Oracle lub identyfikatorem SID. Jeśli twoja baza danych Oracle 12c jest skonfigurowana z podłączanymi bazami danych, użyj ukośnika, po którym następuje nazwa podłączanej bazy danych (pdb1 w poniższym przykładzie).
Podaj nazwę użytkownika i hasło konta Oracle dla połączenia. Jeśli pola Przestrzeń tabel dla danych i Przestrzeń tabel dla indeksu pozostaną puste, zostaną użyte domyślne obszary tabel dla schematu. Jeśli chcesz je zmienić, wpisz nazwy obszarów tabel zgodnie z monitami.
Po zakończeniu kliknij przycisk Testuj, aby przetestować połączenie.
Typowe komunikaty o błędach
Jeśli test się nie powiedzie, sprawdź komunikaty o błędach. Na przykład:
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
Sprawdź nazwę użytkownika i hasło
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
Sprawdź nazwę bazy danych (nazwę usługi Oracle, identyfikator SID lub nazwę bazy danych, którą można podłączyć)
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
Sprawdź nazwę hosta i/lub numer portu.
ORA-28000, Account Locked
Upewnij się, że konto Oracle jest odblokowane, a hasło jest aktualne. W niektórych przypadkach, jeśli hasło jest w „okresie prolongaty”, Pentaho może nadal interpretować to jako „zablokowane konto”. Administrator bazy danych może być zmuszony do ręcznego odblokowania konta (ALTER USER xyz ACCOUNT UNLOCK; ) lub zresetuj hasło.
Po pomyślnym zakończeniu testu kliknij przycisk OK, a baza danych Connection zostanie zapisana w transformacji Table Output. Upewnij się, że schemat docelowy jest zgodny z nazwą użytkownika i/lub zamierzonym schematem operacji wyprowadzania (lub wprowadzania) danych.