다음 목적을 위해 어떤 XML 구문 분석기를 사용 하시길 권장하십니까?XML : 큰 데이터 처리
XML 파일 (공백 포함)은 약 800MB입니다. 주로 3 가지 유형의 태그를 포함합니다 (n, w 및 r이라고 부름). 그들은 id라는 속성을 가지고 있는데, 가능한 한 빨리 검색해야합니다.
필요하지 않은 속성을 제거하면 30 % 정도 절약 할 수 있습니다.
두 번째 부분 최적화를위한 첫 번째 부분 : 쉽게 특정 태그에 사용되지 않는 속성을 제거 에 대한 좋은 도구 (명령 행 리눅스와 윈도우 가능한 경우)이 있습니까? XSLT를 사용할 수 있다는 것을 알고 있습니다. 아니면 쉬운 대안이 있습니까? 또한, 나중에 구문 분석을 위해 속도를 얻기 위해 각 태그마다 하나씩 3 개의 파일로 나눌 수 있습니다. 속도는 데이터의 준비에 너무 중요하지 않습니다. 물론 시간보다 오히려 몇 분이 걸렸을 때 속도가 좋을 것입니다.
두 번째 부분 : 일단 데이터를 준비했으면 짧아 졌는지, 내가 언급 한 ID 속성을 검색 할 수 있어야합니다. 이는 시간이 중요합니다.
wc -l
을 사용하는 추정치에는 3M 개의 N 태그와 418KB의 W 태그가 있다는 것을 알려줍니다. 후자의 경우 각각 약 20 개의 하위 태그를 포함 할 수 있습니다. W- 꼬리표는 또한 약간을 포함한다, 그러나 멀리 벗겨질 것입니다.
"해야 할 일"은 특정 ID 속성이 포함 된 태그 사이를 탐색하는 것입니다. 일부 태그는 다른 ID에 대한 참조를 가지므로 나무 나 어쩌면 그래프를 제공합니다. 원래 데이터는 (언급 한 바와 같이) 크지 만, 특정 요소를 선택하기 만하면되므로 결과 집합이 너무 커야합니다.
이제 이런 종류의 처리에 XML 구문 분석 라이브러리를 사용해야합니까? Java 6을 첫 번째 인스턴스에서 사용하고 BlackBerry에 이식하는 것을 염두에 두었습니다.
id를 인덱싱하고 파일에서 오프셋을 가리키는 플랫 파일을 만드는 것이 유용 할 수 있습니까? 상단 부분에서 언급 한 최적화를 수행 할 필요가 있습니까? 아니면 파서가 원본 데이터와 같이 빠른 것으로 알려져 있습니까?
작은 노트 : 테스트를 위해 파일의 마지막 줄에있는 id를 grep을 사용하여 id를 검색했습니다. 이것은 Core 2 Duo에서 1 분 정도 걸렸습니다.
파일 크기가 더 커지면 어떻게됩니까? 5GB를 가정 해 봅시다.
통지 또는 권장 사항에 감사드립니다. 미리 감사드립니다.
vtd-xml에는 최대 256GB 크기의 xml을 처리하는 확장 버전이 있습니다. –
@Michael B.예, 좋은 팁은 BlackBerry – Atmocreations