Как разделить XML на некоторые заданные c начальный тег и конечный тег в Nifi? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть один XML файл размером 60-80 ГБ. Поскольку размер файла огромен для обработки за один go, что, в свою очередь, займет много времени, я думаю обработать этот файл порциями и распределенным способом. Логика разделения c из xml определяется ниже. Обратите внимание, что я буду обрабатывать этот файл из файла потока NiFi.

Оригинал XML.

<Tag1>
   <Tag2>
     <PullThisTag id=1>
         <Attrib1>slhfhdsf</Attrib1>
     </PullThisTag>
     <PullThisTag id=2>
         <Attrib1>slhfhdsf</Attrib1>
     </PullThisTag>
     <PullThisTag id=3>
         <Attrib1>slhfhdsf</Attrib1>
     </PullThisTag>
      ..
      ..
      ..
      1000s of similar pull tags
    </Tag2>
</Tag1>

Теперь я хочу извлечь только шаблон открывающего тега, например

Итак, файл1 содержит:

<PullThisTag id=1>
    <Attrib1>slhfhdsf</Attrib1>
</PullThisTag>

Файл 2 содержит:

<PullThisTag id=2>
    <Attrib1>slhfhdsf</Attrib1>
</PullThisTag>

И файл 3 содержит:

<PullThisTag id=3>
    <Attrib1>slhfhdsf</Attrib1>
</PullThisTag>

И таких тегов насчитывается 1000 с. и должен быть разбит только на n файлов, где 2 <= n <= 5 </p>

...