gpt4 book ai didi

ssis - DTS/SSIS 与 Informatica Power Center

转载 作者:行者123 更新时间:2023-12-01 11:07:39 29 4
gpt4 key购买 nike

我敢肯定,这是一个非常模糊的问题,很难回答,但如果您能提供有关该主题的任何一般性想法,我将不胜感激。

让我简要介绍一下背景。

十年前,我们曾经编写数据加载,从遗留应用程序读取输入平面文件,并将它们加载到我们的数据集市中。最初,我们的加载程序是用 VB6 编写的,并在平面文件和每条记录中游标,执行以下一般过程:

1) 查找记录。如果找到,更新它2) 否则插入新记录

然后我们最终更改此过程以使用 SQL Server 对临时表中的平面文件进行 DTS,然后我们将对临时表与目标生产表执行大规模集基连接,从临时表中获取数据并使用它来更新目标表。插入了未加入的记录。

这是流程的简化,但本质上,流程从迭代方法变为“基于集合”,不再一次执行更新 1 条记录。结果,我们获得了巨大的性能提升。

然后我们在 DLL 中创建了我认为是一组功能强大的共享函数,以使用这种方法执行常见的功能/更新模式。它极大地抽象了开发并真正缩短了开发时间。

然后 ETL 工具 Informatica PowerCenter 应运而生,管理人员希望对该工具进行标准化并重写使用 DTS 的旧 VB 负载。

我听说 PowerCenter 会迭代处理记录,但我知道它确实做了一些优化技巧,所以我很好奇 Informatica 的性能如何。

有没有人有使用 DTS 或 SSIS 的经验,能够根据直觉预测哪个通常表现更好?

最佳答案

我加入了一个同时使用 Informatica PowerCenter 8.1.1 的组织。虽然我不能代表一般的 Informatica 设置,但我可以说 Informatica 在这家公司的效率极低。主要问题是 Informatica 在后端生成了一些非常糟糕的 SQL 代码。当我使用探查器观察它在做什么并查看文本日志时,它为需要插入/更新/删除的每一行生成了单独的插入、更新和删除语句。我没有尝试修复 Informatica 实现,而是将其替换为 SSIS 2008。

我在使用 Informatica 时遇到的另一个问题是管理并行化。在 DTS 和 SSIS 中,并行化任务非常简单——不定义优先约束,您的任务将并行运行。在 Informatica 中,您定义一个起点,然后定义用于并行运行流程的分支。我无法找到一种方法来限制并行进程的数量,除非我通过链接工作集或任务来明确定义它们。

就我而言,SSIS 的性能大大优于 Informatica。我们使用 Informatica 的加载过程大约需要 8-12 个小时。我们使用 SSIS 和 SQL Server 代理作业的加载过程大约需要 1-2 小时。我敢肯定,如果我们正确调整 Informatica,我们可以将负载减少到 3-4 小时,但我仍然认为它不会做得更好。

关于ssis - DTS/SSIS 与 Informatica Power Center,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3693920/

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