Преимущество чтения данных из матового файла, а не из базы данных

Я видел, как какой-то код считывал большие данные из мат-файлов вместо выполнения запросов к базе данных. Каковы преимущества этого по сравнению с использованием базы данных? Можно ли легко переместить содержимое матового файла в базу данных и наоборот?


person mugetsu    schedule 14.12.2011    source источник


Ответы (2)


Чтение данных из файла mat также является "базой данных", в которой вы читаете свои данные из файла.
В конечном итоге вам придется самостоятельно выполнять запросы и решать многие другие вопросы.
Кроме того, это не масштабируемое решение, а это значит, что для большого объема данных оно не будет хорошо работать.
Конечно, если у вас небольшой объем данных и только базовые запросы, суета настройки базы данных, использование SQL не стоит.

Что касается вашего второго вопроса, это действительно зависит от данных, которые у вас есть.

person Andrey Rubshtein    schedule 14.12.2011
comment
@mugetsu: я бы сказал, что накладные расходы намного ниже при использовании мат-файлов для достаточно небольших или хорошо упорядоченных наборов данных, которые легко запрашивать. - person Jonas; 14.12.2011
comment
@Jonas Я имею дело с большими матовыми файлами, содержащими изображения, если вы слышали об изображениях VOC или Caltech101, это то, что я использую. Структура таблицы довольно проста, но может содержать сотни тысяч строк. Так может коврик лучше? - person mugetsu; 14.12.2011
comment
@mugetsu: Если я правильно помню, в наборе Caltech101 всего несколько тысяч изображений и несколько аннотаций. Здесь вы можете просто загрузить аннотации в память и использовать их для определения того, какое изображение нужно загрузить. Особенно с новым интерфейсом matIO может быть намного проще не создавать базу данных. Базы данных, однако, очень полезны, если вам также нужно добавить больше записей, если аннотации не могут быть легко сохранены в переменной в памяти, потому что есть так много записей или так много аннотаций. - person Jonas; 15.12.2011

Я согласен с Андреем. Это зависит от данных и того, что вы хотите с ними делать. Я создал небольшую программу в Matlab, которая запрашивает относительно небольшую базу данных .mat, но по мере роста базы данных и пользователей производительность падала.

В свете этого мы решили использовать базу данных MySQL. Я создал небольшое Java-приложение, которое взаимодействует с базой данных, и импортировал его в Matlab для перемещения данных между Matlab и MySQL. Но мне пришлось создать конкретные запросы для моих данных. Если кто-то может предложить мне лучшее решение, я был бы признателен.

Возможно, было бы неплохо создать общий скрипт, который перемещает данные между данными .mat между Matlab и базой данных SQL. Храните данные в структуре и используйте ее для создания таблиц.

Если вы хотите обсудить что-то подобное по электронной почте, я буду рад. Может быть, мы сможем научиться кое-чему друг у друга.

person Stefan Gretar    schedule 14.12.2011
comment
Просто дикая догадка, попробуйте преобразовать мат в XML, а затем импортировать его с помощью какого-нибудь стандартного инструмента базы данных. Например, Microsoft Access. - person Andrey Rubshtein; 14.12.2011
comment
Я собираюсь попробовать это! У меня есть несколько больших файлов .MAT, которые я конвертирую в базу данных SQLite, и это было больно, так как я не настоящий парень MATLAB, поэтому мне пришлось создать парсер на Python для обработки МНОГИХ вложенных структур (черт возьми, MATLAB! ). В любом случае я проанализировал его с помощью Python, а затем сохранил через pandas в БД. - person Matt Camp; 04.06.2017