问题标签 [ssis]

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 投票
2 回答
217 浏览

sql-server - 请批评设计

我想从位于欧洲和亚洲的不同数据服务器收集数据。而不是运行会阻塞海底网络的普通数据查询任务,我正在考虑在本地站点为我提供的几台机器。

我正在考虑设计主包,以便我可以:

  1. 运行远程设置任务
  2. 使用 psexec dtexec 在本地启动数据收集包 ...
  3. 获取本地存储在多个原始文件中的数据(每种数据类型 1 个)
  4. 拉上拉链并拉回
  5. 解压并批量上传到本地服务器

数据收集是通过自定义脚本源处理的,因为数据可以通过一个奇怪的类库获得。

任务可能会意外失败。如果成功捕获了特定类型的数据而其他特定位置的数据失败,我不想再次运行它。

如果可能的话,我怎样才能简化这个设计并使它更健壮?

0 投票
2 回答
1120 浏览

ssis - SSIS package works with windows account, fails with sqlserver sa account

Having some SSIS permissions issue.

I am calling the SSIS package in my .net console application with:

It is working when manually running it using the windows accout, but fails with the above call in my console application.

Shouldn't it work with the sql server sa account?

0 投票
2 回答
2188 浏览

sql - 在 ExecuteSQL 任务中访问“全局”变量

我有一个 SSIS 包,它执行以下操作: 从服务器表中选择连接字符串。连接字符串或者是服务器的名称以及域(即 Dalin.myhouse.com),或者是服务器的直接 IP。

该包遍历每个连接字符串并填充定义的“全局”变量。此变量是在变量设计器中创建的。对于每个连接字符串,包将检索有关服务器的信息。

我遇到的问题是,当您将服务器 IP 添加到列表时,当时可能不知道“友好名称”,所以我只会在连接字符串列和友好名称列中都有服务器 IP桌子。我想在迭代结束后更新该表中服务器条目的友好名称列,以便使用 SERVERPROPERTY('Servername') 从服务器中提取服务器名称

为此,我想使用带有以下代码的 ExecuteSQL 任务:

前面的代码使用到 myServers 表所在的服务器的静态连接。

VarA 表示我要设置的全局值 ServerName 将通过使用 SERVERPROPERTY('Servername') 在单独的 SQLTask 中设置。它需要在一个单独的任务中,因为它必须使用当前迭代正在使用的同一服务器连接到服务器。

VarB 在每次迭代开始时设置为列表中的下一个连接字符串。

我已经看到了有关如何将其用于脚本任务和脚本组件的示例,但我想简单地使用 ExecuteSQL 任务来完成此操作。

总结:
连接ServerA,填写两个全局变量。
连接到 ServerB 并使用两个全局变量来更新表中的特定行。

有任何想法吗?

0 投票
3 回答
906 浏览

.net - 从 .aspx 页面调用 SSIS,赋予 NT AUTH\Network Service 帐户什么权限?

当我使用 LoadPackage() 从 .aspx 页面(或 Windows 服务)调用 SSIS 包时,如何设置权限以使其正常工作?

事件查看器报告 Sql server 错误:

用户“NT AUTHORITY\NETWORK SERVICE”登录失败。原因:无法打开明确指定的数据库。[客户:192.168.73.118]

如何让该帐户访问我的 sql 服务器?

0 投票
3 回答
541 浏览

sql-server - 是否有任何第三方软件可以修改 SSIS 包?

我一直在 SSIS 中处理一些数据转换任务。Visual Studio 在 2008 年在可用性方面变得更好,但我发现有些事情让我烦恼(即,当我在 Package Explorer 中删除某些内容时,它会刷新整个屏幕,让我回到树的顶部。此外,缺乏一些键盘快捷键。)是否有任何其他 DTSx 包编辑器或 VS 插件,它们值得麻烦吗?

0 投票
1 回答
5353 浏览

ssis - 通过 OleDb ACE 访问 Excel 2007 二进制文件 (.xlsb)

我发现 Excel 2007 二进制格式(扩展名为 .xlsb)非常适合我的需要,因为它加载速度快且非常紧凑。我在 Excel 中提供了一堆带有大量数据的报告,这些报告实际上是通过 IS 包加载的。

所以我假设转换为这种格式,阅读 Access Ole DB Provider 12 上的文档,其中写到 xlsb 受此提供程序支持。我在 Excel 中转换了文件,然后在尝试在包中更改它们时(只需通过添加“b”后缀来更改文件的路径),我收到以下错误消息:

好吧,我想可能是文件转换的问题,所以我拿起一个全新的并填写了一些信息。再试一次,同样的错误!!

然后我尝试了使用“.udl”文件的方法,同样的错误!然后我尝试在不同的机器上进行测试: - 我自己的 (Windows Vista SP1) - 我的同事 (Windows XP SP2) - IS Server (Windows Server 2003 x64 SP2)

并且错误仍然存​​在。我发现重现该错误非常容易,以至于我通过谷歌搜索没有找到任何关于它的信息,这让我有点惊讶!

有人可以帮助我吗?

提前致谢, 拉斐尔

0 投票
4 回答
9702 浏览

sql-server-2005 - 如何在 SSIS 中动态检测文件名?

我需要使用 MS SSIS 将平面文件转换为 DB。我需要一种方法来查看特定文件夹以获取(唯一)平面文件,文件名的格式为“FileName-CCYYMMDD.txt”。

如果有办法从文件夹中添加文件或获取格式为“Filename-CCYYMMDD.txt”的文件名,请帮助我,其中 CCYYMMDD 是当前日期,或者根据要求可能是 CurrentDate -1。

任何代码示例或屏幕截图将不胜感激!

0 投票
2 回答
2231 浏览

sql-server - ftp Delete 命令中不允许使用哪些字符?

我正在从外部服务器对文件进行 ftp 处理,然后在外部服务器上删除它们,并且一个文件失败,因为文件名中有空格。我将我的 ftp 删除命令更改为在文件名周围加上引号。

但是,用户在创建文件名时可能会使用其他字符,我的程序仍然会阻塞吗?我无法控制这些文件名可能是什么。

(我放了一个 SSIS 和 SQL Server 的标签,因为我正在从 SSIS 包动态创建 ftp 任务。双方的操作系统都是 Win XP)

0 投票
4 回答
5280 浏览

c# - 异步调用 SSIS 包

我正在使用 LoadPackage(...) 调用 SSIS 包。

是否可以将此调用设为异步调用?

0 投票
3 回答
63852 浏览

ssis - 通过 SSIS 传输 SFTP 或 FTPS 文件的最佳方法

这个问题最初询问哪种是在 SSIS 中通过 SFTP 或 FTPS 上传文件的最佳方法。它现在只是列出了每种解决方案的优缺点。这些天我个人使用 CozyRoc 的 SFTP 库,但我曾经使用过以下每个解决方案。

SSIS 组件库

方法:在每个开发和生产服务器上安装来自CozyRocCodeplexBizCryptoPragmaticWorks或其他供应商的 SSIS 组件库,并使用 SFTP 任务上传文件。

优点:易于使用。它的外观、气味和感觉都像是一个普通的 SSIS 任务。SSIS 还将密码识别为敏感信息,并允许您使用所有常规选项来保护敏感信息,而不仅仅是以不安全的方式以明文形式存储它。适用于其他 SSIS 任务,例如 ForEach 循环容器。上传和下载失败时出错。当您不知道远程 FTP 站点上要下载的文件的名称,或者直到运行时才知道要上传的文件的名称时,它的效果很好。

缺点:除了 Codeplex 解决方案之外,在生产环境中获得许可需要花钱。需要在每台开发和生产机器上安装库。如果它是 Codeplex 解决方案,那么您正在使用不受任何特定供应商支持的软件。这也使您依赖供应商在每个版本之间更新他们的库。例如,在 2008 RTM'd 之前,我在 2008 的 CTP 版本上开发了一个新服务器,而 CozyRoc 2005 库与它不兼容。最终他们发布了 2008 兼容版本,但我不得不暂时使用命令行解决方案来解决这个问题。

命令行 SFTP 程序

方法:安装一个免费的命令行SFTP应用程序,如Putty和WinSCP,并通过运行批处理文件或操作系统进程任务来执行它。此处列出了通过 WinSCP 执行此操作的说明。

优点:免费,免费和免费。如果您使用的是 Putty,您可以确定它是安全的,因为许多 GUI FTP 客户端似乎都在使用 Putty。您肯定知道您使用的是 SSH2 而不是 SSH。

缺点:我尝试的两个命令行实用程序(Putty 和 Cygwin)需要将 SFTP 密码存储在不安全的位置。我还没有找到在上传文件时捕获失败或错误的好方法。这个过程看起来和闻起来都不像 SSIS。大多数代码都封装在文本文件中,而不是 SSIS 本身。如果您不知道要上传或下载的文件的确切名称,则很难使用。

第三方 C# 或 VB.NET 库

方法:安装 SFTP 或 FTPS 库并使用引用该库的脚本任务来上传文件。(我从来没有尝试过,所以我会猜测利弊)

优点:可能很容易捕获错误。应该可以很好地使用变量,因此即使您不知道要上传或下载的文件的确切名称,它也可能很容易使用。

缺点:这是一个结合 .NET 库的脚本任务。如果您使用的是 SSIS,那么您可能更喜欢 SSIS 任务而不是 .NET 代码。脚本任务也很难排除故障,因为它们没有与常规 .NET 项目相同的调试工具和功能。创建对 3rd 方代码的依赖项,该依赖项可能在不同版本的 SQL Server 之间不起作用。公平地说,它可能比第 3 方 SSIS 任务库更可能在不同版本的 SQL Server 之间工作。另一个巨大的骗局——到目前为止,我还没有找到一个免费的 C# 或 VB.NET 库。所以如果有人知道,请告诉我!