Инструмент для извлечения структур данных из нечистых данных

У меня есть неструктурированные нечистые данные в поле базы данных. Существуют общие структуры, которые согласуются в данных

а именно:

field:

name:value 

fieldset: 

nombre <FieldSet>
field,
  .
  .
  .
field(n)

table

nombre <table>
head(1)... head(n)
val(1)...  val(n)
      .
      .
      .

Мне было интересно, есть ли инструмент (предпочтительно на Java), который мог бы извлекать, изучать / понимать эти структуры данных, анализировать файл и преобразовывать в карту или объект, на котором я мог бы выполнять проверки?

Я знаю об Antlr, но понимаю, что это больше связано с построением дерева, а не с независимыми битами данных (я ошибаюсь по этому поводу?)

У кого-нибудь есть предложения по проблеме в целом?

3 ответа

Решение

Я рекомендую Talend. Это очень универсальный инструмент интеграции данных с открытым исходным кодом. Он основан на Java. Вы можете использовать встроенные инструменты / компоненты для извлечения данных из неструктурированных источников данных. Вы также можете написать сложный пользовательский код Java, чтобы делать то, что вы хотите.

Я использовал Talend в нескольких научных доказательствах моих концептуальных проектов. Это сработало для меня. Хорошая часть, это бесплатно!

В итоге мы использовали для этого antlr, нам потребовалось создать несколько лексеров, где один лексер манипулировал бы вводом для следующего лексера.

Еще один проект - колодки - написал на С

Вы должны использовать "bnflite" https://github.com/r35382/bnflite Используя эту библиотеку шаблонов, вам нужно разработать BNF-подобную грамматику для вашего текста с помощью классов и перегруженных операторов непосредственно в коде C++. Преимущество заключается в том, что такая грамматика легко подстраивается под ваш источник

Другие вопросы по тегам