TMap LookUp 经过测试的结果:

------------------------------------------

LookUp最好从CSV读数据,这样是最快了(20万记录1s).从SalesForce读数据是最慢的.(每条记录2s, 如果要跟SalesForce打交道,最好用V-P-N, 速度和稳定性都好10倍)

CSV文件是定时从Salesforce导出,20万记录可能要半个小时.(大陆访问SF实在是慢,2017年后有改善)

所以要根据你导入文件的行数,来决定是否从CSV还是SalesForce读数据来LookUp,

比如你只有100条记录,从SalesForce读数据只要200s,比重新导一次CSV还是合算的.

超过1000条记录,还是重新导一次CSV吧.

-------------------------------------------

Talend的Processing Component里的TMap, 我是觉得是最常用的组件.

因为你导入的数据,总要和系统现有的数据做对比,是新增还是修改,然后还得做一下数据变换,再导入到系统.

TMap默认有一个主连接(Main Input),一个LookUp连接(也可以改成多个LookUp), 默认一个Output连接(可以改成多个Output).

默认的Join Model是Left Outer Join, 指的是主连接 Left Join LookUp连接.

以这个例子就是ftp left outer join contact. 也就是说ftp的数据假如在contact里找不到,也会在output连接输出. 类似于SQL的左连接.

这个例子连接条件就是ftp的数据和contact的数据的手机号码相同的,视为同一笔数据

--------------------------------------------------------------------------------------------

我们用TMap,通常要把Main Input的数据在LookUp连接里查找,分成2个output, 一个是已存在的数据(通常需要更新), 另外一个是不存在的数据(通常需要新增).

我们有2种方法来做,

//第1种是官方文档推荐的用Inner Join

Inner Join, 通常要2个output, 也就是一个output的capture lookup inner join reject为true, 一个output的capture lookup inner join reject为false,

false的output就是在Main Input和Lookup 都存在的记录. 也就是系统已经存在的记录了.

true的output就是在Lookup 不存在的记录. 也就是要新增的记录了.

  ----------------------------------------------------------------------------

//第2种是Left Outer Join 加过滤条件

Left outer Join, 2个output, 也能做到上面capture lookup inner join reject的效果.

2个output的property都保持默认的, 都加上contact的Id字段, 然后加过滤器contact.Id==null 和contact.Id!=null

或者1个output 加过滤器contact.Id!=null, 另一个output的property设定Catch output reject=true. 是一样的效果

  

Talend 从Excel导入Saleforce数据(二) TMAP是精髓的更多相关文章

  1. Talend 从Excel导入Saleforce数据(一) 直接从salesforce lookup 性能的噩梦

    速度的瓶颈是在查询Sales force是否有该电话号码的联系人资料. TMap属性的 lookup Model, 如果用Load Once, 则会把SaleForce的contact全部load下来 ...

  2. [办公自动化] 再读《让EXCEL飞》(从excel导入access数据时,union联合查询,数据源中没有包含可见的表格)

    一年多以前就买了@Mrexcel的<让excel飞>这本书.整体思路是利用access结合excel,大幅度提高数据分析效率. 最近又拿出来看了看.第十五章,比高级筛选更“高级”,P241 ...

  3. Java Excel 导入导出(二)

    本文主要叙述定制导入模板——利用XML解析技术,确定模板样式. 1.确定模板列 2.定义标题(合并单元格) 3.定义列名 4.定义数据区域单元格样式 引入jar包: 一.预期格式类型 二.XML模板格 ...

  4. 工作日志,Excel导入树结构数据

    目录 1. 前言 2. 需求分析 2.1 需求难点 2.2 解决难点 2.3 表格设计 3. 功能实现 3.1 一个分枝 3.2 一个分枝多个树叶 3.3 多个分枝多个树叶 4. 代码事例 4.1 目 ...

  5. PHP 清除 Excel 导入的数据空格

    处理excel中的数据时,遇到了页面中显示为空格,审查元素时却显示为换行,使用replace函数也不管用,反正就是不知道是什么东西,看起来像空格 中文空格这里面有好几种:没有简单的解决问题的方式,比如 ...

  6. excel导入mysql数据

    excel加载mysql数据 1.第一步,选择从mysql导入数据 2.单击会出现弹框: 3.可能有的同学的,这里缺少插件,例如: 4.去下载 这个 插件安装即可.https://dev.mysql. ...

  7. 将Excel导入到数据中

    常用的方式的有两种: 1. 通过 Microsoft.Jet.OLEDB.4.0 或  Microsoft.ACE.OLEDB.12.0 Microsoft.ACE.OLEDB.12.0 需要安装 A ...

  8. JeeSite中Excel导入导出

    在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel.CSV格式居多.如果是学习的过程中,最好是自己实现数据导入与导出的功能,然而在项目中,还是调用现成的功能比较好.近期一直使用 ...

  9. java利用jxl实现Excel导入功能

    本次项目实践基于Spring+SpringMvc+MyBatis框架,简单实现了Excel模板导出.和Excel批量导入的功能.实现过程如下:. 1.maven导入所需jar包 <depende ...

随机推荐

  1. Redis 个人理解总结

    一.什么是Redis ? Redis(remote dictionnary server)是一个key-value存储系统.Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可 ...

  2. ajax 怎么重新加载页面

    $.ajax({ type:"post", url:url, data:{xxx:xx}, dataType: "json", success : functi ...

  3. 1.0 poi单元格合合并及写入

    最近项目中用到poi生成Excel时,用到了单元格合并,于是参考了http://www.anyrt.com/blog/list/poiexcel.html写的文章,但是其中有些地方不是很清楚,于是自己 ...

  4. php 中 public private protected的区别

    public 子类,外部都可调用. protected 子类可以调用,外部不可以调用. private 子类不可以调用,外部不可以调用. <?php class AA { public func ...

  5. MySql连接时出现1251 client does no support authentic错误解决方法

    使用Navicat Premium软件连接时,报错: 解决方法: 修改配置项:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password B ...

  6. => js 中箭头函数使用总结

    箭头函数感性认识 箭头函数 是在es6 中添加的一种规范 x => x * x 相当于 function(x){return x*x} 箭头函数相当于 匿名函数, 简化了函数的定义. 语言的发展 ...

  7. 如何看待Arcsoft虹软,推出的人脸认知引擎免费SDK?

    虹软公司是一家具有硅谷背景的图像处理公司,除了人脸技术以外,还有多项图像及视频处理技术.他们的双摄像头处理算法和人脸美化算法囊括了包括OPPO VIVO,SUMAMNG一系列手机厂商. 整个人脸识别运 ...

  8. python实现邮件接口——smtplib模块

    1. 思路 使用脚本发送邮件的思路其实和客户端发送邮件一样,过程都是: 登录 —> 写邮件 —> 发送 只不过通过脚本发送时我们需要考虑到整个过程的方方面面.以下为思路导图: 2. Pyt ...

  9. phpstudy2018配置站点后500错误问题

    phpstudy2016没发现这个问题,这是因为新项目要使用laravel,php版本要求7.1,所有换成了2108,但是laravel的项目没问题,原来tp框架的都不能正常访问,最好查看nginx错 ...

  10. Python 编程快速上手 第十五章 保持时间,计划任务和启动程序

    前言 这一章节的主要内容是: 处理时间类型的数据(使用python 的两个模块: time 和 datetime 来处理) 创建多个线程 (使用 threading 模块来创建多个线程) 进行多个进程 ...