|
|
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
Имеется быстрорастущая таблица 500 строк в секунду таблица innodb состоит из 4 столбцов id(int),id_tag(int),date(int),value(float) индексы по четырем колонкам. Если прикинуть размеры через год 500*3600*24*30*12=15 552 000 000 строк Цифра внушительная. Как мне в будущем работать с таким объемом? Необходимо же не только считывать, но и записывать, а это постоянный пересчет индексов. Во первых, если не ошибаюсь, необходимо будет делать Партицирование. Никогда с ним еще не работал. вопрос тогда, как происходит вставка, пересчет идет только партиции? Еще один вопрос, чем старше данные, тем реже используются для выборки, какие есть инструменты чтоб сжимать данные старые или еще что то, чтоб при необходимости только разворачивались? Еще вопрос по объему, сейчас 7,5 млн сторк, весит таблица 700 МБ, если примерно прикинуть это получается при 15 552 000 000 строк = 1 451 520 МБ = 1.384277 ТБ Это получается на второй год эксплуатации файловая систем NTFS переполнится. Эх, помогите советами, опыт еще маленький. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 09:15:54 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldar, А зачем вам хранить эту массу записей долго? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 09:59:57 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
krevedko13,Спасибо. как я понял каждая партиция mysql воспринимает как отдельную таблицу. Скажите тогда оптимальный размер строк или объем партиции И можно ли будет удалять данные по партициям, к примеру партицирование за месяц, другой месяц начался, партиция последняя удалилась вместе с данными, без указывания диапазонов и id, просто указать партиция и DELETE. Блин удаление вообще дорогое удовольствие будет, ведь после удаления надо еще оптимизировать таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 11:44:24 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
miksoft, Ну больше года наверно и уже после подсчетов скорей всего не будет. Ну а данные за год нужны. Это получается 15 миллиардов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 11:47:03 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldarИ можно ли будет удалять данные по партициямВы почитайте, почитайте ман. По ссылкам там пройдитесь. Вот тут, например, посмотрите http://dev.mysql.com/doc/refman/5.1/en/partitioning-management-range-list.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 11:50:18 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldar, Я боюсь, такие объемы уже не для MySQL. Миллионы ещё куда не шло, миллиарды -- нет. К сожалению, опыта с MySQL в этом вопросе у меня нет, ни отрицательного, ни положительного. Тут Нужны columnstore, Vertica, например, и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 11:51:54 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
Еще можно попробовать самодельное партиционирование. Например, по таблице на день. Тогда и количества записей будут не такие страшные, и колонка date уберется, что сократит объем данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 12:03:05 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
А вообще - нужно детально смотреть, что это за данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 12:06:10 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы. Данные эти, это показание различных датчиков с дискретностью секунда. Насчет создание таблиц надо подумать, разделить их по месяцу это получится миллиард, если по дням уже лучше, но тогда получится немерено таблиц. 365 таблиц в год. Это нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 12:54:12 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldarДанные эти, это показание различных датчиков с дискретностью секунда.А обязательно их сохранять в 500 отдельных записей? В одну нельзя (с разбивкой по полям или без)? (Разбивка по полям опасна, если количество датчиков может измениться). ldar365 таблиц в год. Это нормально?Не вижу в этом ничего страшного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 13:13:35 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
miksoft, 500 это я взял максимальное количество уникальных датчиков, на данный момент их около 200. Спасибо за совет по поводу создание таблиц, наверно так и поступлю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 13:59:09 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldar, а точно нужно все датчики в отдельные записи писать? в MySQL потом с ними какая-то аналитика будет или только хранение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 15:31:52 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
miksoft, да, желательно в отдельные записи. Потом я провожу агрегацию данных для быстроты выборки в таблицы с дискретностью минута, час, день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 15:46:35 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldarmiksoft, да, желательно в отдельные записи. Потом я провожу агрегацию данных для быстроты выборки в таблицы с дискретностью минута, час, день.Если вынести эту агрегацию на клиентскую сторону и хранить все показания в одной записи, то можно будет объем хранимых данных сократить кардинально (вдвое или больше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 15:57:48 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
miksoft, а можно поподробней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 16:29:28 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldarmiksoft, а можно поподробней.Исчезнет многократное хранение вспомогательных полей, например, времени. А поля id и id_tag, подозреваю, вообще станут не нужны. Зависит от деталей их предназначения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 16:33:21 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldar , в обшем виде работа с большими обьемами данных требует особых приемов. Практически очень трудно (иили невозможно) загружать, хранить и использовать большие данные в единой структуре. Прочитайте про DWH, ДатаМарт, BI. Идея в разделении OLTP и OLAP, раделение сбора, загрузки, чистики данных (ETL), создание преагрегатов, репортов, и т.д. Что немаловажно, надо подходить с обоих сторон -- и со стороны исходных данных и со стороны требований бизнеса на использование этих данных. Архитектура и процессы вашего проекта 70% зависит от того кто, какие, когда и как будет запрашивать информацию и репорты. Без понимания зачем вам нужны данные -- все разговоры про варианты хранения данные -- трата времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 17:44:15 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
miksoft, я понимаю вы такую таблицу предлагаете? Ну да, объем существенно снизится и скорость выборки увеличится, только как я понимаю эту таблицу нужно делать с уже фиксированным количеством столбцов и в случае необходимости добавления датчика, это уже будет невозможным, если только не создавать еще одну таблицу. Пока остановился на версии создания на каждый день таблицы, но это надо для начала поэксперементировать, чтоб убедится в эффективности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 12:10:11 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
javajdbc, Спасибо за наводку, теперь есть о чем поразмыслить и почитать. Еще хотел спросить, из свободных SQL баз какая лучше подойдет для этих целей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 12:16:27 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldarmiksoft, я понимаю вы такую таблицу предлагаете?Он предлагает или такую, илиmiksoftА обязательно их сохранять в 500 отдельных записей? В одну нельзя (с разбивкой по полям или без )? ( Разбивка по полям опасна, если количество датчиков может измениться ).такую: {id int, tags_data varchar(500)}, а в поле tags_data будет лежать что-нибудь типа "1:123;2:456;3:789" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 12:56:00 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldarmiksoft, я понимаю вы такую таблицу предлагаете? Только как вариант (который с разбивкой по полям). Можно и без разбивки, т.е. писать все float-значения в одно поле. Например, в BLOB. Кстати, поле id тут уже становится не очень нужно, если в datetime дублей не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 12:59:13 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
krevedko13,Спасибо. как я понял каждая партиция mysql воспринимает как отдельную таблицу. Нет, все вместе только как таблица выглядит. Скажите тогда оптимальный размер строк или объем партиции Для каждого приложения это индивидуально. И можно ли будет удалять данные по партициям, к примеру партицирование за месяц, другой месяц начался, партиция последняя удалилась вместе с данными, без указывания диапазонов и id, просто указать партиция и DELETE. Блин удаление вообще дорогое удовольствие будет, ведь после удаления надо еще оптимизировать таблицу. Да, можно будет. Именно для этого разделы и нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 13:48:34 |
|
||
|
Большой объем данныех
|
|||
|---|---|---|---|
|
#18+
ldarСпасибо за советы. Данные эти, это показание различных датчиков с дискретностью секунда. Насчет создание таблиц надо подумать, разделить их по месяцу это получится миллиард, если по дням уже лучше, но тогда получится немерено таблиц. 365 таблиц в год. Это нормально? Нет. Даже странно, что миксофт тебе это посоветовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 13:49:52 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38332261&tid=1836412]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 330ms |

| 0 / 0 |
