C# 体系结构:基于集合的数据管道挑战
我正在开发一个数据库驱动的web应用程序(ASP.NET,SQL 2008),它接收来自不同来源的结构化XML数据。数据类似于一个集合,通常需要“清理”,因此它以XML形式通过数据库,并转换为结果集进行显示 我希望捕获生成的“干净”结果,并将其发送到存档数据库以将其持久化到磁盘 到目前为止,我考虑的方案有:C# 体系结构:基于集合的数据管道挑战,c#,asp.net,sql,xml,C#,Asp.net,Sql,Xml,我正在开发一个数据库驱动的web应用程序(ASP.NET,SQL 2008),它接收来自不同来源的结构化XML数据。数据类似于一个集合,通常需要“清理”,因此它以XML形式通过数据库,并转换为结果集进行显示 我希望捕获生成的“干净”结果,并将其发送到存档数据库以将其持久化到磁盘 到目前为止,我考虑的方案有: 将整个“干净”结果集序列化为对象(XML/.NET序列化),并将其发送回存档数据库 优点:易于重复-可以分析/捕获存档计算机上的数据库调用,并重新运行它们以识别任何问题 缺点:版本控制可
- 将整个“干净”结果集序列化为对象(XML/.NET序列化),并将其发送回存档数据库
- 优点:易于重复-可以分析/捕获存档计算机上的数据库调用,并重新运行它们以识别任何问题
- 缺点:版本控制可能很棘手
- 将清理后的结果存储在一个表中,并定期将该表中的新记录复制到存档计算机
- 优点:易于构建-快速计划作业
- 缺点:在存档机器上很难重新调用;需要保留输入表的内容
是否有其他选择,是否有人有过类似情况的经验?我成功地使用了这两种情况,我所做的取决于系统 保存原始Xml: 当我处理非结构化数据时,或者当我们处理消息传递系统时,并且希望跟踪消息时,我倾向于保存原始Xml。例如,我处理的一个应用程序从已部署的windows客户端收集消息,我们会将消息转储到关系结构中,然后将它们卷到仓库中。当我接手这个项目时,我们开始存储即将到来的原始xml,因为它确实允许我们重放,并且能够准确地看到将要进入系统的内容 关系数据 如果我需要对数据进行任何报告聚合,我会将数据分解并存储到常规表中。我知道可以在数据库中查询xml数据,但我尽量避免这样做。我可能仍然会保存原始消息,以备重放和故障排除 保存二进制对象 我所做的最后一件事是保存一个完整的序列化二进制对象。当对象图非常复杂,并且对象之间的关系非常重要时,我发现这很方便。它确实有一个巨大的缺点,那就是版本控制;但是,我已经成功地管理了这个版本,即使是名称空间更改、对象继承人权限更改等。如果您需要访问SQL中的数据,这不是一个好办法