Sova
Фев. 15, 2016 12:25:40
Я новичёк но нужно разобраться. Если тема не по адресу - переместите, админы.
мне нужно сохранять массив данных - температура, № датчика и дата время. понятно что это лучше хранить в какой то базе данных, например в SQL, т.е. это наверное должен быть “db ” файл где хранятся таблицы..
Я с SQL никогда не работал, подскажите плиз, как доустановить библиотеку SQL, и как работать с этой БД?
стоит Pytton3.4.
4kpt_IV
Фев. 15, 2016 12:28:21
Там не библиотека нужна, а драйвер. Он зависит от БД, которую Вы выбрали. Чтобы просто потренироваться хватить и sqlite. Она идет в комплекте с питоном. Если надумаете использовать ORM - sqlalhcemy.
Sova
Фев. 15, 2016 13:22:47
Есть где то хоть пример? или описание как с этим работать? Заранее благодарен за помощь в освоении.
4kpt_IV
Фев. 15, 2016 13:27:45
Вы вообще никакую информацию не даете. По работе с sqlite без ORM можно глянуть в блоге мной очень уважаемого
JOHN_16:
нужная статья в блоге
Sova
Фев. 15, 2016 13:51:29
О какой информации вы говорите?
4kpt_IV
Вы вообще никакую информацию не даете.
Вы скажите что еще дополнительно нужно сказать или показать, но как мне кажется (субьективно) я дал описание таблицы, которая будет создаваться и потом обрабатываться. Могу в екселе нарисовать..
За совет
4kpt_IV
По работе с sqlite без ORM можно глянуть в блоге мной очень уважаемого JOHN_16: нужная статья в блоге
большое спасибо..
4kpt_IV
Фев. 15, 2016 15:01:35
Имеется ввиду:
1. Объем данных (предполагаемое количество полей).
2. Структура данных (поля по-типам).
3. Необходимая скорость получения данных.
4. Защищенность данных.
Sova
Фев. 15, 2016 15:45:53
таблица 1:
7 полей
дата время (31.05.2014 23:40:03); bool; float; текст (Инициализация бункера); bool; bool; bool.
количество строк таблицы 1 - 100000 (данный пишутся каждую секунду)
таблица 2:
13 полей
дата (31.05.2014); float; unsigned short int; unsigned short int; float; unsigned short int; unsigned short int; float; unsigned short int; unsigned short int; float; unsigned short int; unsigned short int;
количество строк таблицы 2 - 32
Таблица1 вносятся данные измерений, таблица 2 результат вычислений из таблицы 1 по суточно, т.е. в результате обработки 100000 строк имеем одну строку в табл 2.
ДАнные выдаются по запросу
4kpt_IV
Фев. 15, 2016 16:26:38
sqlite хватит за голову, если скорость получения данных для анализа не особо критична.
doza_and
Фев. 15, 2016 20:14:00
Sova
температура, № датчика и дата время
Не факт что хорошо SQL подходит для такого использования. Такие данные обычно пишутся логгерами.
Для начала можете попробовать из списка
https://en.wikipedia.org/wiki/Time_series_databaseСуществуют надстройки
https://pypi.python.org/pypi/kairoshttp://graphite.readthedocs.org/en/latest/Если нужна скорость то надо смотреть в сторону Column-oriented database (Bigtable,HBase)
Неплохо получается писать в hdf5 но надо заморачиваться буферизацией перед записью :(
doza_and
Фев. 15, 2016 20:25:41
Sova
(данный пишутся каждую секунду)
Это очень медленно. Я имел ввиду потоки данных порядка 10^5 транзакций в секунду.
Sova
количество строк таблицы 1 - 100000
Sova
таблица 2 результат вычислений из таблицы 1 по суточно
Если все так жестко, то нет смысла использовать sqlite. Такие данные обычно просто циклически пишут в файл фиксированного размера.
Вопрос только в том, насколько вы готовы терять часть данных при сбоях железа, насколько важно жестко синхронизировать содержимое таблицы 1 и таблицы 2.
Я в данном случае настроил бы logging и не парился.