파일에서 많은 양의 데이터를 데이터베이스 테이블로 매일로드해야합니다. 데이터는 ERP 시스템 외부에 있으며 5,000,000 개의 레코드가 있으며 최대 500MB의 csv 파일로 전달됩니다. 이 작업과 변환, 데이터 확인 및 다른 시스템으로 가져 오기를 담당하는 통합 서비스 작업이 이미 있습니다. 단일 ID 열이 없다는 것을 잊었습니다. 그렇지 않으면 쉬울 것입니다. (3 ~ 7 개의 id 열) ERP 시스템은 마지막 실행 이후 변경된 데이터 만 제공 할 수도 없습니다.db 테이블과 함께 csv 파일 병합
문제는 CSV 파일의 병합을 데이터 테이블로 개선하는 것입니다. 테이블은 이전 실행의 전체 데이터를 항상 유지해야합니다.
나쁜 성능을 통해이 가져 오기를 갱신해야합니다. 다음과 같은 솔루션은 검증되었습니다
- TSQL-병합 : 정말 나쁜 성능, 수입은
- 사용자 지정 DTS 작업을 너무 오래해야합니다 나는 새 업데이트 또는 삭제되는 기록을 알 필요가있다. db 테이블과 csv를로드하는 것만으로 OutOfMemoryException이 던졌습니다.
- 통합 서비스 외부의 파일을 이전 파일과 비교하고 델타 만 가져옵니다. 그것은 좋은 해결책이지만 실제로는 파일이 이전로드와 다르기 때문에 많은 오류가 있습니다.
이제 문제는 누구나 그러한 요구 사항을 경험 한 것입니까? 아무도이 문제를 해결할 좋은 제안을 가지고 있습니까?
감사합니다.
MH
당신은 CSV 파일의 파일 형식에 명확한 패턴이 없다는 것을 의미합니다. 당신은 항상 다른 열을 얻는다는 것을 의미합니다. 확신 할 수는 없지만 몇 가지 이유로 OutOfMemoryException을 얻을 수 있습니다. 그냥 Google과 체크. 얼마나 많은 테이블 이 과정에서 사용하고 있습니까? – KumarHarsh
교체 할 테이블 레코드를 삭제할 수 있습니까? datetime 열을 사용하여 테이블 레코드를 삭제 한 다음 모두 가져 오기 만 할 수 있습니까? –
@KumarHarsh :이 문제는 OutOfMemoryException이 아니며 두 데이터 세트의 레코드로 인해 발생합니다. – MH2106