Windows azure:带追加的数据存储

本文关键字:数据 存储 追加 azure Windows | 更新日期: 2023-09-27 18:15:04

我计划在Windows Azure上运行一个数值模拟。模拟可能需要几天或几周的时间。每一秒钟左右,模拟产生一组数字,如temperature: double, pressure: double, velocity: double[]等,我想存储。

要求如下:

  1. 立即保存每秒产生的所有数据,最好在一个请求中保存。
  2. 能够读取任何存储的数据(例如使用javascript),即使在数值模拟运行时。
  3. 温度、压力、速度等分开。例如,我想在一个呼叫中读取所有压力,而不读取速度等。
  4. 在全球范围内,存储应分成项目,项目应包含温度"文件",压力"文件"等,每个"文件"应包含一系列数字。
  5. 我不需要任何高级功能->它应该表现得或多或少像文件系统
  6. 中的文件

我应该使用哪个存储?你能给我指出讨论这种用例的教程吗?

Windows azure:带追加的数据存储

我的建议是在您的项目中使用Azure表存储。它"非常"便宜,并且能够存储大量数据。

具体要求:

立即最好地保存每秒钟产生的所有数据

您可以使用Entity Group Transactions在一个请求中存储数据。这有一些限制,所以我建议你仔细阅读。

能够读取任何存储的数据(使用例如javascript)甚至在数值模拟运行时。

由于Windows Azure表存储是基于REST的服务,您可以很好地使用JavaScript获取数据,尽管我实际上建议使用Shared Access Signatures查询数据,因为它更安全。

温度、压力、速度等分开。我想。例如,在不读取速度的情况下读取一次呼叫中的所有压力等。

在全局级别上,存储应该分为项目和项目应包含温度"文件"、压力"文件"等每个"文件"应该包含一个数字序列。

这就是事情变得有趣的地方。基本上,你要做的是将数据反规范化,而Azure表存储就是为了实现这一点。你所说的"文件",我称之为"表格"。所以会有"温度"表和"压力"表等等。我建议的方法是,当你第一次收集消息时,将消息中的数据保存在Windows Azure Queue中,然后让另一个进程(可能是工作角色)拉出该消息,并通过转换每个表所需的数据将数据推送到不同的表中。

应该是便宜的。

Windows Azure表存储很便宜。你基本上是为你存储的数据量、你针对服务执行的交易数量以及从数据中心流出的数据付费。请访问Windows Azure定价页面了解更多详细信息。

我不需要任何高级功能->它应该表现得或多或少作为文件系统

中的文件

Azure表存储本质上是一个基于键值对的数据存储,所以它相对容易使用。

注意事项

Azure表存储与常规SQL表略有不同,因为您没有在表上创建额外索引(称为二级索引)的奢侈。在一个表上只能得到一个索引(在PartitionKey/RowKey上)。因此,您必须非常明智地选择"PartitionKey/RowKey"值,并考虑如何从表中读取数据,这一点非常重要。

你可能会发现这些链接很有用:

http://blogs.msdn.com/b/windowsazurestorage/archive/2012/11/04/windows - azure -平-网络-存储-和- 2012可伸缩性targets.aspx

http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/06/how-to-get-most-out-of-windows-azure-tables.aspx

http://channel9.msdn.com/events/build/2012/4 - 004

Azure表存储分区设计