sql - 通过 CSV 数据导入/提取批量创建用户帐户

标签 sql web-applications azure ssis bulkinsert

各位聪明才智,大家好,

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

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

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

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

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

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

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

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

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

最佳答案

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

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

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

HTH

关于sql - 通过 CSV 数据导入/提取批量创建用户帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13616677/

相关文章:

mysql - 如何删除最后出现的逗号,逗号本身可能不是 SQL 中字符串的最后一个字符

c# - 使用 C# Entity Framework 控制传递到表中的数据类型的方法

javascript - 如何摆脱 Internet Explorer 7 在片段更改时重新加载

asp.net-mvc - 使用 Windows 身份验证登录 Azure Active Directory

mysql - 在多对多关系中选择特定属性

SQL 在排序列中找到第一个大于 X 的值

javascript - 当选择值作为另一个选择的函数动态加载时,如何在不使用 ctrl 键的情况下选择多个值

javascript - 没有 Node 的常规 Web 应用程序中的 Jade Lang

xml - E_RUNTIME_USER STRING TOO BIG xml 解析

c# - 悲观地锁定进程之间的代码