【问题标题】:Architecture for microsoft azure. CSV to SQL微软天蓝色的体系结构。 CSV 到 SQL
【发布时间】:2011-07-31 12:10:02
【问题描述】:

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

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

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

一些信息:

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

csv 中有什么需要存储的内容??
唯一的键值(字符串)
消费价值(双倍)
日期时间戳(日期时间/字符串)
质量值(int)

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

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

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

【问题讨论】:

    标签: csv azure azure-sql-database azure-storage azure-worker-roles


    【解决方案1】:

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

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

    完全不需要虚拟机角色。

    【讨论】:

    • 我意识到我没有提到您的 SQL 会转到 SQL Azure,而不是虚拟机托管的 SQL Server 设置。 SQL Azure 是 SQL Server 的一个重要子集,对于您正在执行的存储类型,使用它应该没有问题。
    • 您好,感谢您的回复!我昨天下午都在考虑一个设置,它接近你在回复中列出的内容。看起来足够坚固,所以我会试一试,看看我是否遇到麻烦。我想知道是否可以跳过 blob 存储并让工作人员角色检索 csv 并将它们直接存储在队列中? (因为 csv 永远不会超过 8kb 最大值)再次,喜欢这里的输入!交易
    • 您“可以”将它们保留在队列中并跳过 blob 存储。但是,这可能会在以后受到限制,特别是如果您想重新检查您的 csv(例如,或者以不同的方式重新处理它们)。如果您坚持使用 blob 技术,您还可以一次读取多个队列消息;如果您将 csv 与消息一起存储,则会限制该功能。
    【解决方案2】:

    为什么不能只使用 BCP(批量复制)将数据直接导入 SQL Azure 有什么原因吗? BCP 支持 CSV 文件,我怀疑您可以使用此工具创建一个非常简单的流程来每天导入数据。如果您这样做,请确保您阅读了optimize the load of the data 的一些方法。如果您拥有大型数据集,这确实会有所作为。

    【讨论】:

    • 感谢您提供出色的链接,它会派上用场的。我不能使用批量复制的原因是因为我不控制发送 csv 的实例。这些是定期发送数据的固定点(对不起,我无法详细说明这一点:))
    猜你喜欢
    • 2018-08-08
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多