Introdução
As ferramentas Pentaho Data Integration (DI) (também conhecidas como Kettle) contêm uma poderosa variedade de ferramentas de filtragem e transformação de dados que podem ser usadas para realizar processos de extração, transformação e carregamento. O Pentaho DI Community Edition vem com uma coleção de drivers de banco de dados que podem acessar muitos sistemas de banco de dados diferentes como fonte de dados (entrada) ou destino (saída). No entanto, a edição da comunidade pode não ser fornecida com drivers para o banco de dados Oracle. As notas a seguir assumem que o Pentaho DI (Kettle) foi instalado de acordo com estas Notas de Instalação do Pentaho DI.
Instalando drivers JDBC da Oracle
Para usar fontes de dados Oracle com Pentaho DI, você deve primeiro certificar-se de que os drivers Oracle JDBC estejam instalados. Caso contrário, obtenha-os da Oracle e instale-os na pasta lib para Pentaho DI.
Os drivers Oracle JDBC são fornecidos com todas as instalações do Oracle Server e podem ser encontrados em \jdbc pasta da home do Oracle. Se você não tiver acesso ao servidor Oracle, poderá baixar os drivers mais recentes do site JDBC da Oracle. Certifique-se de fazer download dos drivers JDBC que correspondem à versão do Java Runtime Environment (JRE) que você está executando.
Copie os Drivers Oracle JDBC para a pasta Pentaho\data-integration\lib. Ao executar o Pentaho DI com Java7, use as versões Java 7 dos drivers JDBC conforme mostrado na figura abaixo:
Adicionando suporte para carteiras Oracle
Se você pretende se conectar a um banco de dados Oracle seguro, como um Autonomous Database no Oracle Cloud (como neste exemplo), certifique-se de também baixar e copiar os arquivos de suporte JDBC, incluindo (para JDK versão 8):
ojdbc8.jar oraclepki.jar osdt_cert.jar osdt_core.jar
IMPORTANTE:Certifique-se de reiniciar o Pentaho Data Integration após copiar o novo jar arquivos para a lib pasta.
As instruções para configurar uma nova conexão com o Oracle a partir do PDI são fornecidas na próxima página.
Executando o Pentaho DI e criando uma transformação de saída de tabela
Execute Spoon e crie uma nova transformação para uma saída de tabela
Obtenha as Propriedades da saída da tabela conforme mostrado abaixo:
Para a Conexão, clique no botão Novo… para criar uma nova conexão.
Dê um nome à sua nova conexão de banco de dados e selecione Oracle como o Tipo de Conexão. Escolha JDBC (Nativo) como o tipo de acesso.
Preencha o nome do host ou o endereço IP do servidor que atualmente executa o Oracle. Se você estiver executando o Oracle em seu próprio computador local, use o endereço IP do host local 127.0.0.1. Configure o número da porta para onde o listener do banco de dados Oracle está sendo executado. Por padrão, esta é a porta 1521.
Preencha o Nome do Banco de Dados de acordo com seu Nome de Serviço Oracle ou SID. Se seu banco de dados Oracle 12c estiver configurado com bancos de dados conectáveis, use uma barra seguida do nome do banco de dados conectável (pdb1 no exemplo abaixo).
Forneça o nome de usuário e a senha da conta Oracle para a conexão. Se os campos Tablespace for Data e Tablespace for Index forem deixados em branco, os tablespaces padrão do esquema serão usados. Se desejar alterá-los, digite os nomes dos tablespaces de acordo com os prompts.
Quando terminar, clique no botão Testar para testar a conexão.
Mensagens de erro comuns
Se o teste falhar, verifique as mensagens de erro. Por exemplo:
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
Verifique o nome de usuário e a senha
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
Verifique o nome do banco de dados (nome do serviço Oracle, SID ou nome do banco de dados conectável)
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
Verifique o nome do host e/ou o número da porta.
ORA-28000, Account Locked
Certifique-se de que a conta Oracle esteja desbloqueada e a senha seja atual. Em alguns casos, se a senha estiver em “período de carência”, o Pentaho ainda pode interpretar isso como “conta bloqueada”. Seu administrador de banco de dados pode ter que desbloquear manualmente sua conta (ALTER USER xyz ACCOUNT UNLOCK; ) ou redefina sua senha.
Uma vez que o teste for bem sucedido, clique no botão OK e a conexão do banco de dados será salva na transformação Table Output. Certifique-se de que o Esquema de Destino corresponda ao nome de usuário e/ou esquema pretendido para a operação de saída (ou entrada) de dados.