문제점을 발견했으며이를 구현하는 데 가장 적합한 기술이 무엇인지 확실하지 않습니다. 당신들이 당신의 경험을 토대로 나에게 제안 할 수 있다면 의무가있을 것입니다. 10-15 개의 CSV 파일에서 데이터를로드하고 싶습니다. 각 파일은 상당히 큰 5-10GB입니다. 로드 데이터는 CSV 파일을 XML로 변환 한 다음이 XML을 사용하여 Oracle에서 6-7 개의 스테이징 테이블을 채우는 것을 의미합니다. XML의 요소와 결국 테이블의 행이 여러 CSV 파일에서 가져 오도록 데이터를 채워야합니다. 예를 들어 요소 A는 하위 요소가 CSV 파일 1, 파일 2 및 파일 3 등에서 오는 데이터를 가지게됩니다.대용량 CSV 파일을 Oracle 테이블에로드하기위한 기술 선택
Linux의 Jboss의 Top of Apache Camel에 프레임 워크가 있습니다. Oracle 10G는 데이터베이스 서버입니다. 내가 고려하고 옵션,
- Smooks - 문제가 Smooks 한 번에 하나의 CSV를 직렬화하고 난을 실행하기 때문에 내가 읽어 다른 CSV 파일 참깨 반 구운 자바 콩에 개최 여유하지 못할 것입니다 그러나 XML로 작성된 디스크에 완전히 채워지기 전에 작성하고 보유해야하는 빈의 수를 감안할 때 메모리가 부족할 위험이 있습니다.
- SQLLoader - XML 작성을 모두 건너 뛸 수 있으며 SQLLoader를 사용하여 CSV를 준비 테이블에 직접로드 할 수 있습니다. 그러나 나는 내가 할 수 있는지 잘 모르겠다. 첫 번째 파일 다음에 레코드를 업데이트하는 동일한 테이블에 SQL Loader의 여러 CSV 파일을로드합니다. 비. 스테이징 테이블을로드하는 동안 일부 변환 규칙을 적용하십시오.
- CSV를 XML로 변환하는 Python 스크립트.
- SQLLoader는 CSV 데이터에 해당하는 다른 스테이징 테이블 집합을로드 한 다음 저장 프로 시저를 작성하여이 새로운 스테이징 테이블 집합에서 실제 스테이징 테이블을로드합니다 (필자가 피할 경로 필요한 기존 프레임 워크).
미리 감사드립니다. 누군가가 올바른 방향으로 나를 가리킬 수 있거나 자신의 개인적인 경험을 통찰 해 주면 정보에 입각 한 결정을 내리는 데 도움이 될 것입니다. -v-
PS
관련하여, 상기 CSV 파일은 40 열 각각 매우 간단합니다. 객체의 깊이 또는 파일 간의 관계는 2 ~ 3 정도입니다.