SSIS Lookup 找不到匹配数据

用户有一个需要用txt更新表数据的功能,用lookup实现,步骤:

  1. 循环文件夹的txt文件
  2. 用Lookup 全部cache目标表数据,比对txt数据和目标表数据

3. 如果有match的数据用txt更新目标表

但是执行每次Match的数据都是0,而txt中确实存在匹配的数据。翻了一下微软的BOL,有一句话很重要:

If there are multiple matches in thereference table, the Lookup transformation returns only the first matchreturned by the lookup query. If multiple matches are found, the Lookup transformation generates anerror or warning only when the transformation has been configured to load allthe reference dataset into the cache. In this case, the Lookuptransformation generates a warning when the transformation detects multiplematches as the transformation fills the cache.

后来查了一下我的记录中确实记录都是重复,由于我选择了处理错误的方式“Redirect rows to no match output”,所以数据都到了Not match.

之后尝试将重复数据删除就正常了。因为考虑到大部分应用是数据仓库方面的,维度都是为一的,所以很少碰到这个问题。

还有一点要注意的是Lookup是大小写敏感的,在处理带有字符数据的时候要注意。

另外这个功能用上次提到的处理缓慢变化维的组件也可以实现。

SSIS Lookup 找不到匹配数据

时间: 2024-10-08 13:18:24

SSIS Lookup 找不到匹配数据的相关文章

SSIS: 使用Lookup 和 Cache transformation 进行数据匹配简单介绍

本文将讲解Cache transformation的使用方式,并且用Lookup transformation进行匹配. 背景 如下图,我们的产品目标表中有些有尺寸信息有些没有.我们需要用Cache组件获取缓存信息.并且用Lookup组件进行匹配. 实际操作 1.建立以下工作流 Flat File 内容如下 打开 Cache组件,点击Edit->Columns . 我们可以看到从管道传递过来的数据. 如果 Index Position 是0 .那么表示不用lookup. 如果要把管道数据保存到文

在SSIS 2012中使用CDC(数据变更捕获)

最新项目稍有空隙,开始研究SQL Server 2012和2014的一些BI特性,参照(Matt)的一个示例,我们开始体验SSIS中的CDC(Change Data Capture,变更数据捕获). 注:如果需要了解关于SQL Server 2008中的CDC,请看这里http://www.cnblogs.com/downmoon/archive/2012/04/10/2439462.html),本文假定读者对CDC的工作方式已有所了解.^_^. 我们分三步完成实例: 1.准备基础数据: 2.设

使用SSIS对Dynamics CRM 系统进行数据迁移

嗨,各位.最近项目一直都很忙,并且自己也一直在思考职业发展的问题,所以有很长一段时间没静下心写几篇Blog了.最近我参与的项目是Dynamics CRM 2011 到 Dynamics CRM 2013 Online的数据迁移,刚好接着今天这个机会和大家分析一下数据迁移的心得吧. 读过我之前文章的朋友肯定记得我把Dynamics CRM的接口分为了两大类:1)功能接口,2)数据接口.今天要说的数据迁移可以理解为数据接口,实现数据接口的方式有很多种,比如C#制作的程序,数据库层的SQL 脚本,以及

找出N个数据中的最大的K个数据---堆排序

从N个数据中找出最大的K个数据,而且这里有一个限制:内存里存不下所有的N个数据,但是可以存下K个数据.这就让我们打消了用排序的方法来解的念头. 在这里我们使用堆排序来完成. 因为我们只能有K个数据那么大的空间,所以我们建一个K大的堆,将N的前K个数据插入到堆中,然后调整堆.(对于堆结构不了解的可以查看我微博  http://helloleex.blog.51cto.com/10728491/1768758) 对于最大的K个数据,我们要怎么找出来呢.我们首先要确定我们是要用大顶堆还是小顶堆.  用

c语言代码编程题汇总:找出三个数据中最大的数值

找出三个数据中最大的数值 程序代码如下: 1 /* 2 2017年3月9日12:04:37 3 功能:找出三个数据中最大的数值 4 */ 5 #include"stdio.h" 6 7 int fun(int,int,int); 8 9 int main() 10 { 11 int a ,b,c; 12 13 printf("please input three number: \n"); 14 15 scanf("%d %d %d",&

转:Xshell显示找不到匹配的outgoing encryption算法怎么办

原文出处:http://www.xshellcn.com/xsh_column/suanfa-bpp.html 由用户反应在使用xshell和xftp连接debian 7时出现找不到匹配的outgoing encryption算法的错误提示,本集小编整理了一份解决方法,大家可以试试看. 问题阐述: 在用xshell 4连接debian 7出现找不到匹配的outgoing encryption算法的错误提示 原因分析: 小编试着用xshell 5连接时发现没有出现问题,因此推断可能有两个原因: 1

完整版文本框即时输入数据监听并下拉显示匹配数据

1.前言 好多小童鞋,对以jq为主的前端并不是特别熟悉,但并不代表你是菜鸟,说不定你是其他方面的资深老司机,好吧,我才是菜鸟,今天主要写一个完整的demo来看看怎样文本框+下拉框即时匹配数据. 2.详情 还是那句话,不说太多废话,直接代码来.如果你是新手,可以直接copy成.html格式的文件,本地预览看到效果,如果看不到效果,那说明什么呢? <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">

SSIS: Lookup组件高级用法,生成推断成员(inferred member)

将数据导入事实表如果无法匹配维度表的记录一般有两种处理方式. 一是将不匹配记录输出到一个表中待后续处理,然后重新导入.二是先生成维度Key,后续再完善维度key,本文指导各位使用第二种方式. 背景 比如下图StoreID为1的经销商不存在于我们经销商维度表中,我们现在要使用lookup组件进行匹配,并生成维度key. 操作步骤 1. 先添加一个派生列组件,将StoreID转为字符,等会儿生成键值会用到. 2. 先进行匹配一次,然后把无法匹配到的记录传到下一个Lookup 组件  Insert 

微软BI 之SSIS 系列 - 使用 SQL Profilling Task (数据探测) 检测数据源数据

开篇介绍 SQL Profilling Task 可能我们很多人都没有在 SSIS 中真正使用过,所以对于这个控件的用法可能也不太了解.那我们换一个讲法,假设我们有这样的一个需求 - 需要对数据库表中的一些数据做一些数据分析,比如统计一下数据表中各列中实际数据的长度,各长度区间范围:比如统计一下各数据列中非空字段的比例,表的行数,重复字段等等.那么如果不是专门做过这种数据源数据分析的话,可能不知道用什么方式能够非常快的得到这些信息.写 SQL 语句?我想这个过程也是非常耗费时间和精力的. 实际上