2011-10-11 4 views
1

XML 파일을 MYSQL DB로 구문 분석하고 싶습니다.Linux에서 MySQL을 XML로 구문 분석하는 가장 효율적인 방법은 무엇입니까?

LINUX 시스템 (우분투)에서 가장 효율적이고 가장 빠른 방법은 무엇이며 리소스를 가장 적게 사용합니까?

15 분마다 구문 분석해야하는 XML 파일이 약 1GB 있습니다. 각 XML은 약 60KB입니다.

쉘 또는 펄 사용에 대해 생각하고 있고 파서를 직접 만들거나 XML 도구를 사용하고 있습니다.

나는 어떤 제안이 있어도 열람 할 수 없습니다.

+4

xml 데이터의 본질이나 데이터베이스의 스키마에 대해서는 언급하지 않았습니다. 더 많은 정보를 제공하지 않으면 도움이 될만한 방법이 없습니다. –

답변

2

글쎄, 내가 지금까지 본 가장 빠른 XML (비 검증) 파서 VTD-XML입니다. 성능이 가장 중요한 모든 곳에서 사용할 수 있습니다. Core2 2.5 GHz에서 을 제공하기 위해 VTD-XML은 DOM 파서보다 5 배 ~ 12 배 뛰어나며 코어 당 지속 처리량이 150 ~ 250 MB/sec입니다.

그 속도로 1GB의 XML을 10 초 내에 구문 분석 할 수 있습니다. 구문 분석이 성공적이면 메모리 내 데이터 구조를 임의로 탐색하거나 XPath를 사용하여 데이터를 얻을 수 있습니다.

요구 사항 (1GB XML 입력)을 감안할 때, VTD-XML은 구문 분석 된 데이터에 액세스 할 수있는 메모리 내 데이터 구조를 구축해야하기 때문에 1.3 ~ 1.5GB의 시스템 RAM을 필요로한다는 점을 감안해야합니다. XML 텍스트 그 자체.

VTD-XML 라이브러리는 C#, Java, C++, C에서 사용할 수 있습니다. 일부 학습 곡선이 있기 때문에 익숙해 지는데 시간이 걸리지 만 장기적으로는 비용이 회수 될 수 있습니다.

사용 가능한 메모리가 충분하지 않으면 스트림 파서 (SAX)가 작업에 더 적합한 도구 여야합니다.

0

많은 데이터를 MySQL로 가져 오는 가장 빠른 방법은 LOAD DATA INFILE을 사용하여 파일의 데이터를 PK 순서로 키가없는 테이블로로드하는 것입니다. DB 성능이 제한 될 수 있다는 점을 감안할 때 LOAD DATA INFILE에 대해 XML을 CSV/파일로 변환 한 다음 DB로 한 번에 저촉하는 대가를 지불하는 것이 좋습니다.

. http://mysqldump.azundris.com/archives/94-LOAD-DATA-INFILE-and-mysqldump.html

관련 문제