gpt4 book ai didi

xml - 我如何构建这个使用 SSIS、XML 和 BizTalk 技术的项目?

转载 作者:行者123 更新时间:2023-12-04 06:18:23 24 4
gpt4 key购买 nike

我正在处理一个项目来处理三个文件......两个 CSV 和一个 XML。正在使用 BizTalk 将这些文件从文件共享移动到 SQL Server 数据库表。 xml 文件正在转换为与使用 SSIS 中的 C# 组件的两个平面文件相同的平面文件格式。然后,这些平面文件由 SSIS 包处理。 SSIS 转换中有很多业务逻辑。 SSIS 包还使用链接服务器进行多次查找。所有查找和转换都是逐行完成的(这很慢)。此外,根据导致错误的业务对象(即 BusObj1_error、BusObj2_error、BusObj3_error),发生的任何错误都放在单独的数据库表中。
基本上,我希望有人可以提出一个更好的架构来提高性能,允许可扩展性和灵活性,并允许许多开发人员作为一个团队在相同的功能块上工作。
例如。
- 将验证规则放在数据库中而不是硬编码到 SSIS 中。
- 不使用不同的错误表,而是使用带有 errorTypeId FK 到 ErrorType 表的单个错误表。
- 从 SSIS C# 迁移所有转换,以便多个开发人员可以同时处理不同的业务逻辑类。

谢谢

最佳答案

我对 BizTalk 一无所知。所以,我不知道它能做什么或不能做什么。关于 SSIS,我的建议如下:

  • 如果您在脚本任务/脚本组件中嵌入了大量业务逻辑代码。我建议您创建一个 C# 类库项目并在 GAC 中注册 DLL 以在 SSIS 包中引用它。使 DLL 通用,以便在 SSIS 包中实现它所需的代码很少。通过这种方式,您还可以重用逻辑。
  • 关于使用链接服务器的查找,我希望我理解正确。您是说您的链接服务器指向其他实例并且您的查找指向这些链接服务器?如果数据库在 SQL Server 实例上,为什么不创建一个直接指向数据库的连接字符串并进行查找?这将大大加快速度。
  • 您是否在包中使用了大量 OLE DB 命令转换?如果是直接插入,请尝试使用 OLE DB Destination 以加快速度。
  • 看看这个 SO 答案 How can I load a large flat file into a database table using SSIS?我已经解释了如何将行转换拆分到多个目的地以加快流程。
  • 由于您正在编写错误自定义设计的数据库,我认为最好有一个标题详细信息表结构来存储错误消息,而不必创建多个错误表。我更喜欢让它更通用,以便逻辑可以适应 future 的范围变化。

  • 希望能给你一些想法。

    编辑 1:

    我有一种感觉,您会说查找数据库是 DB2。尽管如此,链接服务器可能会减慢包的速度。查找转换支持直接查询 DB2 数据库以及 SQL Server 和 Oracle ( MSDN )。您可以避免通过链接服务器查找。

    将 C# 类库项目编译为 dll 后,您也可以从 VB.NET 中引用它。只要您的 DLL 面向 .NET Framework 2.0,我认为您应该善于在 SSIS 2005 中引用它。

    此外,根据 .NET 代码中嵌入的逻辑,还有其他改进方法。该逻辑是否可以写入存储过程?在这种情况下,将数据加载到暂存表中,运行一个存储过程,将逻辑应用于暂存数据,然后将数据传输到目标表。

    关于xml - 我如何构建这个使用 SSIS、XML 和 BizTalk 技术的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928076/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com