О живых данных

В последние несколько месяцев от меня было куда меньше постов чем обычно по довольно простой причины — прямо сейчас я занимаюсь проектом довольно непростым понятийно и технически. Планировал я его несколько лет и только в этом году удалось приступить к реализации.

Проект, разумеется, связан с большими объёмами информации, её обработкой, классификацией и последующим представлением. Особенность этого в том что работа идёт с «живыми данными», а то есть источников информации много, информация разноформатна, предоставляется в разном качестве, содержит ошибки в структуре и в значениях, обладает разными ограничениями и прочими особенности нетепличных данных.

В то же время это «живые данные» имеют массу специфики, при их сборе, подготовке, обработке и так далее. Приведу ряд соображений и размышлений для примера:

1. Для простых данных в виде плоских таблиц можно использовать различные SQL-базы с внешней обвязкой метаданными.  Но, случаи когда используются только простые таблицы редки, чаще всего данные обладают иерархией и вложенностью. Эту иерархию и вложенность можно привести к SQL сильно увеличив число таблиц, или же использовать NoSQL подход брать за основу CouchDb, MongoDb или их аналоги или семантические triple-store.

2. До сих пор очень мало практических инструментов по работе с NoSQL данными. Практически нет ETL инструментов, BI движков, ORM библиотек и прочего разного. Во многом от того что сама концепция NoSQL только сейчас приобретает признаки тренда и нет единых стандартов по доступа к такого рода данным.

3. На самом деле обработка большого объёма разноформатной информации это ещё и до сих пор не решённая исследовательская задача. Большинство же практических систем, например, поисковых, либо нормализуют источники информации и получаемые данные, либо резко ограничивают их число и связывают информацию в этих источниках вручную. Например, поисковики вроде Google или Yahoo нормализуют весь веб к веб-страницам, а в WolfRam Alpha используется большое число массивов данных вручную нормализованных, в основном, по формам выдачи результатов. Задачу же автоматической или автоматизированной интеграции тысяч и десятков тысяч источников информации решить было бы очень интересно, но лично я понимаю всю её объективную сложность.

4. Онтологии — это правильно, хорошо и идеалистично. К живым данным они имеют весьма слабое отношение и тут скорее можно говорить об онтологии извлечения и обработки информации. Некой единой модели  которая бы всё это описывала. Но это ещё одна большая и непростая исследовательская задача пока ещё далёкая от решения.

5. Один большой вопрос — это работа с аномалиями, когда получаемые из источника информации данные не соответствуют заявленному формату. Причём в случаях если подобные аномалии возникают в пределах данных, то это не то чтобы просто, но точно решается. А вот в случаях когда аномалии происходят на структурном уровне — последовательности полей или их разделения, то тут решается сложнее. Локализацией участка и ручному анализу или же разработкой правил анализа отклонений на основе ранее выявленных ошибок.  Одно можно сказать точно, в живых данных такие аномалии встречаются.

6. Кстати, говоря об аномалиях, нельзя не отметить ещё и тот факт что они сильно зависят от формы носителя информации — контейнера и от представления информации в этом контейнере. В практическом плане это выражается в том что в файлах Excel или DBF есть четкое разделение полей и хранение метаданных о типах данных в этих полях, а вот в HTML и, в некоторых случаях, в CSV такого нет или же, если есть, то этим метаданным нельзя доверять безоговорочно. Также с точки зрения выявления аномалий можно рассматривать любые полуструктурированные тексты устоявшегося написания той или иной информации — адресов, фамилий и так далее.

About This Author

Яндекс.Метрика