【オリジナル】Kettleを使った心得と経験

1995 ワード

kettleでetlを作るのもしばらくの間、いろいろな問題にぶつかって、まとめました.
【バージョンに関する質問】
kettleでよく使用されるバージョンは4.1と4.4で、4.1のバージョンでは:
1.このバージョンの互換性は少し悪く、一部のマシンで実行すると起動に失敗したり、起動が完了した後にリポジトリ・タイムズ・エラーを追加して直接終了したりします.
2.oracleのようなetlのsqlについては、/*------*/の注釈方式はサポートされず、誤ったsqlと認識され、--の注釈方式のみがサポートされます.4.4この問題は存在しない.
3.運転が不安定で、複雑なetlプロセスを実行すると異常な終了が発生しやすい.
【etlプロセスに関する質問】
4.1または4.4にかかわらず、oracleの下に次のような奇妙なエラーメッセージが表示されることがあります.
 ORA-01013: user requested cancel of current operation

これはoracleが爆発したようで、sql自体とは関係ないようで、sqlをデータベースに直接走っても問題なく、理解できず、oracleパラメータの調整、jdbcドライバの置き換えなどは解決されていません.その後kettleの公式フォーラムでヒントを見つけました
http://forums.pentaho.com/showthread.php?76733-Strange-SQL-error-kills-DB-input-step
Kettle will stop any SQL processing whenever there is an error, in any step of the transformation. 

Maybe it helps to increase the logging level and look for other steps that might be throwing an error. If preview works fine it is likely that the error is caused by a step further down in the transformation. Maybe the cause is a specific row, like maybe a row with null values where they are not expected. 

 
このようなエラーは一般的にetlsqlによって発生しますが、実行するログレベルを高くすると具体的な原因がわかります.したがって、ログ・レベルを非常に詳細に調整すると、具体的にどのようなエラーなのか、最後にetlの問題なのか、例えば入力テーブルAのデータがBテーブルに出力された結果、Bテーブルに対応する列が見つからずエラーが報告され、ログ情報が詳細でない場合、ORA-01013のようなエラーが提示されることがあります.
【最適化について】
kettleはjavaで実装ため、etlプロセスが長い場合があるため、Spoonでjvmメモリサイズを調整する必要がある場合がある.batではXmxとXmsおよびPermSizeのサイズを増やします.