Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS中的ETL过程-最佳实践_Sql Server_Ssis_Etl - Fatal编程技术网

Sql server SSIS中的ETL过程-最佳实践

Sql server SSIS中的ETL过程-最佳实践,sql-server,ssis,etl,Sql Server,Ssis,Etl,我试图找出在SSIS中构建新ETL流程的最佳实践 我在sql server中有一个表源,我想对它进行一些转换、添加列、联接等 我的问题是,我应该创建一个包含所有转换的视图/SP,还是使用SSIS中的“派生列”和“查找”进行连接和转换 我问的是性能/维护方面 我认为性能应该是一样的,但是它的维护是我最关心的 谢谢你的帮助 我的经验法则是,您可以在TSQL中执行的任何操作都应该在TSQL中执行,而不是在SSIS中执行。它会表现得更快。数据流中的查找肯定比TSQL中的连接慢。我的经验是,在TSQL中可

我试图找出在SSIS中构建新ETL流程的最佳实践

我在sql server中有一个表源,我想对它进行一些转换、添加列、联接等

我的问题是,我应该创建一个包含所有转换的视图/SP,还是使用SSIS中的“派生列”和“查找”进行连接和转换

我问的是性能/维护方面

我认为性能应该是一样的,但是它的维护是我最关心的


谢谢你的帮助

我的经验法则是,您可以在TSQL中执行的任何操作都应该在TSQL中执行,而不是在SSIS中执行。它会表现得更快。数据流中的查找肯定比TSQL中的连接慢。

我的经验是,在TSQL中可以做的任何事情,都应该在TSQL中而不是在SSI中进行。它会表现得更快。数据流中的查找速度肯定比TSQL中的连接速度慢。

这可能是一个优先事项。我发现ETL并没有真正的“最佳”方式;这对你和你的生意都有好处。在我目前工作的地方,我发现英语教学过程最有效;使用SSIS以原始形式提取和加载数据;然后使用SQL Server将该数据转换为生产需求。你怎么走完全取决于你自己,我明白了。因此,为了确保这一点,您可以在SSIS中创建ETL过程,但需要在SQL Server中进行数据转换。SSIS中的ETL调用您创建的SP?这是一个选项是的,但是,您可以在数据流中的SSIS中进行转换,然后加载。正如我所说,没有“最佳实践”,我必须维护SSIS ETL包的两种“风格”。在我看来,将转换保存在SPs中要容易得多,而且更灵活,而且您可以将所有SQL保存在Visual Studio数据库项目中,而不是嵌入SSI中。我还做了一些噩梦般的查找转换来处理内存消耗和生产失败问题,这只能通过删除和重新开发数据源中的SQL连接来解决。在这种情况下,我建议您留在数据库中(使用存储过程),因为您已经在表中“加载”了数据。当您有外部源时,SSI变得更加有用。我个人喜欢ETL vs ELT(对我来说,交给别人比较容易),这可能会成为一件优先事项。我发现ETL并没有真正的“最佳”方式;这对你和你的生意都有好处。在我目前工作的地方,我发现英语教学过程最有效;使用SSIS以原始形式提取和加载数据;然后使用SQL Server将该数据转换为生产需求。你怎么走完全取决于你自己,我明白了。因此,为了确保这一点,您可以在SSIS中创建ETL过程,但需要在SQL Server中进行数据转换。SSIS中的ETL调用您创建的SP?这是一个选项是的,但是,您可以在数据流中的SSIS中进行转换,然后加载。正如我所说,没有“最佳实践”,我必须维护SSIS ETL包的两种“风格”。在我看来,将转换保存在SPs中要容易得多,而且更灵活,而且您可以将所有SQL保存在Visual Studio数据库项目中,而不是嵌入SSI中。我还做了一些噩梦般的查找转换来处理内存消耗和生产失败问题,这只能通过删除和重新开发数据源中的SQL连接来解决。在这种情况下,我建议您留在数据库中(使用存储过程),因为您已经在表中“加载”了数据。当您有外部源时,SSI变得更加有用。我个人喜欢ETL vs ELT(对我来说更容易交给别人)我同意你的观点,如果你考虑使用链接服务器和使用SSIS的合并脚本,我会更喜欢SSIS。连接到链接的服务器或从另一台服务器导入数据,我更喜欢使用SSIS。是的,我确实假设所有TSQL操作都发生在同一台服务器上。如果它们不是同一个服务器,那么使用SSIS。我部分同意您的观点,如果考虑链接服务器与使用SSIS的合并脚本,我将更喜欢SSIS。连接到链接的服务器或从另一台服务器导入数据,我更喜欢使用SSIS。是的,我确实假设所有TSQL操作都发生在同一台服务器上。如果它们不是同一台服务器,则使用SSI。