存储数百万个数据段的hundres

时间:2016-10-13 21:03:54

标签: mongodb cassandra cloud bigdata database

我正在研究的系统需要存储设备24/7发送的字符串流。 例如,ID为“ID”的设备每10秒发送一个不同的字符串。 所以,我需要存储以下数据项:

('ID', t, t+10, somestring)

我们谈论的是成千上万的设备,意思是数以亿计的数据集。

最重要的查询是:

Query(id, start, end) ==> list of strings

您如何建议存储数据? 你会推荐哪个数据库?

2 个答案:

答案 0 :(得分:2)

对于Cassandra来说,这非常简单。

Dim wkbDest, wkbSource As Workbook
    ret = ("<insert file path here>")
    If ret = False Then
    Set wkbDest = Workbooks.Open("<insert file path here>")
    Else
    Set wkbDest = Workbooks("<insert file name here>")
    End If
    Set wkbSource = ThisWorkbook
Dim f As Range, rwNum
    Set f = wkbDest.Worksheets("Exhibit C").Range("B:B").Find(What:=wkbSource.Worksheets("ReferenceData1").Range("S3"), lookat:=xlWhole)

If Range("C19").Value = "Pass" Then
    wkbDest.Worksheets("Exhibit C").Cells(f.Row, "E").Value = Range("B19").Value
ElseIf Range("C19").Value = "Fail" Then

End If

这意味着每个ID /日将有一个分区(你不能让它们无限制地增长)。这意味着在您的查询中,如果开始/结束跨越一天,您必须多次读取。

答案 1 :(得分:0)

这是timeSeries数据,而Cassandra可能非常适合TimeSeries类数据。将数据按id,开始(降序),结束(降序)存储为Cassandra中的主键。您的写入和读取速度很快,可以线性扩展以提高性能。 注意:Cassandra将分区值的数量限制为2亿,如果您不想为旧数据设置TTL,则应考虑向分区添加另一个密钥以限制该值。如果只有少量ID不断发送数据,这也可以让您在整个集群中传播数据。