小编Oli*_*ver的帖子

存储来自传感器阵列的大量数据

我的任务是实施一个解决方案(应用程序和数据库)来存储来自巨大传感器阵列的数据样本。该阵列目前由大约 20,000 个传感器组成,但很快就会增长到 100,000 个传感器。每个传感器每 10 秒发送一个数据样本,每个样本的大小为 28 字节。

因此,进行求和会导致:

  • 每个传感器每天 8640 个样本
  • 每个传感器每天 242kB 的数据
  • 每天 8.64 亿个样本

现在我一直想知道存储/检索数据的最佳方法是什么?我在指定软件后“加入”了这个项目,所以它需要在使用 SQL Server 的 Windows 平台上实现。

我目前的解决方案是创建一个带有两个表的数据库来存储数据样本。第一个用作第二个的索引,将整理的样本存储在每个传感器每天的二进制字段中:

Table 1:

  RecordID - BigInt - Identity
  SensorID - BigInt - Primary Key
  Date - DateTime - Primary Key (yyyy-mm-dd)

Table 2:

  RecordID - BigInt - Primary Key (from an insert into Table 1)
  Data - Binary 
Run Code Online (Sandbox Code Playgroud)

基本上我会将来自所有传感器的样本写入临时文件(每个传感器 1 个)。在每天结束时,我将在表 1 中创建一个条目,使用生成的 RecordID 并将文件转储到表 2 中的数据字段中。

这样,我最终每天只有 100,000 个条目进入表,而不是 8.64 亿个条目。数据应该在 LAN 或高速 WAN …

database-design sql-server

14
推荐指数
1
解决办法
7346
查看次数

标签 统计

database-design ×1

sql-server ×1