Лучшее использование базы данных для хранения больших научных наборов данных - PullRequest
0 голосов
/ 28 августа 2018

В своей основной роли я работаю с файлами данных лабораторных испытаний, которые могут содержать более 2000 параметров для каждого уникального условия испытаний. Эти файлы обычно хранятся и обрабатываются как файлы в формате CSV, но это становится очень громоздким при работе с 6000+ файлами по 100+ строк в каждом.

Я работаю над будущим решением для хранения баз данных и запросов, чтобы улучшить доступ и эффективность, но я зашел в тупик из-за ограничения длины строк в MySQL (в частности, MariaDB 5.5.60 в RHEL 7.5). Я использую MYISAM вместо InnoDB, что позволило мне получить около 1800 полей данных с двойным форматированием. Эта версия MariaDB требует, чтобы динамические столбцы были пронумерованы, но не названы, и в настоящее время я не могу выполнить обновление до MariaDB 10+ из-за административных политик.

Стоит ли искать базу данных NoSQL для этого приложения или есть лучший способ обработки этих данных? Как другие обрабатывают множество переменных данных, особенно числовые данные?

Пример файлов CSV, которые я пытаюсь импортировать, см. Ниже. Идентификатор, который я использовал, представляет собой объединение TEST, RUN, TP, образующее 12-значный беззнаковый ключ bigint.

Файл примера: RUN, TP, TEST, УГОЛ, СКОРОСТЬ, ... 1.000000E + 00,1.000000E + 00,5.480000E + 03,1.234567E + 01,6.345678E + 04 ...

Пример ключа: 548000010001 <- Test = 5480, Run = 1, TP = 1 </p>

Я ценю любой ваш вклад.

1 Ответ

0 голосов
/ 27 сентября 2018

Сложность возникает из-за того, что вам приходится обрабатывать огромное количество данных, а не из-за того, что они разбиты на множество файлов с множеством строк.

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

Вам следует серьезно пересмотреть вопрос о том, чтобы оставить ваши данные в файлах, т. Е. Использовать вашу файловую систему в качестве системы хранения базы данных. Возможно, расшифруйте вход CSV в современный самодокументируемый формат данных, такой как YAML или HDF5. Для запросов вам может быть лучше писать сценарии или программы, которые непосредственно обращаются к этим файлам, вместо того, чтобы писать запросы SQL.

...