项目的 Azure 技术选择

Azure Technology Choice for Project

有很多关于各种 Azure 数据存储风格的信息,但是我想针对我的特定情况征求一些建议。

我正在组建一个宠物项目,以更加熟悉 Azure 技术,尤其是服务 Bus/Event 集线器和数据存储平台。我想要创建的系统非常简单:接受适度的事件负载(不是 IoT 规模),持久化它们,并使聚合数据可用,例如 'User A had N events of type X in the past day/week/month/etc.' 作为报告。

鉴于数据将非常结构化(例如用户、用户组、事件等),并且我将需要聚合功能,这表明关系存储可能是最合适的,尽管更昂贵。

我考虑过的另一种选择是使用诸如流分析之类的方法以近乎实时的方式维护聚合数据,但不确定与更像数据仓库的解决方案相比这是否过大。

任何 suggestions/help 将不胜感激。

约翰

约翰,

Azure SQL 将是一个不错的选择,或者如果事实证明它过于昂贵,则可以在 VM 上定期 SQL 托管。您可以创建一个 Azure 服务总线来保存传入的请求,然后创建具有 1 个或多个辅助角色的竞争使用者来监视和处理消息。每个消费者都可以 运行 SQL 并将数据保存在为调用者创建的新 table 和 "pre-aggregated" 中,或者您可以将信息保存到 Azure BLOB 存储中与您的报告工具相匹配的结构化格式(即 JSON)。聚合信息的 BLOB 存储将最具成本效益,并减轻 SQL.

的压力

另一种方法是 HDInsight,它也可以在批处理模式下聚合信息。我想 SQL/HDInsight 之间的选择取决于基本(非聚合)信息的本机格式。

我同意丹尼尔的观点。 SQL Azure 可能是满足您的关系数据需求的方式。调查更大的流和分析工作负载的另一个选择是 Azure Data Lake (https://azure.microsoft.com/en-us/solutions/data-lake/)