我是一名实习生,负责研究 azure 项目。
目前我正在为该项目的一部分设计一个架构。
目标是将多个 csv 文件转换为云中的 SQL 数据库。这些 csv 将从该国家/地区的随机位置发送,需要进行处理,以便最终可以使用网络服务访问数据库。
我对 azure 的场景完全陌生,一直在 self 教育,但我的脑子里有点模糊。
一些信息:
csv 是小文件,但每天会收到大约 20.000 个 是的,它需要是 SQL 存储,因为我们需要轻松聚合数据。
csv 中包含哪些内容并且需要存储?
唯一的键值(字符串)
消费值(双倍)
日期时间戳(日期时间/字符串)
质量值(整数)
我想到的架构是:
向云端发送Http请求(云端需要监听服务吗?)
在处理 csv 之前保存它们的队列服务
sql驱动器存储(直接导入?或者我是否需要在两者之间某种辅助角色?)
一个 Web 服务,将从外部 AOS 或客户端应用程序获取请求,并查询 sqlDB 中的数据。
我是否正确地假设这个问题可以通过标准组件解决,或者我是否需要实现虚拟机角色?您将如何设置?
任何意见都将不胜感激,因为我真的感觉迷失在云端:)
我希望我清楚地概述了要求......
解释你自己不完全理解的事情并不容易
最佳答案
您根本不需要 VM 角色。这是一个稻草人的想法:
- 设置一个 Web 服务,让您可以推送 csv 文件(在具有 svc 的 Web 角色中轻松完成)。让该服务方法将每个 csv 存储在某些特定容器(如“uploads”)的 Azure Blob 中,名称如“guid.csv” - 只需调用 Guid.NewGuid().ToString() 即可动态生成 guid 。完成后,创建引用该文件名的队列消息。
- 在托管 svc 的同一角色实例的 Run() 方法中(只需重写 Run() )或在单独的辅助角色中,设置一个 while(true) 循环以从队列中读取以获取 csv需要导入,将 blob 读入内存流并转储到磁盘上的临时文件,然后调用本地帮助器方法来解析 csv 并调用 SQL 插入。
- 设置另一个 Web 服务来检索数据。同样,它可以托管在同一个网络角色或另一个网络角色中。
完全不需要虚拟机角色。
关于csv - 微软Azure的架构。 CSV 到 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5578391/