Ferramentas corporativas como o IBM InfoSphere fazem exatamente o que você fez com a conexão JDBC. Eu toquei em seu estúdio IBM DataStage por um tempo, eu vi isso.
Meu conselho para você é projetar o esquema dos grandes dados de origem para que, quando você fizer a transformação de dados intermediários, anote o progresso (usando alguma coluna), para que a grande tarefa possa ser dividida em tarefas menores valores da coluna de progresso. Digamos que a busca busque 20000 linhas, marcando o offset para as buscas 2, etc ...
Eu faria o máximo possível em java por causa da infinidade de maneiras em que você pode registrar, depurar quando algo dá errado. Se você confiar demais no banco de dados, não acho que a depuração e a leitura de registros sejam tão confortáveis.