Въведение
Инструментите за интеграция на данни Pentaho (DI) (известни също като Kettle) съдържат мощен асортимент от инструменти за филтриране и трансформиране на данни, които могат да се използват за извършване на процеси на извличане, трансформиране и зареждане. Pentaho DI Community Edition идва с колекция от драйвери за бази данни, които могат да имат достъп до много различни системи за бази данни като източник на данни (вход) или цел (изход). Въпреки това, изданието на общността може да не се доставя с драйвери за база данни на Oracle. Следните бележки предполагат, че Pentaho DI (чайник) е инсталиран в съответствие с тези бележки за инсталиране на Pentaho DI.
Инсталиране на Oracle JDBC драйвери
За да използвате източници на данни на Oracle с Pentaho DI, първо трябва да се уверите, че драйверите на Oracle JDBC са инсталирани. Ако не, вземете ги от Oracle и ги инсталирайте в папката lib за Pentaho DI.
Oracle JDBC драйверите се доставят с всяка инсталация на Oracle Server и могат да бъдат намерени в \jdbc папка от дома на Oracle. Ако нямате достъп до сървъра на Oracle, можете да изтеглите най-новите драйвери от уеб сайта на Oracle JDBC. Не забравяйте да изтеглите JDBC драйверите, които съответстват на версията на Java Runtime Environment (JRE), която използвате.
Копирайте драйверите на Oracle JDBC в папката Pentaho\data-integration\lib. Когато изпълнявате Pentaho DI с Java7, използвайте версиите на Java 7 на JDBC драйверите, както е показано на фигурата по-долу:
Добавяне на поддръжка за портфейли на Oracle
Ако възнамерявате да се свържете със защитена база данни на Oracle, като например автономна база данни в Oracle Cloud (както в този пример), не забравяйте да изтеглите и копирате файловете за поддръжка на JDBC, включително (за JDK версия 8):
ojdbc8.jar oraclepki.jar osdt_cert.jar osdt_core.jar
ВАЖНО:Не забравяйте да рестартирате Pentaho Data Integration след копиране на нов jar файлове в lib папка.
Инструкции за настройка на нова връзка с Oracle от PDI са дадени на следващата страница.
Изпълнение на Pentaho DI и създаване на изходна трансформация на таблица
Стартирайте Spoon и създайте нова трансформация за изход на таблица
Вземете свойствата на изхода на таблицата, както е показано по-долу:
За връзката щракнете върху бутона New..., за да създадете нова връзка.
Дайте име на новата връзка с базата данни и след това изберете Oracle като тип връзка. Изберете JDBC (Native) като тип достъп.
Попълнете името на хоста или IP адреса на сървъра, който в момента работи с Oracle. Ако използвате Oracle на собствения си локален компютър, използвайте IP адреса на локалния хост 127.0.0.1. Задайте номера на порта на мястото, където се изпълнява слушателят на базата данни на Oracle. По подразбиране това е порт 1521.
Попълнете името на базата данни според вашето име на услугата Oracle или SID. Ако вашата база данни Oracle 12c е конфигурирана с включаеми бази данни, използвайте наклонена черта, последвана от името на включващата се база данни (pdb1 в примера по-долу).
Предоставете потребителското име и паролата на акаунта на Oracle за връзката. Ако полетата Tablespace за данни и Tablespace for Index са оставени празни, ще бъдат използвани табличните пространства по подразбиране за схемата. Ако искате да ги промените, въведете имената на пространствата за таблици според подканите.
Когато приключите, щракнете върху бутона Тест, за да тествате връзката.
Чести съобщения за грешки
Ако тестът е неуспешен, проверете съобщенията за грешка. Например:
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
Проверете потребителското име и паролата
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
Проверете името на базата данни (Име на услугата на Oracle, SID или име на база данни, която може да се включи)
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
Проверете името на хоста и/или номера на порта.
ORA-28000, Account Locked
Уверете се, че акаунтът на Oracle е отключен и паролата е актуална. В някои случаи, ако паролата е в „гратисен период“, Pentaho все още може да интерпретира това като „заключен акаунт“. Вашият администратор на база данни може да се наложи или ръчно да отключи вашия акаунт (ALTER USER xyz ACCOUNT UNLOCK; ) или нулирайте паролата си.
След като тестът е успешен, щракнете върху бутона OK и връзката с базата данни ще бъде запазена в трансформацията за изход на таблица. Уверете се, че целевата схема съвпада с потребителското име и/или предвидената схема за операцията за извеждане (или въвеждане) на данни.