Схема XML для регистрации временных рядов научных приборов
Q:
Я знаю, что нет единого идеального ответа на все эти глупости; Я надеюсь, что некоторые опытные знания позволят сузить круг возможных вариантов, некоторую общую стратегию, чтобы избежать ночных кошмаров по конверсии, и любые идеи по сокращению моего объема хранения данных на ЦП / диске (операции с большими строками являются дорогостоящими и утомительными). Я работаю на ограниченном оборудовании и немного новичок в стандартах XML. Я могу читать и писать это очень хорошо (как правило, для веб-сайта), никогда не в качестве инкапсуляции набора данных.
Я размышлял об этом неделями, и я на 92, 3% уверен, что файлы XML являются моим идеальным местом хранения. Я регистрирую различные показания / анализ приборов и держу их в течение нескольких месяцев. Хотя у меня есть опасения по поводу того, что мои узлы сбора данных имеют ограниченные аппаратные ресурсы (чрезмерные операции со строками могут выполняться медленно, 512 КБ ОЗУ, 3,2 ГБ флэш-памяти).
Я пытаюсь найти хорошо сформированный ML с минимальным размером, который может обрабатывать RAW числовые типы данных. Мне не нужны полностью совместимые файлы, НО я ищу оптимальное решение, поэтому не будем слишком сильно отклоняться от правильной формы.
Основные факторы модели данных
(и почему я думаю, что XML лучше подходит для упакованного двоичного файла, FLAT TEXT или даже CSV)
- До 8 различных точек данных (разные измерения, марки и типы датчиков)
- различные необработанные типы данных (REAL32, DINT, DWORD, BYTE, STRING(произвольно длинные)
- наборы данных должны иметь возможность хранить абсолютные метки времени в каждом файле (у меня есть каталог, полный сотен XML, которые в конечном итоге объединятся)
- Конфигурация / количество datapoint может измениться, поэтому я должен иметь возможность отмечать изменения в схеме с минимальным многословием / путаницей.
Ограничения производительности / соображения
- Обычно я должен выписывать XML только из встроенной платформы, поэтому удобочитаемость не имеет первостепенного значения, хотя, если мне нужно обрабатывать какие-либо запросы, отбрасывание и разбор 3,0 ГБ текста не доставит удовольствия даже в самом чистом виде.
- Я считаю, что прерывистые узлы DATE-TIME помогут мне проиндексировать такой запрос
- Чрезмерноесжатие данных может действительно стать проблемой во время экспорта, потому что это становится еще большим количеством вычислений, чтобы разархивировать мою лень.
- Чрезмерно многословный XML дает мне всего 111 дней хранения. Я хотел бы получить это до 180 дней или дольше. Поэтому мне нужно лучше сжать текст.
- Есть 3 потенциальных цели, как только данные выгружены. Я не хочу сталкиваться с узкими местами / ошибками в конверсии из-за чрезмерного усложнения.
- Microsoft Excel (ему не нужно понимать это отлично, но мы не хотим тратить часы на ручной импорт несоответствующих типов схем / карт в 2D-сетку).
- Внутренний сервер RRD (я смогу выполнить любые необходимые преобразования, но, надеюсь, я уже близок к тому, что хочет RRD
- Некоторые милые инструменты Javascript/Android. Хотя я ожидаю, что они будут выполнять пользовательскую обработку типов данных, правильно сформированный XML сделает поиск и анализ проще во время разработки.
1 ответ
Рассматривали ли вы хранение ваших файлов XML в базе данных XML, такой как eXist?