4

嗨,所有聪明的头脑,

我目前正在研究一个相当复杂的问题,我很想进行一些头脑风暴。我有一个在 Windows Azure 中运行的 C# .NET Web 应用程序,使用 SQL Azure 作为主数据存储。

每次新用户创建帐户时,他们只需要提供姓名、电子邮件和密码即可。创建帐户后,我们将核心成员数据存储到 SQL 数据库中,所有辅助操作(例如发送电子邮件、建立社交关系、创建个人资料资产等)都被推送到 Azure Queue 并在以后被提取/处理。

现在我有几个 CSV 文件,其中包含需要在系统上创建的数百个新用户(姓名和电子邮件)。我正在考虑通过分成两部分来实现自动化:

第 1 部分:编写一个服务,获取 CSV 文件,解析姓名和电子邮件,并将此数据保存在存储 A 中

  • 该服务应该足够灵活以获取不同格式的文件
  • 该服务实际上并不创建用户帐户,因此这与我们应用程序的业务逻辑层解耦
  • 存储的选择不必是 SQL,也可以是非关系数据存储(例如 Azure Tables)
  • 该服务可能是我们应用程序平台之外的第三方解决方案 - 因此它对所有建议开放

第 2 部分:编写一个定期通过存储 A 并从那里创建用户帐户的进程

  • 这是在我们应用程序的“业务逻辑层”
  • 每当成功创建帐户时,将存储 A 中的特定记录标记为已处理
  • 如果用户帐户创建失败,这需要重试

我想知道是否有人有从文件导入批量“用户”的经验,以及我的建议是否听起来像一个不错的解决方案。

请注意,第 1 部分可能是我们应用程序平台之外的第三方解决方案,因此它必须运行的语言/平台没有限制。我们正在考虑使用BULK INSERTMicrosoft SQL Server Integration Services 2008 ( SSIS),它将数据从 CSV 提取并加载到 SQL 数据存储中。如果有人使用过这些并且可以提供一些将不胜感激的指针.. 提前非常感谢!

4

1 回答 1

3

如果我理解正确,您已经有一个从队列中提取消息并执行其核心逻辑来创建用户资产/等的过程。那么,听起来您应该只自动解析 CSV 文件并将内容转储到队列消息中?这听起来像是一项微不足道的任务。

您也可以通过队列消息(到不同的队列)启动处理 CSV 文件的过程。该消息将包含 CSV 文件的位置,并且在 Azure 中运行的 Worker 角色将获取它(如果通常的负载不高,它可能与处理新用户的角色相同)。

由于您正在使用队列,因此该过程是可重试的

高温高压

于 2012-11-29T05:17:18.570 回答