问题标签 [ssis-data-flow]

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 投票
4 回答
454 浏览

ssis - 查看未输出到目标的结果

在开发数据流时,我并不总是想将结果输出到目的地——但我想查看数据。

有没有办法将数据查看器附加到输出而不必有目的地?

文件和原始目标对它们接受的数据类型有限制——我不想仅仅为了测试/构建代码而附加转换。

是否有某种输出到 null ?然后我可以获得结果集的数据视图

0 投票
1 回答
4052 浏览

ssis - Float到NVarchar的SSIS数据流转换导入空值

我正在尝试将 Excel 2007 电子表格导入临时表,但遇到了一些列类型的问题。我的一些列具有数字和文本值的组合,即名为“客户编号”的列可以具有数字值,例如 1234、32432433,或文本值,即 A1000、ACC101TEXT。当我导入电子表格时,其中包含文本的值返回 null,而数值正在正确导入。此外,最后一行在此列中有我需要的文本描述,但是,导入后,此行值为空。我能做些什么来纠正这种情况并按原样导入电子表格吗?我尝试使用数据流转换中的数据转换,但是仍然无法正常工作。请注意,我无法更改或格式化 Excel 电子表格。

0 投票
1 回答
630 浏览

architecture - SSIS Consolidate 海量数据 - 建议

我需要整合来自 30 个数据库和 20 个表的数据。我的第一次尝试是为每个表创建一个数据流。每个数据流将有 30 个数据库源,它们从每个数据库的 1 个表中获取数据,然后插入 1 个目标。这不起作用,因为没有足够的内存。我试图过滤数据以忽略不会使用的数据 - 它没有帮助。这些任务应该每天执行。整个 Consolidation db 被删除然后插入新数据,这意味着每天插入大量数据。有人对如何处理内存问题有建议吗?

目前我看到的唯一解决方案是创建 20 个包。每个包将有 30 个数据流。每个数据流只能从一个数据库中获取数据。但是话又说回来,我不知道执行顺序是什么?一个包的数据流是同时开始执行还是一个接一个地执行?

编辑:

我就是这样做的……这是控制流的屏幕截图: 在此处输入图像描述

数据流截图: http://img833.imageshack.us/img833/355/45908206.png

我为所有数据库中的一张表创建了一个包。在这种情况下,每个数据流从表中获取 4 年前的数据并导入到源数据库。问题是我在一个数据库中有一个表,它有太多数据并且它返回错误:

缓冲区管理器对 10484608 字节的内存分配调用失败,但无法换出任何缓冲区以减轻内存压力。考虑了 20 个缓冲区并锁定了 20 个。管道没有足够的内存可用,因为没有安装足够的内存,其他进程正在使用它,或者太多的缓冲区被锁定。

有什么建议么?

0 投票
1 回答
1344 浏览

entity-framework - 带实体框架的 SSIS

我正在使用非规范化的 Access DB 并将其移动到基于 EF 4 的 SQL 中的规范化表中。

假设我在 Access DB 中有以下内容

我在 SQL 中创建以下两个数据库

名称:

tbl水果:

在我的数据流中,我可以使用派生列提取名称(表实际上更大,我正在做一些数据类型转换)。但是,如何从派生列获取输出,并将每一行的输出与 fruits 表的正确 ID 匹配,从而产生需要插入 tblNames 数据库的正确输出?

0 投票
3 回答
2437 浏览

ssis - Best practice to organize a 200+ tables import project

This question is going to be a purely organizational question about SSIS project best practice for medium sized imports.

So I have source database which is continuously being enriched with new data. Then I have a staging database in which I sometimes load the data from the source database so I can work on a copy of the source database and migrate the current system. I am actually using a SSIS Visual Studio project to import this data.

My issue is that I realised the actual design of my project is not really optimal and now I would like to move this project to SQL Server so I can schedule the import instead of running manually the Visual Studio project. That means the actual project needs to be cleaned and optimized.

So basically, for each table, the process is simple: truncate table, extract from source and load into destination. And I have about 200 tables. Extractions cannot be parallelized as the source database only accepts one connection at a time. So how would you design such a project?

I read from Microsoft documentation that they recommend to use one Data Flow per package, but managing 200 different package seems quite impossible, especially that I will have to chain for scheduling import. On the other hand a single package with 200 Data Flows seems unamangeable too...


Edit 21/11:

The first apporach I wanted to use when starting this project was to extract my table automatically by iterating on a list of table names. This could have worked out well if my source and destination tables had all the same schema object names, but the source and destination database being from different vendor (BTrieve and Oracle) they also have different naming restrictions. For example BTrieve does not reserve names and allow more than 30 characters names, which Oracle does not. So that is how I ended up manually creating 200 data flows with a semi-automatic column mapping (most were automatic).

When generating the CREATE TABLE query for the destination database, I created a reusable C# library containing the methods to generate the new schema object names, just in case the methodology could automated. If there was any custom tool to generate the package that could use an external .NET library, then this might do the trick.

0 投票
0 回答
229 浏览

ssis - SSIS 数据流提交的时间

我正在使用 SSIS 数据流将数据从源表“s”复制到目标表“t”,该表为空。对于数据流之后的下一步,我有一个“Exec SQL 脚本”,它运行一个删除语句,该语句从表“z”中删除,其中最近复制的数据存在于表“t”中。我注意到的是,删除语句似乎在前一个数据流步骤中的数据完全提交之前触发。有时并非所有数据都在表“t”中,删除的结果不正确。有没有办法在执行下一步之前保证数据流已经完成并提交?还是这个bug?

0 投票
1 回答
57 浏览

ssis-data-flow - SSIS 中的 Oracle 查询定义了错误的数据类型

我有一个有点复杂的查询,我想将它用作 SSIS 包中的源。我创建了我的 OLE DB 源,将访问模式指定为 SQL,并将我的查询粘贴到命令文本框中。当我单击“预览”时,样本数据又回来了,一切看起来都很好。

但是,当我尝试运行该程序包时,我得到了“外部列与数据源列不同步”以及“需要从外部列中删除外部列'xxx'”的错误消息。请注意,在设计模式下,错误列表选项卡中没有条目。

在进行研究时,我发现外部列、输出列和错误列被自动定义为错误的数据类型。一些明显的整数列被定义为字符串,而另一些则被设置为 unicode 字符串。

我试图通过高级编辑器手动修复它们,但您似乎无法更改错误列。但是,如果我修复了外部和输出源列,我会收到关于不同步的消息……你想修复它吗?我点击是,它把它放回字符串......

感谢您的任何见解。

0 投票
1 回答
127 浏览

c# - SSIS 组件 DLL 部署

我开发了一个自定义 SSIS DataDlow 组件。

现在是部署 DLL 的时候了。在我的工作和测试环境中,我只是在 GAC 中注册了 DLL 并将其处理为:

“C:\Program Files (x86)\Microsoft SQL Server\120\DTS\PipelineComponents”

并进入

"C:\Program Files\Microsoft SQL Server\120\DTS\PipelineComponents"

是否有任何最佳实践可遵循?这是在 SSIS 中安装自定义组件的最佳方式吗?

泰!

0 投票
1 回答
484 浏览

excel - Excel 目标中的动态列名称(数据流)

我正在尝试在 Excel 目标中使我的“目标列”动态化。插入到列中的数据始终与列的数量和位置相同。这样做的原因是因为我的标题是多语言的。但是,Excel 目标不接受动态标题名称。

无论如何都要使这些动态化,或者是否有不同的解决方法。

例如,标题可以是:

但标题也可以是:

0 投票
2 回答
3198 浏览

sql - Mapping Output Parameters in SSIS OLE DB Source Editor

How can i map output parameter in OLEDB Soruce SSIS(BIDS 2008).In (BIDS 2012) we can specify the query parameter as input and output.

Please see below two picutres.

SSIS Package In BIDS 2008

SSIS Package in BIDS 2012