Где хранить данные?

Работа с файлами и базами данных
Ответить
Аватара пользователя
Михаил23
adviser
adviser
Сообщения: 219
Зарегистрирован: 24 ноя 2008, 17:58
Версия LabVIEW: 2009
Откуда: Москва

Где хранить данные?

Сообщение Михаил23 »

Есть задача хранить данные на локальном компе пользователя и периодически к ним обращаться.. Данные представляют из себя структуру
Папка
Под папка
Сигнал
.......
Сигнал
Под папка
Сигналы
............
Папка....

Сигналов примерно около 1000 в каждой под папке. Длинна каждого примерно 500тыс измерений.
У меня есть два варианта либо mdb Access или файлы разбросанные по папкам на диске(А может еще что?). В первом варианте(база) смущает быстродействие.Будет ли все это быстро читаться? Во втором неудобство хранения. Прошу высказать свои мысли поэтому поводу.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Где хранить данные?

Сообщение IvanLis »

Михаил23 писал(а):Сигналов примерно около 1000 в каждой под папке. Длинна каждого примерно 500тыс измерений.
У меня есть два варианта либо mdb Access или файлы разбросанные по папкам на диске(А может еще что?). В первом варианте(база) смущает быстродействие.Будет ли все это быстро читаться? Во втором неудобство хранения. Прошу высказать свои мысли поэтому поводу.
Давно уже не писал под Access, но раньше работал через ADO, там быстродействие нормальное. Правда все зависит от того, как организована работа с базой. Т.е. как запись осуществляется, отдельно каждое поле или сразу всю запись (record) писать. Как часто UpDate делаете и т.д.

Там можно создавать поля с типом данных на подобии RAW, в него можно запихнуть все что угодно. Сейчас не помню точно, как называется.
500тыс измерений это примерно картинка bmp (8-bit) 800*600 (чуть больше), так что должно фурычить нормально.

А сколько всего сигналов планируется записывать?
Аватара пользователя
Михаил23
adviser
adviser
Сообщения: 219
Зарегистрирован: 24 ноя 2008, 17:58
Версия LabVIEW: 2009
Откуда: Москва

Re: Где хранить данные?

Сообщение Михаил23 »

Ну верхнего предела конечно нет. Тут все зависит от того что сам пользователь на конфигурирует.Ну по моим оценкам порядка 7-8 тысяч будет всего хранится. Ну а считываться одновременно будет не более 1000 сигналов.
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

Re: Где хранить данные?

Сообщение Viktor »

Может есть смысл использовать TDMS Write?
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1337
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 44 раза
Контактная информация:

Re: Где хранить данные?

Сообщение AndreyDmitriev »

Viktor писал(а):Может есть смысл использовать TDMS Write?
Я тоже за то, чтобы TDMS попробовать
http://zone.ni.com/devzone/cda/tut/p/id/3727

Ещё есть Citadel
http://zone.ni.com/devzone/cda/tut/p/id/6579

И вот любопытная статья (но это так, факультативно, просто любопытно попробовать)
http://habrahabr.ru/blogs/net/137038/
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Где хранить данные?

Сообщение IvanLis »

Михаил23 писал(а):Ну верхнего предела конечно нет. Тут все зависит от того что сам пользователь на конфигурирует.Ну по моим оценкам порядка 7-8 тысяч будет всего хранится. Ну а считываться одновременно будет не более 1000 сигналов.
В Delphi делали программу, для работы с базой Access.
В базе хранились видео фрагменты, размером примерно 10-50 мег.
Тестировалось при 100 видео фрагментах, работало нормально.

Но лучше конечно использовать специализированные, заточенные для этого средства.
Сам с TDMS не работал, пока необходимости не возникало :crazy: .
Аватара пользователя
Chupakabra

Tutorials
professional
professional
Сообщения: 360
Зарегистрирован: 21 янв 2009, 10:50
Награды: 1
Версия LabVIEW: 2015
Откуда: Москва
Поблагодарили: 4 раза
Контактная информация:

Re: Где хранить данные?

Сообщение Chupakabra »

Подскажите, а TDMS файл можно программно дополнять каналами/группами с течением времени? Т.е. что-то записал, закрыл. Потом еще новыую группу или канал добавил и опять записал, закрыл.

А еще можно ли удалять старые каналы?
На последний вопрос, кстати, нашел очень странный ответ, который означает, что нормальным способом нельзя :(
http://digital.ni.com/public.nsf/allkb/ ... 3F0059E476
Аватара пользователя
Михаил23
adviser
adviser
Сообщения: 219
Зарегистрирован: 24 ноя 2008, 17:58
Версия LabVIEW: 2009
Откуда: Москва

Re: Где хранить данные?

Сообщение Михаил23 »

Безусловно я тоже сначала думал о файлах TDMS. Но пришел к выводу что они мне не подойдут.По той причине, что там возможно только два уровня вложенности(группа каналов и каналы)(http://zone.ni.com/devzone/cda/tut/p/id/3727). А у меня структура чуток более сложная(примерно 4-5 уровней). Поэтому от них пришлось отказаться. Citadel конечно хорошо, но дорого и на компе у каждого пользователя не поставишь. Поэтому наверно попробую начать с Access.
Аватара пользователя
Михаил23
adviser
adviser
Сообщения: 219
Зарегистрирован: 24 ноя 2008, 17:58
Версия LabVIEW: 2009
Откуда: Москва

Re: Где хранить данные?

Сообщение Михаил23 »

IvanLis писал(а):... Правда все зависит от того, как организована работа с базой. Т.е. как запись осуществляется, отдельно каждое поле или сразу всю запись (record) писать. Как часто UpDate делаете и т.д.

Там можно создавать поля с типом данных на подобии RAW, в него можно запихнуть все что угодно. Сейчас не помню точно, как называется.
500тыс измерений это примерно картинка bmp (8-bit) 800*600 (чуть больше), так что должно фурычить нормально.
А можно туда сигнал в виде выборки по времени записать? И можно его от туда доставать с метки времени Т1 по Т2?
А если туда файл двоичный запихивать он там хранится в виде ссылки? или как? Ну т.е. пользователь его на диске не уведет?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Где хранить данные?

Сообщение IvanLis »

Михаил23 писал(а): А можно туда сигнал в виде выборки по времени записать? И можно его от туда доставать с метки времени Т1 по Т2?
А если туда файл двоичный запихивать он там хранится в виде ссылки? или как? Ну т.е. пользователь его на диске не уведет?
Так там и так хранятся данные в двоичном виде, но хранятся в поле таблицы.
Читать с определенной позиции наверное можно, но я такого не делал.
Зато вспомнил, что за тип: BLOB - Binary Large OBject - большой бинарный объект
Аватара пользователя
Михаил23
adviser
adviser
Сообщения: 219
Зарегистрирован: 24 ноя 2008, 17:58
Версия LabVIEW: 2009
Откуда: Москва

Re: Где хранить данные?

Сообщение Михаил23 »

Ясно. Но сейчас там такой тип убрали. Зато есть OLE Object и "Вложение"
Вот такая прикольная вещь:
Выдержка из Help:
"Новая функциональная возможность ACCDB-файлов Office Access 2007. В записи базы данных можно вкладывать изображения, файлы электронных таблиц, документы, диаграммы и другие файлы поддерживаемых типов точно так же, как в сообщения электронной почты. Можно также просматривать и редактировать вложенные файлы в зависимости от параметров, заданных разработчиком базы данных для поля с типом данных «Вложение». Эти поля дают большую свободу действий, чем поля с типом данных «Поле объекта OLE», и более рационально используют место для хранения, поскольку не создают растровые изображения исходного файла."


А ведь можно наверно и TDMS вложить? :wink:
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Сохранение данных»