3

我是一名实习生,负责研究一个 azure 项目。
目前我正在为项目的一部分设计架构。

目标是将多个 csv 文件转换为云中的 SQL 数据库。这些 csv 将从该国的随机位置发送并需要进行处理,以便最终可以使用 Web 服务访问数据库。

我对蔚蓝的场景完全陌生,并且一直在自学,但我的脑海里有点模糊。

一些信息:

csv 是小文件,但每天会收到大约 20.000 个,是的,它需要是 SQL 存储,因为我们需要轻松地聚合数据。

什么将在 csv 中并需要存储?
唯一键值(字符串)
消耗值(双精度)
日期时间戳(日期时间/字符串)
质量值(整数)

我想到的架构是:
对云的 Http 请求(云是否需要侦听器服务?)
在处理 csv 之前保存它们的队列服务
sql 驱动器存储(直接导入?还是我需要某种介于两者之间的工作人员角色?)
一个 Web 服务,它将从外部 AOS 或客户端应用程序获取请求,并查询 sqlDB 中的数据。

假设这个问题可以用标准组件解决,还是我需要实现一个 vm 角色,我是否正确?您将如何设置?

任何输入都将不胜感激,因为我真的感到迷失在云端 :)
我希望我对要求有一个清晰的概述......
解释一些你没有完全理解的东西并不容易

4

2 回答 2

3

您根本不需要 VM 角色。这是一个稻草人的想法:

  • 设置一个 Web 服务,让您将 csv 文件向上推送(在具有 svc 的 Web 角色中很容易做到)。让该服务方法将每个 csv 存储在某个特定容器(如“上传”)中的 Azure Blob 中,名称如“guid.csv” - 只需调用 Guid.NewGuid().ToString() 即可即时生成 guid . 完成后,创建一个引用该文件名的队列消息。
  • 在托管您的 svc 的同一角色实例(只需覆盖 Run() )或在单独的辅助角色中的 Run() 方法中,设置一个 while(true) 循环以仅从队列中读取以获取需要导入的 csv,将 blob 读入内存流并转储到磁盘上的临时文件,然后调用本地帮助方法来解析 csv 并调用 SQL 插入。
  • 设置另一个用于检索数据的 Web 服务。同样,这可以托管在相同的 Web 角色中,也可以托管在另一个 Web 角色中。

完全不需要虚拟机角色。

于 2011-04-07T18:01:28.387 回答
0

Is there a reason why you can not just use BCP (Bulk Copy) to import the data directly into SQL Azure? BCP supports CSV files and I suspect you could create a pretty simple process to import the data on a daily basis using this tool. If you do this, make sure you read up on some of the ways that you can optimize the load of the data. This can really make a difference if you have large data sets.

于 2011-04-07T21:53:51.207 回答