2013-03-15 2 views
0

60 밀리언 레코드가 넘는 하나의 큰 XML 파일을 만들어야합니다. 이 작업은 정기적으로 반복되므로이 작업을 빨리 수행해야합니다.수백만 건의 레코드를위한 XML 생성

나는 두 개의 서로 다른 테이블의 데이터베이스에서 두 곳

  1. 데이터를 가지고있다.
  2. 파일 시스템에서 두 개의 파이프로 구분 된 파일.

현재 StaX 파서를 사용하여 JAVA에서 XML 파일을 만들려고합니다.

여기 데이터/텍스트 파일을 사용하여 데이터를 읽고 XML 파일을 만들어야하는지 여부를 알아야합니다.

어느 것이 더 빠른 옵션일까요?
또한 대용량 데이터를 XML에 최적화하여 생성/변환하는 특정 API가 있습니까?

리눅스 명령을 사용하여 파일 처리를 할 수있는 것은 더 빠르다. 댓글

  • UPDATE 당신이 DB 쿼리 CSV 대 두 개의 별도의 파일에서 XML 요소 정보를 얻을 수 있습니다 얼마나 빨리 덤프? 데이터베이스에서 사용 가능한 모든 것이 PIPE 분리 파일로 제공됩니다. 그리고 XML 요소 정보를 빨리 만들거나 만들 수있는 방법은 여기에있는 질문의 의도와 정확히 일치합니다. 이것은 정확히 전체 작동 속도에 영향을 미칠 것입니다.

  • 매핑 복잡성 : 매핑은 1 대 다수입니다. 첫 번째 파일의 1 개 레코드는 두 번째 텍스트 파일/테이블의 약 8000 개 레코드에 매핑됩니다.

큰 따옴표 붙은 출력 버퍼를 사용하십시오.

알아두기. 큰 덩어리로 데이터베이스/파일에서 데이터를 읽고 한 번에 플러시하여 전체 덩어리를 처리합니다. 그러나 다시 데이터베이스 읽기 또는 파일 읽기로해야합니까?

업데이트 XML 형식으로 자동 변환 된 MySQL 데이터베이스의 도구를 사용하여 내보낼 수 있습니까?

+1

DB는 의미있는 쿼리 및 보고서를 처리하는 데 유용합니다. 쿼리 출력을 CSV로 덤프하고 XML 출력을 생성합니다. 그래서 DB는 XML이 생성되는 동안 홀로 남아 있습니다. 시간이 많이 걸릴 수도 있습니다. 출력 XML 파일에 저장하기 전에 큰 출력 버퍼를 사용하십시오. – SparKot

+0

아,'pipe separated fields' 옵션을 벤치 마크해야합니다. 파일 읽기에는 큰 입력 버퍼를 사용하십시오. 얼마나 빨리 당신이 두 가지 별도의 파일 대 DB 쿼리 CSV 덤프에서 XML 요소 정보를 얻을 수 있습니까? 이 두 파일 간의 매핑이 얼마나 복잡한가요? 1-1 이니? 이 파일들, 즉 '기본 키'로 정렬 된 레코드입니까? – SparKot

+0

@SparKot -> 출력 XML 파일로 저장하기 전에 큰 출력 버퍼를 사용한다는 것은 무엇을 의미합니까? ? –

답변

0

perlXML::Simple/XML::Writer perl 모듈을 사용할 수 있습니다. Perl은 데이터베이스와 텍스트 파일에서 데이터를 읽을 수도 있습니다.

+0

-> DB에서 한 행씩 데이터를 읽고 XML 파일을 만드는 것보다 효율적입니까? –

+0

더 효율적이기는하지만 다른 점도 분명하지 않습니다. – EJP