2011-02-14 1 views
0

데이터베이스에 .csv 파일의 엄청난 양의 데이터를 가져 오는 자바 프로젝트입니다. 나는 이것을 성취하는데 가장 좋은 방법이 무엇인지 이해하는데 관심이있다.Java 응용 프로그램에서 대량 데이터 가져 오기

  • 은 확실히 옵션 중 하나를 저장 프로 시저를 호출 자바 응용 프로그램을 사용하여 이다.
  • 두 번째 옵션은 이 이미 우리가 사용하고 있기 때문에 봄, 봄 - jdbc 쌍도 도울 수 있다고 생각합니다.
  • 현재 우리는 당신이 스펙트럼의 다른 쪽 끝에서 몇 가지 생각 좀 도와 주시겠습니까 이것은 응용 프로그램 수준에서 수행 얻을 수 (나는 가정이 뭔가하는 올바른 접근하지 않음)

봄 - 최대 절전 쌍을 사용하는 ?

답변

0

대용량 데이터를 사용하여 대량 작업을하는 동안 DB에 대한 기본 지원을 사용하는 것이 가장 좋습니다. Oracle 인 경우 SQL*Loader. Postgres의 경우에는 COPY 명령을 사용합니다.

것은 당신이 다음 아래 자바 특정 옵션을 찾고 있다면 나의 우선 순위

  1. JDBC입니다 : batch operations 지원을 사용하지만이 제한이 그 일괄 작업의 모든 실패 것이다 전체 흐름 단락

  2. 최대 절전 모드 : ORM은 이에 해당하지 않습니다. 그러나 StatelessSessionbatch configuration을 함께 사용하면 최적의 성능을 얻을 수 있습니다. MS SQL 서버의 경우

    을 (@Pangea에 의해 제안) 오라클 SQLLoader의 경우

    : 내 의견으로는, 이러한 경우 (대량 가져 오기)에서

+0

현재 우리는 postgres 데이터베이스를 사용하고 있습니다. Postgres 데이터베이스에 SqlLoader와 같은 도구가 있습니까? – Antony

0

는 데이터베이스 기능을 사용하여 해결해야 BCP (대량 복사)

이 자바 기반의 접근 방식 @ 찾는 경우가 그때 당신은 하위 배치에 배치 삽입을 분해하고 더 나은 페이지에 대해 동시에 실행할 수 에에 또한 @Pangea 에코 erf.

예 : 삽입 할 10k 레코드가있는 경우 각각 200 레코드의 배치를 작성하고 5 배치를 동시에 삽입 할 수 있습니다.

이 경우 각 하위 배치를 추적하는 코드가 필요합니다.

희망이 도움이됩니다.