从CSV数据导入/提取中批量创建用户帐户

时间:2012-11-29 00:08:55

标签: sql web-applications azure ssis bulkinsert

大家都很聪明,

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

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

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

第1部分:编写一个提取CSV文件的服务,解析出名称和信息。发送电子邮件,并将此数据保存在存储空间

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

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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

HTH