Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure存储用于保存推文和相关信息_Azure_Azure Sql Database_Azure Table Storage - Fatal编程技术网

Azure存储用于保存推文和相关信息

Azure存储用于保存推文和相关信息,azure,azure-sql-database,azure-table-storage,Azure,Azure Sql Database,Azure Table Storage,我计划编写一个windows服务,它使用twitter流api将特定主题的推特和相关信息(情绪分数、推特用户、创建日期)保存到azure存储中。我需要一种稍后查询这些信息的方法,如“显示过去24小时推特的平均情绪分数”,因此SQL或LINQ必须可用 一些数字: 每天保存的推文数量约为20000条 保存数据3个月(20.000条tweets*90天) 保存的数据:推特文本(140个字符)、情绪分数、推特用户名、日期(可能还有更多属性) 保存频率:因为我使用的是流式api,所以我会实时收到推文,这

我计划编写一个windows服务,它使用twitter流api将特定主题的推特和相关信息(情绪分数、推特用户、创建日期)保存到azure存储中。我需要一种稍后查询这些信息的方法,如“显示过去24小时推特的平均情绪分数”,因此SQL或LINQ必须可用

一些数字:

  • 每天保存的推文数量约为20000条
  • 保存数据3个月(20.000条tweets*90天)
  • 保存的数据:推特文本(140个字符)、情绪分数、推特用户名、日期(可能还有更多属性)
  • 保存频率:因为我使用的是流式api,所以我会实时收到推文,这些推文必须保存到存储器中
  • 查询频率:大约每30分钟一次

我想知道哪个Azure存储适合这个目的。< /强>我想我必须在Azure表存储和SQL数据库之间做出决定。

在这2个

之间有两个要考虑的事情。 1。价格:

SQL Azure:检查计算器:

存储表:检查计算器:

你应该考虑容量和事务和服务层,看看哪一个更便宜……/P> 2。性能:

如果设计正确,在许多情况下,表存储应该比SQLAzure快,因为它没有Sql/非规范化特性,但它可能取决于您将为其编写的查询

在SQLAzure中,您将使用TSQL,但在表存储中,您将使用C#和Linq来查询数据


如果您看到@David在下面的评论,那么如果您使用表存储,您感兴趣的查询将受到限制,因此您也必须了解表存储中的这些限制…

不幸的是,这不是一个真正有效的答案。表存储无法提供OP要求的查询结果,因为它无法进行聚合/计算(如平均值)。这需要24小时的内容扫描和应用程序内计算。或者它需要预先计算,但这会限制您可以执行的查询。我当然做了。我认为您不完全了解表存储。表存储仅支持Linq的一个子集。而且它绝对不提供任何类型的计算,比如24小时以上的平均值。在查询和服务器端处理方面,表存储不是数据库引擎。这是一个键/值存储。如果任何查询需要通过另一个键(日期除外)进行查找,则返回分区/表扫描。如果你仔细看看这个问题,比如“给我看看过去24小时推特的平均情绪得分”,而不是30分钟。看看。您将看到,Linq不支持表存储的
Average
。我知道Linq不支持表存储的Average。但这并不会阻止你在内存中存储你感兴趣的数据,而只是在C#中进行计算。。。它不一定要针对表存储实例……另外:我不明白您从哪里获得定价,尤其是SQL数据库。250GB起价为15美元(S0层),具体取决于所需的DTU。250GB带表存储的本地冗余(7美分/GB)起价为17.50美元。所以,你所记录的是非常误导的。SQL数据库定价:。存储定价:卡尔,没有正确的答案,只有意见。此外,这是一个非常广泛的问题。您只列出了一个示例查询。在决定之前,你真的需要考虑所有的查询场景。此外,它可能有助于将您的数据库选择扩展到各种其他数据库引擎,而不仅仅是表存储(key/value)和SQL Azure(relational)。离题评论,但不久前我查看了Twitter的服务条款,当时禁止将推文存储在云数据库中(例如Azure表存储)。在继续项目之前,您可能需要再次检查他们的TOS。