问题标签 [ssis-2012]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
848 浏览

sql-server - 为每个 Loop SSIS 处理具有不同结构的文件

一个目录中有 3 个文件,其中两个具有相同的结构,第三个在文件末尾有 3 个额外的列。

是否可以在每个循环容器中使用单个连接导入所有这些文件?如果平面文件连接是基于文件的连接方式 3.

0 投票
2 回答
3324 浏览

ssis - SSIS lookup transform alternatives?

I need to transfer about 11 million rows daily from one database to another. The source table is about a half a billion rows total at this point.

I was using the "get everything since ?" method, using the max in the destination as the ?, but the maintenance of the source is kind of funky. They keep going back to fill holes and my method isn't working.

The standard Lookup transform takes hours to run. Pragmatic's TaskFactory has an Upsert component, but it's not in this project's budget.

Is there a better way than Lookup to lookup?

0 投票
2 回答
1180 浏览

asp.net - SSISDB ASP.NET“用户 'DOMAIN\PCNAME$' 登录失败”

我在 ASP.NET Web 表单中使用 Microsoft.SqlServer.Management.IntegrationServices 来访问 SSISDB 中的 SSIS 项目。在我自己的 PC 上进行本地测试我可以从测试服务器访问该包并且它运行良好。

当我尝试从测试服务器运行站点时,我的问题出现了。同一台测试服务器使用 IIS 7 托管站点,并托管 Sql Server 数据库,该数据库使用集成服务存储包。所以就像我说的,这个包托管在服务器上,当我在我的 PC 上本地运行该站点时,一切正常。

当我在测试中运行站点并尝试访问包时,我得到: System.Data.SqlClient.SqlException (0x80131904): Login failed for user '[DOMAIN]\[PCNAME]$'。

我在连接字符串中使用集成安全性:

尝试连接时出现我的错误。

我尝试使用 Windows 身份验证将 '[DOMAIN]\[PCNAME]$' 添加为 Sql 登录名,并获得我能想到的所有权限。数据库 SSISDB 的用户映射具有 accessadmin、datareader、datawriter、owner、public 和 ssis admin。我知道并非所有这些都需要,但我正在尝试一切。

我去数据库下的SSISDB,给了Connect、Execute和Select的登录权限。

在集成服务目录下,我在 SSISDB 目录下为我的文件夹提供了我的 Windows 用户 ('[DOMAIN]\[PCNAME]$') 登录权限以读取、执行对象和读取对象。

我授予了 Windows 用户读取、修改和执行的 SSISDataTransfer 项目权限。

我没有想法,并认为这可能是一些 IIS 问题。它已安装并设置了 Windows 身份验证。

有人有想法么?我找到了关于如何让代码工作的帖子,但没有关于连接细节的帖子。谢谢!

0 投票
2 回答
4206 浏览

c# - 空 Excel 文件权限问题:SSIS Excel 目标通过 C:\Users\Default 缓冲大型记录集

通过 DTEXEC.EXE 从 Web 应用程序调用 SSIS 包。该包使用文件系统任务来制作 Excel 模板文件的副本以用作 Excel 目标文件。然后,数据流任务将记录从 OLE DB 源发送到 Excel 目标。然后将 Excel 目标文件流式传输回 Web 应用程序用户的浏览器。

当 Web 应用程序池标识是本地管理员帐户时,这可以正常工作。当 Web 应用程序池身份是一个碰巧也以交互方式登录的受限用户时,它也可以工作。

当 Web 应用程序池身份是未同时登录的受限用户时,会遇到问题。仍然正确返回小型 Excel 文件(几百行)。那里没问题。大型 Excel 文件(几万行)返回为空。返回给用户浏览器的流文件中没有行。写入服务器的目标文件也是空的。

SSIS 包没有发现错误,并报告数万条记录通过数据流。这不是 SQL Server 端的权限问题。当用户帐户被赋予 SQL Server 系统管理员时,它仍然无法将任何行写入更大的 Excel 目标文件。

这看起来像是 Windows 端的权限问题,可能涉及将缓冲区写入磁盘,这就是为什么只处理几百行时不会出现问题的原因。

希望可以通过增加DefaultBufferMaxRows (10,000 rows) 和 DefaultBufferSize (10 MB)的数据流任务设置来避免磁盘缓冲。但是,不幸的是,这不起作用。

这是一个已解决的问题,发布以帮助可能遇到类似问题的任何人。

0 投票
1 回答
516 浏览

deployment - 在具有不同参数的两个单独的计划上运行相同的 SSIS 包

我有一个(相对简单的)包,它必须在两个相同的数据库上运行。(A+B)

但是对于数据库 A,它必须每天运行到 10 月 3 日,而对于数据库 B,它必须每隔一天运行一次,直到 6 月 1 日。

现在我的想法是创建一个具有参数并按两个计划运行的包。在一个计划中,参数将导致包从数据库 A 中读取,在另一个计划中,它将导致包从数据库 B 中读取。

这听起来很合乎逻辑,甚至并不过分复杂。但我不确定如何实际实施。

部署包两次?每个部署都有自己的时间表和参数设置?或者是否可以按计划更改参数?

你会怎么做?

谢谢你和我一起思考,Henro

0 投票
3 回答
8647 浏览

ssis - SSIS 数据流任务:内存不足异常

这是我的情况:我包含了我能想到的尽可能多的细节,但如果您需要更多信息,请告诉我。我已经在网上搜索了一个小时左右,但没有找到任何可以解决我的具体问题的帖子,所以任何帮助(甚至是链接)都将不胜感激。

我正在编写一个数据流任务来对我的数据源执行 SCD 操作(使用任务工厂的 SCD 组件)。我正在通过极慢的连接从一个网络中的 Oracle 源加载到我的新服务器上的 SQL 源。

SCD 操作要求我从源和目标中提取数据,并比较两者。但是,这两个连接的相对速度给我带来了问题:SQL 源快了将近 10 倍,所以当旧服务器传输 1 时,数据流将从我的新服务器中提取 800 万条记录百万。

由于两个源汇集在一起​​并流经同一个 SCD 组件,当我达到 8m/1m 标记时,仍有 7m 行等待来自 SQL 源。据我了解,这 7m 行正在内存中等待通过 SCD 进行处理。

我收到 SSIS 调试主机已停止工作的错误消息,并且系统无法向缓冲区写入更多新行。这些消息位于不同的组件和步骤上(我有大约 30 个表具有相同的情况),所以我非常有信心这是我可用内存的一般问题,而不是我包中代码的特定问题。此外,如果我运行单个表甚至表组,该包将始终成功 - 它仅在尝试并行加载某些表时失败。

到目前为止采取的步骤:

1) 将正在加载的表拆分到多个顺序容器/子包中,以减轻内存压力:这主要是有效的,但会将整体执行速度减慢到极长的时间。此外,有些表在达到一定限制时仍然会抛出 SSIS Debug Host 错误(下)。

2)添加一个脚本组件来计算源上的哈希值(如本文所述),然后我可以使用它来确定记录是否已更改,而不是比较每一列。这也意味着我不需要从目标表中提取所有列,我认为这将有助于解决内存短缺问题。

继续存在的问题:

一旦行数不平衡达到极端水平,我仍然会崩溃,即使只从源和目标中提取几个(6 个日期时间,3 个整数,2 个数字(38,0))列。这发生在没有上述哈希值的表上。故障点的数据流屏幕截图如下:注意行数。 在此处输入图像描述

关于下一步做什么的想法: 我想知道是否有办法减慢 SQL 源的速度,使其以与另一个相同的速度提取记录?任何想法如何实现这一点?

完整的错误描述: 1) SSIS 调试主机已停止工作(弹出窗口)。

2) SSIS 错误信息:

系统详情:

视窗服务器 2012

安装内存(RAM):64.0 GB

系统类型:64 位操作系统,基于 x64 的处理器

SSIS 2012 从 Visual Studio 环境执行(通过 SQL Server 代理按计划作业运行时也会出现问题

0 投票
1 回答
710 浏览

c#-4.0 - 派生列未映射到输出列?我能怎么做?

包成功生成。但派生列显示错误波纹管 - 验证错误。这是一个编程的 DataFlowTask 派生列 [2]:尝试解析表达式“Empid”失败并返回错误代码 0xC00470A2。无法解析表达式。它可能包含无效元素或格式不正确。也可能存在内存不足错误。MyProgrammedDataflowTaskWithDerivedColumn.dtsx

下面是我的代码-

// 创建一个应用程序 Application app = new Application(); // 创建一个包 Package pkg = new Package(); //设置一些属性 pkg.Name = @"MyProgrammedDataflowTaskWithDerivedColumn"; //添加到数据库的连接 AdventureWorksLT2008R2 ConnectionManager ConnMgrAdvent = pkg.Connections.Add("OLEDB"); ConnMgrAdvent.ConnectionString = "数据源=412-1682;初始目录=Empdb;提供者=SQLNCLI11.1;集成安全=SSPI;自动翻译=False;"; ConnMgrAdvent.Name = @"AdventureWorks2008R2"; ConnMgrAdvent.Description = @"OLEDB 源的 SSIS 连接管理器"; //添加到数据库的连接 Import_DB ConnectionManager ConnMgrImport_DB = pkg.Connections.Add("OLEDB"); ConnMgrImport_DB.ConnectionString = "数据源=412-1682;初始目录=stgEmpdb;提供者=SQLNCLI11.1;集成安全=SSPI;自动翻译=False;"; ConnMgrImport_DB.Name = @"Import_DB"; ConnMgrImport_DB.Description = @"OLEDB 源的 SSIS 连接管理器";

0 投票
2 回答
2585 浏览

visual-studio-2012 - 无法让 Sql Server 商业智能开发工作室工具和模板显示在 Visual Studio 2012 中

我已经尝试了所有建议的方法来安装 SQl Server 2012 (ssdtbi) 的商业智能和安装了服务包的 Visual Studio 2012 (ssdt),并且无法在任一应用程序中显示商业智能开发工作室工具或模板。我已经卸载了 VS 2013,我已经卸载了 VS 2012 并重新安装了带有服务包的 VS 2012,每次通过控制面板删除任何 SSDTBI 和 SSDT,然后安装 2013 年 3 月的版本后,我仍然无法显示模板。我错过了什么?我现在可以在哪里寻找线索?没有显示错误消息,只有 VS 中没有模板,当您在 Sql Server 2012 下单击 Visual Studio 的 SQL SERVER Data Tools 时,当然会启动 VS 2012 并且没有模板。我们正在运行 x64 机器,目前使用的是 Windows 7。请有人给我希望。谢谢。

0 投票
1 回答
1064 浏览

windows - 从 SSIS 包启动 VPN?

使用 SSIS,我需要从我的网络/域之外的服务器检索数据。我只能通过 VPN 访问该服务器。我创建了 2 个包:

  1. StartVPN - 使用一些 VB 这个包启动 VPN。效果很好。:)
  2. 导入文件 - 这个包是从 StartVPN 调用的,应该导入一些数据。

当我在 VPN 已经启动的情况下直接运行包 2 时,这个包运行良好。当我从包 1 运行包 2 时,没有启动 VPN 的任务,但手动启动了 VPN,这个包运行良好。

但是,如果我从包 1 调用此包,则会失败并出现错误:对连接管理器“MyConnection”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。VPN是否已经启动并不重要。

如何仅在包执行期间运行 VPN 运行包 2?

0 投票
1 回答
123 浏览

ssis - For Loop 容器在循环完成之前触发后的成功约束

我在另一个 For 循环中有一个 For 循环。内部的似乎仍在运行时完成。“日志结束历史”脚本显示一个绿色刻度线,而内部循环内的项目继续闪烁微调器。

在此处输入图像描述

关于如何使其表现的任何建议?