问题标签 [ssis-2016]
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.
sql-server - 如何从外部服务 (WF) 执行 SSISDB
我们将 SSIS 包部署到 SSISDB:我们可以从 SSMS 执行(同时提供参数输入),以及在 TSQL 中编写此执行的脚本。我们可以为 SSISDB 运行 SSMS 标准报告以查看进度和日志,我们可以查询 SSISDB.catalog.* 视图以获得相同的结果。
但是我有一个对 SSISDB 进行编排的请求,不是来自 SQL 代理,而是来自管理多个 Web 服务的外部 Windows Workflow Foundation (WF)。
在面向服务的体系结构中调用 SSISDB 包的可能(和最佳)方法是什么?
例如,编写一个 rest-api 是否是一个想法,它可以将参数传递给 ssis-packages,执行这些,并返回带有包状态/结果的响应。还是我走错了路?
ssis - 将数据从 SQL Server 插入 DB2 时出错
我在 SSIS 中做了一个简单的 DataFlow 任务,将数据 rfom SQL Server 移动到 AS400 上的 DB2。连接正常。我能够查看和映射列。包编译找到。但是,我收到了运行时消息。那是在“[SSIS.Pipeline] 信息:执行阶段开始”之后。
[OLE DB 目标 [2]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E21。OLE DB 记录可用。来源:“Microsoft DB2 OLE DB 提供程序”Hresult:0x80040E37 描述:“未找到 OPERA 类型 *N 中的 SYSCOLUMNS?TABLE。SQLSTATE:42704,SQLCODE:-204”。
[OLE DB 目标 [2]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“OLE DB Destination.Inputs[OLE DB Destination Input]”失败,因为发生错误代码 0xC020907B,并且“OLE DB Destination.Inputs[OLE DB Destination Input]”上的错误行处置指定错误时失败。指定组件的指定对象发生错误。
在此之前可能会发布错误消息,其中包含有关失败的更多信息。[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。
处理输入“OLE DB 目标输入”(15) 时,组件“OLE DB 目标”(2) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。
在此之前可能会发布错误消息,其中包含有关失败的更多信息。[OLE DB 源 [115]] 错误:尝试将行添加到数据流任务缓冲区失败,错误代码为 0xC0047020。
[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。OLE DB 源上的 PrimeOutput 方法返回错误代码 0xC02020C4。
当管道引擎调用 PrimeOutput() 时,组件返回了失败代码。失败代码的含义由组件定义,但错误是致命的并且管道停止执行。
在此之前可能会发布错误消息,其中包含有关失败的更多信息。
谁能告诉我出了什么问题?如何解决这个问题?谢谢。
sql - 如何在 SSIS 包的拆分任务中使用 IN?
我需要根据字符串比较来拆分 ssis 的数据流任务中的数据流。
例如,在拆分任务中,我使用的代码"ISNULL(FINDSTRING("a,b,c,d",a,1))"
将返回 true(因为 findstring 函数在这种情况下返回 1)并且它始终为 true,因为即使我使用"ISNULL(FINDSTRING("a,b,c,d",e,1))"
findstring 函数也返回 0....
我需要拆分任务中的一些函数,它比较两个字符串并返回真/假,并根据输出拆分数据流......
任何建议都非常感谢。谢谢
sql-server - 程序集重定向不适用于 SSIS 脚本任务
我们要求某些 SSIS 包需要在多个 SQL Server 版本(2014 和 2016)上运行,而我们无需维护 2 个版本的代码库。
我已经构建了一个包装 C# 控制台应用程序,它在配置中具有程序集重定向(如下所列),然后它调用 Package.Execute 方法来执行 DTSX 文件。
我收到以下错误,它告诉我机器上找到的最新版本的 Microsoft.SqlServer.ScriptTask 程序集正在加载。该机器目前有 v12、13 和 14 组件。而且我需要使用 v13,因为我的目标是 SQL Server 2016。
任何想法为什么会这样做以及我如何正确“解决”它?
错误:
CS1705 - 程序集 'Microsoft.SqlServer.ScriptTask, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' 使用 'Microsoft.SqlServer.ManagedDTS, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'版本比引用的程序集 'Microsoft.SqlServer.ManagedDTS, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'
在控制台应用程序配置中重定向:
sql-server - 相同的 SSIS ETL 产品(包)能否适用于 SQL Server 2014 和 2016 的 SSIS?
我们正在 SSIS 中构建 ETL 产品。我们的许多 SSIS 包都有用 C# 脚本编写的脚本任务,其中包含对 Microsoft.SqlServer.ScriptTask、Microsoft.SqlServer.ManagedDTS 等的程序集引用。
我们的一些客户可能正在使用旧版本的 SQL (2014),而一些客户可能会升级到 2016。
在这种情况下,您可以向使用新旧 SQL Server 版本的两组客户发布较新的产品版本的行业标准和最佳实践是什么?
有什么方法可以同时支持 SQL Server 2014 和 2016,而无需维护 2 个代码库?
sql-server - SQL server2016/visual studio 2015 上的 SSIS OLEDB.12.0 问题
我面临一个关于 SSIS 导入 Excel 文件的问题。
当我使用 Visual Studio 2015 使用 AccessDatabaseEngine(32 位)开发和运行 SSIS 时,它可以工作。
当我在 SQL Server 2016 上使用 Task-->import 并选择带有 AccessDatabaseEngine(32 位)的 excel 2007-2010(xlsx)时,它也可以工作。
但是,当我在 SQL Server 上的 SSISDB 目录下运行 SSIS 包时,使用 AccessDatabaseEngine(32 位)显示以下错误时我不起作用:
请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.12.0 未注册。如果未安装 64 位驱动程序,请在 32 位模式下运行该软件包。错误代码:0x00000000。OLE DB 记录可用。来源:“Microsoft OLE DB 服务组件”Hresult:0x80040154 描述:“类未注册
之后,我尝试卸载 AccessDatabaseEngine(32 位)并安装 AccessDatabaseEngine(64 位),然后当我在 SSIDDB 目录下运行 SSIS 包时它可以工作,但是当我使用 Visual Studio 运行或使用 Task- 运行时我不起作用-> 在 SQL Server 上导入。
您能否建议解决此问题的最佳解决方案?
谢谢
sql-server - 在没有 SQL Server 集成服务的情况下运行 SSIS 包
我们可以在没有集成服务的情况下运行 SSIS 包吗?如果是,那么步骤是什么?如果否,那么最低要求是什么。
问题陈述如下:
我正在使用 SQL Azure 数据库来存储数据。我还有 Azure VM,我需要从中安排 SSIS 包。在此 Azure VM 中,我们没有安装集成服务。我的方法是使用 Windows 调度程序中的批处理文件来调度 SSIS 包。
我已经浏览了有关此的各种主题和帖子,但没有得到正确的答案。
sql-server - 在服务器级别禁用 SSIS 包的并行执行
谁能建议是否有办法在服务器级别禁用或限制 SSIS 包的并行执行?
我有一个 SSIS 项目,其中包含来自多个数据源的大量包。我的开发和生产环境具有足够高的硬件规格,可以一次执行所有包并让它们运行完成工作正常。但是,我的测试服务器的规格要低得多,并且运行所有包会导致 CPU 最大化,并且一些包会意外终止。
更新:
关于场景的更多细节。我正在开发一个数据仓库,目前正在构建暂存层。我有 50 多个表(并且还在增长)和 50 多个 dtsx 包,每个包填充一个表。数据源包括跨多个本地服务器的 MSSQL、MySQL、文本文件和 MDB。
这些包从 VS2015 项目部署到 SQL 服务器,所有包都通过脚本排队等待同时执行。在对包进行排队后,SQL Server 将 CPU 持续保持在 100%,从而导致与数据源的连接超时,有时包意外终止。
向测试服务器添加更多硬件不是一种选择,也不能将任务组合在更少的包中以利用包级的最大并发性。
我想限制 SQL Server 尝试在服务器级别并行运行的程序包数量。将 SQL Server 的最大并行度从 0 修改为 1 似乎已经解决了这个问题。
sql-server - 将 SSIS 2016 包(项目部署模型)部署到文件系统
处理将 SSIS 2008 项目迁移到部署到文件服务器的 2016 的项目。目前在文件服务器上有包,并且更喜欢保持这种方式。我知道自 2012 年以来就引入了项目部署模型。
问题:
- 我可以将迁移的项目更改为项目部署模型并仍然部署到文件系统吗?更改为项目部署模型是最佳实践吗?
- 网上查了一下,只能找到关于如何部署到SSISDB(Catalogue)的教程。部署到文件系统是否仍与以前的版本相同,即。构建项目 > SSIS 在项目目录中创建清单文件 > 打开清单文件进行部署?
sql-server - 运行脚本以列出每个控件使用的连接管理器
背景
从 SSIS2008 迁移到 2016。使用 SSDT2015
问题
是否有脚本或任何自动化方法可以快速列出项目中所有控件(在控制流和数据流中)使用的连接管理器?目前我正在打开每个控件以识别连接管理器。