2011-12-19 6 views
1

Java를 사용하여 speadsheet의 데이터를 데이터베이스로 가져 오려고합니다. 이 작업을 수행 할 수있는 방법은 두 가지가 있습니다. 1) speardsheets에서 데이터를 읽고 추출한 다음 ArrayLists, Vectors 또는 다른 객체의 맵과 같은 데이터 구조로 구성하여 중복 항목 등을 제거한 다음 작성할 수 있습니다. 데이터 구조는 데이터베이스에 저장됩니다. 2) 셀을 읽고 추출 할 때 데이터를 추출하여 데이터베이스에 직접 넣습니다. 첫 번째 방법은 아마도 더 좋을 것이라고 생각하지만 두 번째 방법은 더 빠를 것이라고 생각하십니까? 내가 생각해야 할 다른 고려 사항들?스프레드 시트 데이터를 가져 오는 것이 더 좋은 방법은 무엇입니까?

감사합니다.

+0

이 지역 사회에서 미래의 답변을 장려하는 답변을 받아 주시기 바랍니다 언급하는 작업의 종류에 대한 ETL 툴 (추출, 변환 및로드)를 사용하여 고려할 수 있습니다. 귀하는 6 가지 질문을했지만 그 중 하나에 대한 대답을 수락하지 않았습니다. 대답 옆에있는 눈금을 클릭하여 답을 수락합니다. – CoolBeans

답변

3

executeBatch()은 접근 # 1과 유사합니다. 따라서 기본적으로 스프레드 시트에서 배치 크기 (즉, 1000 레코드)의 데이터를 읽은 다음 한 번에 DB 배치에 대한 트랜잭션 커밋을 수행합니다. 그 후 다음 배치로 이동하는 등등. 이 방법을 사용하면 데이터베이스를 효율적으로 활용하고 네트워크 트립을 줄일 수 있으며 메모리 부족으로 이어질 수있는 많은 양의 데이터를 메모리에 저장하지 않아도됩니다. 또한 동일한 연결 W 준비된 명령문 오브젝트를 재사용해야합니다.

데이터 정리 프로세스와 관련하여 테이블과 같은 영구 저장소에 저장하기 전에 데이터를 확실히 소독해야합니다. 앞으로 보고서를 생성하거나 다른 응용 프로그램의 데이터를 사용해야 할 수도 있으므로 깨끗한 & 테이블을 사용하면 장기적으로 도움이됩니다. 배치 응용 프로그램의 경우 은 일반적으로입니다. 성능 요구 사항은 트랜잭션 시스템만큼 높지 않습니다.

엑셀 문서를 읽으려면 apache poi과 같은 도우미 라이브러리를 활용해야합니다. 데이터 구조에 관해서는 데이터에 따라 다르지만 일반적으로 여기서는 ArrayList로 충분합니다.

또 다른 요점은 대부분의 ETL 도구가 이러한 종류의 데이터로드 작업을 즉시 제공한다는 것입니다. 상황에 따라 허용되는 경우 데이터를로드하려면 Kettle과 같은 ETL 도구를 살펴 보는 것이 좋습니다. 시간을 절약하고 새로운 도구를 배울 수 있습니다.

희망이 도움이됩니다.

2

당신은 당신이

관련 문제