我的任务是为应用程序构建原型。我还没有任何代码,因为我提出的解决方案概念充其量看起来很臭......
问题:
该解决方案由各种 Azure 项目组成,这些项目对存储在 Azure SQL db-s 中的大量数据进行处理。几乎每个发生的操作都会在 blob 存储中创建一个 gzip 压缩的日志文件。所以这是每个日志条目一个 .gz 文件。
我们还应该有一个小型桌面 (WPF) 应用程序,它应该能够读取、过滤和排序这些日志文件。
我对如何完成日志记录的影响绝对为 0,因此这是无法更改以解决此问题的东西。
我提出的可能的解决方案(概念上):
1:
- 连接到 blob 存储
- 打开容器
- 读取/下载 blob(应用过滤器)
- 解压 .gz 文件
- 读取和显示
这样做的问题是,根据过滤器的不同,这可能意味着要下载大量数据(速度很慢)和处理(也不会很快速)。我真的看不出这是一个可用的应用程序。
2:
- 创建一个将运行 WCF 或 REST 服务的 Web 角色
- 该服务将获取过滤器参数和其他内容并返回包含数据的单个 xml/json 文件,处理将在云端完成
使用这种方法,如果有很多文件,我会在解压缩这些文件时遇到问题(它会占用运行服务的存储/计算实例的额外空间)。
编辑:我所说的过滤器的意思是按日期和严重性(信息、警告、错误)限制结果。.gz 文件保存在一个结构中,这使得这很容易,我不会通过查看文件本身来过滤。
3:
- 我不知道的其他一些优雅而简单的解决方案
我还需要某种方法让应用程序实时更新显示的日志,我想这需要通过对 blob 存储/服务的重复请求来完成。
这不是那些“给我代码”的问题之一。我正在寻找有关最佳实践的建议,或适用于类似问题的类似解决方案。我也知道这可能是那些“没有一个正确答案”的问题之一,因为人们有不同的解决问题的方法,但我有一些时间来构建一个原型,所以我会尝试不同的东西,我会选择正确的答案,这将是一个显示有效解决方案的解决方案,或者是引导我朝着正确方向前进的解决方案,即使在我实际构建某些东西并对其进行测试之前确实需要一些时间。