处理大量二维数据

时间:2012-07-28 01:35:15

标签: .net storage

我希望你能帮助我解决这个问题。 我目前正在重新设计一个应用程序(.NET),现在我来到了我的部分 必须超越数据存储。

基本上每10秒左右(可以变化,但这是最快的)我得到一个包含浮点数值和timeStamp数组的新数据集。 (这些数组可能非常大,所以我必须处理大量数据[可以达到数百mb甚至gb])数组的长度是按程序固定的(让我们称之为运行)但在不同的时候会有所不同运行。我一次只看一次。

所以我的问题是:

如何保存此数据以及如何在我的应用程序中处理它?<​​/ p>

特别是如果我想读出具有特定时间戳的数据集,

来自给定索引的浮点值列表

和给定索引范围和时间戳范围的2d浮点值列表。

[编辑:数据需要存储在本地]

2 个答案:

答案 0 :(得分:0)

Azure表存储...........

答案 1 :(得分:0)

我建议使用数据库。

Run(int Id, datetime Timestamp) - PK: Id
Entry(int RunId, int Index, float Value) - PK: RunId, Index

然后,你可以

SELECT Index, Value 
FROM Entry E 
    INNER JOIN Run R 
        ON E.RunId = R.Id
WHERE R.Timestamp = '00-00-00 00:00:00'

SELECT RunId, Value 
FROM Entry 
WHERE Index = 0

SELECT Timestamp, Index, Value 
FROM Entry E 
    INNER JOIN Run R 
        ON E.RunId = R.Id
WHERE 
    R.Timestamp <= '00-00-00 00:00:00' AND 
    R.Timestamp >= '00-00-00 00:00:00' AND
    E.Index <= 0 AND
    E.Index >= 0

用适当的数据替换0和'00 -00-00 00:00:00'。