2010-06-17 2 views
1

Нам необходимо управлять 10 000 устройств GPS, каждое устройство GPS загружает данные GPS каждые 30 секунд, эти данные необходимо хранить в базе данных (SQL Server 2005).Массовое хранилище данных с SQL Server

Каждый GPS устройство количество ежедневно данные: 24 * 60 * 2 = 2880 10 000

10000 GPS устройств количество ежедневно данных: 10000 * 2880 = 28800000

каждые данные GPS приблизительно 160Byte, количество данных в день: 28800000 * 160 = 4.29GB

Мы должны проводить по крайней мере 3 месяца данных GPS в базе данных,

Мой вопрос:

1 может ли SQL Server 2005 поддерживать такой большой объем хранилища данных?

2, Как спланировать таблицу данных? (Все хранения данных GPS в одной таблице Ежедневно таблицы Каждый GPS устройство с таблицей данных GPS??)


GPS-данные:

GPSID varchar(21), 
RecvTime datetime, 
GPSTime datetime, 
IsValid bit, 
IsNavi bit, 
Lng float, 
Lat float, 
Alt float, 
Spd smallint, 
Head smallint, 
PulseValue bigint, 
Oil float, 
TSW1 bigint, 
TSW1Mask bigint, 
TSW2 bigint, 
TSW2Mask, 
BSW bigint, 
StateText varchar(200), 
PosText varchar(200), 
UploadType tinyint 

Я предпочитаю использовать таблицу разделов. Однако, как установить границы?

+0

Все данные, хранящиеся в одной таблице (имя таблицы: GPSTracks), для хранения данных, запроса, управления очень удобны. Но проблема в том, что количество данных в этой таблице слишком велико!Разделение таблицы представляется хорошей идеей, но если демаркация границы является трудной проблемой. – Leo

+0

Каждый день таблица (имя таблицы: GPSTrack_20100617) может уменьшить объем данных GPS, но все еще очень большой (4,29 ГБ), запрос данных будет все еще медленным, что более важно, когда встречный кросс-дневный запрос будет очень болезненным. – Leo

+0

Каждое устройство GPS с таблицей данных GPS (имя таблицы: GPSTrack_1531332567, «1531332567» - это идентификатор GPS), может решить проблему количества и запросы данных очень быстро, но есть решающий вопрос: скорость записи слишком медленная (потому что мы необходимо вставить данные в другую таблицу. Кроме того, также необходимо проверить таблицу назначения). – Leo

ответ

6

Да, SQL Server 2005 может содержать такое количество данных.

Чтобы иметь возможность ответить на последний вопрос, нам действительно нужно знать, как вы собираетесь использовать данные. Например, если вы хотите делать запросы по всем данным, помещать их в ежедневные таблицы было бы проблемой. У вас также есть проблема с тем, как бы вы справлялись с ежедневным переключением таблиц?

Я бы изначально думал о сохранении данных в одной таблице, которая использует разбиение таблиц и помещение исторических разделов в файловые группы, которые сидят на быстром диске для чтения. Это ускорит запрос данных.

2
  1. ли SQL Server 2005 может поддерживать такое большое количество хранилища данных?

Да, Sql Server было показано, чтобы иметь возможность хранить PETA байт информации.

2, Как спланировать таблицу данных? (Все GPS хранения данных в одной таблице? Ежедневно стол? Каждый GPS устройство с данными GPS таблицы?)

Там нет необходимости разделять данные по таблице. Это сделает сбор данных более громоздким в будущем. Вы хотите посмотреть на table partitioning.

https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/datacenter/?p=139

+0

Перегородка таблицы является идеальным решением для вставки, запроса, резервного копирования и т. Д. Однако объем данных в день уже очень велик, Как установить границу раздела функции разделения, каждый день? – Leo

+0

Я бы определил ваши границы в процессе загрузки и выгрузки данных, например. загружается ли он и стареет ежедневно или еженедельно. – Andrew