2017-09-05 4 views
1

CSV 파일을 생성하는 외부 응용 프로그램이 있습니다. 이 파일을 자동으로 SQL에 쓰기를 원하지만 증분으로 쓰고 싶습니다.CSV 파일을 SQL 테이블로 증분

대량 삽입물을 조사하고 있었지만 이것이 점진적이라고 생각하지 않습니다. CSV 파일은 너무 커질 수 있으므로 점진적으로 갈 수 있습니다.

감사합니다.

+0

응용 프로그램에서 CSV 파일의 행을 기록하는 코드를 레코드를 삽입하는 코드로 바꿉니다. –

+0

대량 삽입물이 증분이 아니라고 생각하는 이유는 무엇입니까? 단일 삽입 레코드는 일반적으로 이전 삽입 (제약 조건 등을 무시)에 의존하지 않습니다. –

+0

@DanBracuk - 의견을 주셔서 감사합니다. 응용 프로그램은 외부 응용 프로그램입니다. 제어 할 권한이 없습니다. 그래서 나는 SQL에 쓸 수 없을 것이다. – Abe

답변

0

이 작업을 처리하는 일반적인 방법은 전체 CSV를 준비 테이블에 대량 삽입 한 다음 준비 테이블의 데이터를 저장 프로 시저를 사용하여 최종 대상 테이블로 증분 병합하는 것입니다.

여전히 CSV 파일이 너무 크다고 염려되는 경우 다음 단계는 CSV를 읽는 프로그램을 작성하고 가져 오려는 새/변경된 데이터 만 포함 된 잘린 파일을 만듭니다. 그런 다음 원래 CSV 대신 작은 CSV를 대량 삽입하십시오.

0
  • 테이블에로드하려는 모든 csv 파일 이름의 텍스트 또는 csv 파일을 만듭니다. 반복하지 않으면 파일 경로를 포함 할 수 있습니다. 쉘 스크립팅을 사용하여이 작업을 수행 할 수 있습니다.

  • 그런 다음 삽입해야하는 모든 csv 파일 이름을로드하는 임시 테이블을 만듭니다. 절차 사용.

  • 위의 임시 테이블을 사용하여 행 수만큼 루프하고 대상 테이블에로드합니다 (루프에서 자르지 않음). truncate가 필요한 경우 루프 전에 수행하십시오. 당신은

우리는 또한 같은 문제를 가지고 우리는이 방법을 사용 된 모든 변환이 필요한 경우 (변환에 사용 절차를) 준비에 데이터를로드 할 수 있습니다. 최근에 우리는 파이썬을 사용하여 모든 작업을 수행하고 스테이징 테이블로 데이터를로드했습니다. 변환 후 최종적으로 목표 테이블에로드됩니다.

관련 문제