Записать показания датчика акселерометра в SQLite или плоский файл? - PullRequest
2 голосов
/ 29 апреля 2011

Я пишу приложение для Android для записи и сохранения высокоскоростных данных акселерометра (и более поздних данных гироскопа). Схема моих данных будет выглядеть так:

timestamp, x_accel, y_accel, z_accel

Должен ли я сохранять данные в SQLite или в плоский файл (используя FileWriter и BufferedWriter, как объяснено здесь )? Какой из них имеет самую низкую задержку или является более подходящим?

В конце концов мне нужно импортировать данные в виде файла CSV в Excel для создания графиков. Поэтому, если я пишу в SQLite, мне нужно позже записать его в CSV.

Ответы [ 3 ]

1 голос
/ 29 апреля 2011

Очевидно, что любой из них будет работать, но мое личное (не защищающее и не подкрепленное чем-либо) эмпирическое правило заключается в том, что если вы можете выполнить свою задачу с помощью файла, сделайте это.Его проще писать и управлять, чем кодом базы данных, и вы сможете отформатировать его для CSV на лету без необходимости в дальнейшем преобразовании.Я говорю, не думай слишком.BufferedWriter позаботится о том, чтобы записывать большими кусками для вас, так что просто держите выходной поток открытым, пока вы не закончите записывать свои данные, и у вас не должно возникнуть проблем с задержкой.(не забудьте flush() и close(), когда вы закончите, правило, соответствующее в Java, как и в жизни).

1 голос
/ 01 мая 2011

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

0 голосов
/ 29 апреля 2011

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

...