Инструмент для извлечения структур данных из нечистых данных
У меня есть неструктурированные нечистые данные в поле базы данных. Существуют общие структуры, которые согласуются в данных
а именно:
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++. Преимущество заключается в том, что такая грамматика легко подстраивается под ваш источник