はじめに
Pentaho Data Integration(DI)ツール(Kettleとも呼ばれます)には、抽出、変換、および読み込みプロセスの実行に使用できる強力なデータフィルタリングおよび変換ツールが含まれています。 Pentaho DI Community Editionには、データソース(入力)またはターゲット(出力)のいずれかとして多くの異なるデータベースシステムにアクセスできるデータベースドライバーのコレクションが付属しています。ただし、Community Editionには、Oracleデータベース用のドライバが付属していない場合があります。以下の注記は、Pentaho DI(ケトル)がこれらのPentahoDIインストールノートに従ってインストールされていることを前提としています。
OracleJDBCDriversのインストール
Pentaho DIでOracleデータソースを使用するには、最初にOracleJDBCドライバーがインストールされていることを確認する必要があります。そうでない場合は、Oracleから入手して、PentahoDIのlibフォルダーにインストールします。
Oracle JDBCドライバーは、すべてのOracle Serverインストールに付属しており、 \ jdbcにあります。 Oracleホームのフォルダ。 Oracleサーバーにアクセスできない場合は、OracleのJDBCWebサイトから最新のドライバをダウンロードできます。実行しているJavaランタイム環境(JRE)のバージョンに一致するJDBCドライバをダウンロードしてください。
OracleJDBCDriversをPentaho\data-integration\libフォルダーにコピーします。 Pentaho DIをJava7で実行する場合は、次の図に示すように、Java7バージョンのJDBCドライバーを使用してください。
Oracleウォレットのサポートの追加
Oracle CloudのAutonomousDatabaseなどの安全なOracleデータベースに接続する場合(この例のように)、(JDKバージョン8の場合)を含むJDBCサポートファイルもダウンロードしてコピーしてください。
ojdbc8.jar oraclepki.jar osdt_cert.jar osdt_core.jar
重要:新しい jar をコピーした後は、必ずPentahoDataIntegrationを再起動してください。 libへのファイル フォルダ。
PDIからOracleへの新しい接続を設定する手順は、次のページに記載されています。
PentahoDIの実行とテーブル出力トランスフォーメーションの作成
Spoonを実行し、テーブル出力の新しい変換を作成します
以下に示すように、テーブル出力のプロパティを取得します。
[接続]で、[新規...]ボタンをクリックして新しい接続を作成します。
新しいデータベース接続に名前を付けてから、接続タイプとしてOracleを選択します。アクセスタイプとしてJDBC(ネイティブ)を選択します。
現在Oracleを実行しているサーバーのホスト名またはIPアドレスを入力します。自分のローカルコンピュータでOracleを実行している場合は、ローカルホストのIPアドレス127.0.0.1を使用します。ポート番号をOracleデータベースリスナーが実行されている場所に設定します。デフォルトでは、これはポート1521です。
Oracleサービス名またはSIDのいずれかに従ってデータベース名を入力します。 Oracle 12cデータベースがプラガブル・データベースで構成されている場合は、スラッシュを使用し、その後にプラガブル・データベースの名前(以下の例ではpdb1)を続けます。
接続用のOracleアカウントのユーザー名とパスワードを指定します。 「データの表スペース」および「索引の表スペース」フィールドをブランクのままにすると、スキーマのデフォルトの表スペースが使用されます。これらを変更する場合は、プロンプトに従って表領域の名前を入力します。
完了したら、[テスト]ボタンをクリックして接続をテストします。
一般的なエラーメッセージ
テストが失敗した場合は、エラーメッセージを確認してください。例:
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]ボタンをクリックすると、データベース接続がテーブル出力トランスフォーメーションに保存されます。ターゲットスキーマが、データ出力(または入力)操作のユーザー名や目的のスキーマと一致していることを確認してください。