변환해야하며 시스템의 다른 부분에 XML로 제공해야하는 레코드가 포함 된 레거시 이진 파일 형식이 있습니다. 데이터 크기에 대한 이해를 돕기 위해 단일 파일은 50,000 개 이상의 레코드가있는 최대 50MB까지 가능합니다. 필자가 작업해야하는 XML 변환은이 특정 파일을 거의 20 기가 바이트까지 불어 넣습니다.큰 XML 파일의 효율적인 저장 및 액세스
gzip을 사용하여 파일을 압축하면 (언젠가는) 파일이 ~ 150Mb가되므로 중복성이 많습니다.
하지만 우리가 XML로 제공해야하는 것은 큰 파일의 일부인 개별 레코드입니다. 이 기록들 각각은 아주 작습니다. 기록에 무작위로 액세스해야합니다. 레코드 자체에는 다양한 필드가 있으므로 매우 큰 테이블이 없어도 열에 대한 요소 매핑이 없습니다.
시스템의 다른 부분은 postgresql 데이터베이스를 사용하므로 각 개별 XML 노드를 데이터베이스에 행으로 저장하는 것이 좋습니다. 그러나 우리는 비효율적 인 스토리지가 현명한 방법 일까 궁금해하고 있습니까?
<xml>
<record><complex_other_xml_nodes>...<record>
<record>...<record>
<record>...<record>
<record>...<record>
<record>...<record>
</xml>
아니면 XML 데이터베이스 (또는 다른 것)를 평가해야합니까? 아, 우리는 변환 후 XML을 업데이트하거나 변경할 필요가 없습니다. 이러한 레거시 레코드는 정적입니다.
당신은 vtd-xml을 보았습니까? –