问题标签 [ssis-2019]

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 投票
0 回答
1489 浏览

c# - 以编程方式创建 SSIS 2019 包时出错

当涉及到 ssis 2016 时,我能够以编程方式创建包,但是当我尝试以编程方式创建包时,我遇到了错误。

无法加载文件或程序集“microsoft.sqlserver.dtsruntimewrap,version=15.100.0.0,culture=neutral,publickeytoken=89845dcd8080cc91”或其依赖项之一。该系统找不到指定的文件。”

创建示例包并上传到以下一个驱动器位置。

我观察到的是 2016 年的 Microsoft.SqlServer.DTSRuntimeWrap 存在于

但是作为visual studio 2017安装一部分的ssis 2019没有安装在GAC_32中,而是安装在

所以使用 gacutil 将它安装到 gac 中,但现在我遇到了错误。

Microsoft.SqlServer.Dts.Runtime.DtsComException:'找不到集成服务类。确保在运行应用程序的计算机上正确安装了集成服务。此外,如果您正在运行 64 位应用程序,请确保安装了 64 位版本的 Integration Services。

更新:

我知道安装 SSIS (MsDtsServer150) 可以解决这个问题,但是在 32 位模式下运行 ssis 确实不需要,因为我的应用程序在 32 位模式下运行,它应该可以在不安装类似于 SSMS 中的导入导出向导的 SSIS 的情况下工作。

做了更多的研究,我的应用程序在 32 位模式下运行 SSIS 2017 即使没有安装 SSIS,因为 SSMS 17.* 添加了需要的 dll 但 SSMS 18.0 没有安装需要的 dll,并且导入导出向导在 ssms 18.0 中被禁用,所以我的应用程序不再工作了。

我能够从 Visual Studio 运行 SSIS 包,所以我的主要问题是,我如何能够在没有 gac 中的 dll 的情况下在 Visual Studio 中运行它?我怎样才能利用同样的东西?

这里有一个详细的解释:

我们可以使用 Sql server * 版本安装程序(例如:sql server developer edition)为 SSIS 32 位和 64 位安装 SSIS,用于任何调用 DTSRuntime.Application() 的应用程序,但如果没有使用 sql server 安装程序安装 SSIS,而是刚刚安装了 SSMS,它仍然会向 gac 添加 32 位版本,并在 DTS 文件夹下创建包含所有需要的 dll 的“C:\Program Files (x86)\Microsoft SQL Server\140”文件夹,这样我们就可以在其中运行 SSIS通过调用 DTSRuntime.Application() 并将项目设置为 32 位模式来实现 32 位模式。

Visual Studio 正在为 15.0.0.0 创建 dll 的 ex: 15.100.0.0 版本,并且它能够以某种方式使用同一文件夹中的 dll,以利用我尝试在 app.config 中创建绑定重定向的相同功能,如下所示,但那没有不工作

甚至尝试将 href 更改为“.\Microsoft.SqlServer.ManagedDTS.dll”以指向 bin 中的程序集,但即使这样也无济于事。

0 投票
1 回答
5477 浏览

sql-server - VS 2019 SSIS包无法添加SQL Server

我安装了 Visual Studio 2019 和 SSIS 包扩展并创建了一个新项目。我可以毫无问题地将我的 SQL Server 添加为连接管理器,但是当我将 aData Flow Task拖到包中并将 aSource Assistant拖到其中时,我无法选择我的 SQL Server。

显示的源类型是 Excel、平面文件和 Oracle。如果我取消选中“仅显示已安装的源类型”,那么我会看到 SQL Server,但我无法选择它。

有趣的是,我一直在使用 Visual Studio 2017 编辑 SSIS 项目,所以我知道 SQL Server 的东西可以正常工作。但是,如果我打开该现有项目,则 Visual Studio 2019 中不会显示任何连接管理器。

0 投票
1 回答
175 浏览

ssis - 自定义 SSIS 工作流任务

我有很多容器都遵循相同的基本前提:

在此处输入图像描述

当我从远程数据库中提取数据时,我首先清空一个收集器表,将数据从远程数据库复制到收集器,计算收集器中的行数,如果有足够的行,则合并到真实表中。如果没有,我会发送一封包含错误消息的电子邮件。

我不想一遍又一遍地重复这个,我想制作一个自定义组件。我认为这只是我会制作的一个过滤器组件,但我不太确定如何复制这Data Flow Task件作品。有没有人可以指出我的好例子,或者只是让我知道我想做的事情是不可能的?

0 投票
0 回答
49 浏览

c# - VS 2019 现在可以做异步 SSIS 主程序吗?

使用 Visual Studio 2019 和新的 SSIS 项目,现在是否可以使用异步主方法?我无法设置 C# 版本,因为 SSIS 制作了类库,所以我不确定如何确保它已启用。

0 投票
1 回答
443 浏览

sql-server - 我需要在 Visual Studio 2019 Express / Community 中安装哪些其他依赖项才能在 GUI 中打开 dtsx SISS 文件?

当我安装 VS2019 Express 时,我确保包含Data storage and processing工作负载,我还创建了一个. 我知道文件中包含 GUI 信息,因为我可以看到 XML 字符实体,其中单独的图表 XML 是用它们编写的。 SQL Server Database Project.dtsx

那里似乎还有一些看起来像 .NET 程序集的东西,其中包含一些 C# 代码和某种 Base64 编码,谁知道它是否被压缩或者它包含什么类型的文件或字符串。

我查看了文件中的 XML,我很确定我理解它的作用,但它是一个相当复杂的 xml 文件,所以我想使用 VS2019 Express 来确定它使用 GUI 的作用.

我还需要安装其他依赖项吗?

这个较旧的问题有一些答案,但我没有看到他们在Individual Components安装屏幕上列出的内容。

0 投票
7 回答
32539 浏览

visual-studio - 为什么我的 SSIS 工具箱在 Visual Studio 2019 社区中为空?

我安装了 Visual Studio 2019 Community,然后安装了数据工具。我可以打开一个集成服务项目,但是当我查看 SSIS 工具箱时,它是空的。

我该如何解决?

截屏

0 投票
1 回答
409 浏览

xml - 是否有 SSIS 连接器来获取 .xel 文件(扩展事件)?和方法修正

我目前正在开展一个项目,以使用扩展事件分析我们的一个多维数据集上维度/度量的使用情况。由于我们在 SQL Server 2012 上,扩展事件 GUI 不可用。我正在使用 sys.fn_xe_file_target_read_file 以 XML 格式返回文件,每行一个事件。

然后,我将 XML 中的关键元素解析为临时表。

.xel 文件附加到每一天。我需要设置一个机制(使用 SSIS)包来每天存档文件并应用上面的 sql 逻辑将数据读入临时/临时表/

但是,我正在努力在 SSIS 上找到合适的连接器。他们都不允许我从其文件夹中获取 .xel 文件。

0 投票
2 回答
2213 浏览

ssis - SSIS 2019 AutoAdjustBufferSize causes buffer allocation error

To increase my ETL performance, I have enabled "AutoAdjustBufferSize" property on my data flow tasks. However, it is not allocating enough buffer to the memory I need.

Check out what SSIS tells me...

Information: The buffer manager failed a memory allocation call for 1954545664 bytes, but was unable to swap out any buffers to relieve memory pressure. 2 buffers were considered and 2 were locked. Either not enough memory is available to the pipeline because not enough are installed, other processes were using it, or too many buffers are locked.

Information: Buffer manager allocated 1864 megabyte(s) in 1 physical buffer(s).

Error: The system reports 36 percent memory load. There are 34156761088 bytes of physical memory with 21535158272 bytes free. There are 4294836224 bytes of virtual memory with 1996070912 bytes free. The paging file has 39257034752 bytes with 24542248960 bytes free.

Several questions on this:

  1. Why are there only 2 buffers allows here? (max buffer rows is set to 1048576)
  2. Why does it say BOTH that it allocated the same bytes that it says it couldn't allocate?

To note:

  • It works when I manually set the buffer row size to the default (104857360)
  • All development and source data files live on a network server. I'm using visual studio in my local computer to access the development/source files
0 投票
1 回答
226 浏览

merge - 使用 SSIS-Lookup 引用外键

我正在就以下主题寻求帮助。我正在尝试使用两个 Excel 数据源(S1 ~300 行和 S2 ~7000 行)创建一个 ETL 过程。S1 包含项目信息和员工详细信息,S2 包含小时数,每个员工在某个时间点在哪个项目中工作。

我想通过引用维度表中的现有主键将每个员工在每个项目中工作的小时数插入到事实表中。如果维度表中不存在条目,我想先添加一个新条目并使用新生成的 id。目标表结构如下所示(数据仓库,星型模式):目标表结构

在 SSIS 中,我首先创建了三个数据流任务,用于使用不同的值(使用 group by,因为 S1 和 S2 包含很多重复行)填充维度表(项目、员工和时间),然后是第四个数据流任务(参见下图)插入 FactTable 数据,这就是我遇到问题的地方:

数据流任务事实表

我正在使用三个 LookUp 函数从维度表中检索 foreignKeys project_id、employee_id 和 time_id(使用项目名称、员工编号和时间戳)。如果找到了 id,它将一直传递到Merge Join 1,如果没有,则创建一个新的 Dimension Entry(比如说项目)并传递生成的 project_id 。同样适用于员工和时间。

这有两个问题:

1)“小时数”(多播四通过,见上图)在最终结果中不匹配(不匹配

2) 插入的行数不断增加(Endless Join,我相信由于 Merge 连接)。

我试过的:

  • 我之前使用了一个 UNION 而不是三个 Merge Joins,但这导致外键分别位于单独的行中,而不是合并在一起。
  • 我使用了 Merge(而不是 Merge Join),并在所有可能的方式中组合了连接和排序条件。

我知道这种情况可能会让其他人感到困惑,但感谢您抽出宝贵时间查看它!任何帮助是极大的赞赏。

0 投票
1 回答
80 浏览

sql-server - 有没有办法在 CData Smartsheet 任务中使用 SQL 服务器从 Smartsheets 中删除记录?

我正在尝试使用 CData Smartsheet 任务中的 SQL 语句从 Smartsheet 中删除记录,但出现以下错误:

[SmartsheetExecutorTask] 错误:准备 SQL 语句时出错。错误:格式错误的 SQL 语句:遇到意外的令牌

如果我删除了内部联接,则代码可以工作,但需要 SQL 表来确保删除了正确的记录。

任何帮助将不胜感激。