Полуструктурированные данные имеют некоторую организацию, но не помещаются аккуратно в таблицы. JSON, XML, YAML и заголовки электронных писем относятся к этой категории. Данные имеют теги или ключи, описывающие их структуру, но структура может различаться от записи к записи. Один объект JSON может иметь поле, которого нет в другом. Один XML-документ может иметь разную вложенность элементов по сравнению с другим. Схема является гибкой, иногда её называют схемой при чтении. Структура применяется при запросе данных, а не при их сохранении.
Полуструктурированные данные широко распространены в современных приложениях. API возвращают JSON. В лог-файлах используются пары ключ-значение. В конфигурационных файлах используется YAML. Документные базы данных NoSQL хранят JSON изначально. Гибкость полезна, когда модель данных развивается или изменяется. Это также создает проблемы для анализа. Запросы к полуструктурированным данным требуют иных инструментов и методов, чем запросы к таблицам. Необходимо перемещаться по вложенным структурам, обрабатывать отсутствующие поля и преобразовывать массивы в плоскую структуру. SQL-движки адаптировались. PostgreSQL, MySQL и Snowflake поддерживают функции JSON. Можно выполнять запросы внутри JSON-документов, не извлекая их предварительно. Это размывание границ между структурированными и полуструктурированными данными делает различие менее актуальным. Важный вопрос не в том, являются ли данные полуструктурированными, а в том, можно ли эффективно выполнять к ним запросы.
Полуструктурированные форматы
- JSON — пары ключ-значение, массивы, вложенные объекты
- XML — помеченные элементы, иерархические
- YAML — удобочитаемая конфигурация
- CSV — содержит разделители, но без информации о типе.
- Файлы журналов — события с метками времени и переменными полями.
Полуструктурированные данные — это золотая середина. Они обладают достаточной структурой, чтобы быть полезными, и достаточной гибкостью, чтобы быть неструктурированными.
Comments (2)
Leave a comment