如何使用FME连接数据_第1页
如何使用FME连接数据_第2页
如何使用FME连接数据_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如何使用FM连接数据原文发布时间:2018-05-1709:59:03什么是F?FeaturesJoiner是将数据连接在一起的转换器,它最接近FeatureMerger(并且可能最终取代它)。它在工作空间中是这样的:FaalitjlMamaAddressIDAddiSSIDlAddresa审StreetFeatureJoberWLefl:liiflhl11lJoinedUnjoinedLcft1lUnjoiretfl.iijht1PANoMotchQtyPravi仃ceCauniryPo&tcade该工作区将Facility要素与PostalAddress要素相结合。你可以看到,代替Requ

2、estor/Supplier这个转换器有Left/Right端口,少一个输出端口;但除此之外它确实看起来像FeatureMerger。但是,查看参数对话框会发现更多差异:JdwiModeLeftAddressIDRight申AddrlDComparisonModeAutomatic.HMX4*1*JoinOn,ConflictResolution和GeometryHandling参数非常明显,与FeatureMerger中已有的类似。但是关键参数是JoinMode。M要了解JoinMode就有必要了解左连接和内连接。JoinMode选择的三种模式是左连接,内连接和全连接。模式描述图片描述Joi

3、nedUnjoinedLeftUnjoinedRightLeftLeft端口要素寻找匹配的要素并且无论是否找到匹配要素都输出InIjk所有的匹配要素加上没有匹配的要素无没有用上的Right端口要素InnerLeft端口要素寻找匹配的要素并且只输出匹配了的要素ki世只输出匹配了的要素没有找到匹配的Left要素没有用上的Right端口要素Full无无无论是否找到连接,Left和Right要素都会所有匹配上的要素加上没有找到匹成Joinedoutput端口输出配的Left和Right要素理解操作的最简单方法是:每个图中的重叠部分总是输出。这是一个连接,所以这些功能通过连接端口输出。Left/Inne

4、r/Full参数不控制连接了的的要素,而是未连接的要素。l在Inner模式下,没有连接的要素通过UnjoinedLeft或UnjoinedRight端口输出。l在Left模式下,没有匹配的Left要素仍然通过Joined端口输出,没有匹配的Right要素通过UnjoinedRight端口输出。l在Full模式下,没有匹配的Left和Right要素仍然通过Joined端口输出。Facility列子接下来以Facility/Address为例,如何实现将Facility要素和Address记录相匹配。iTFacHtyCourtry.oddrss-IDNof*tatdAddressKJStreett

5、yPrinceFeiitureJoiier-RightJ-!?UhjjainBcLefl卜一卜T在Inner模式下,只有匹配了Address的Facility才会通过Joined端口输出,如果你想得到没有匹配的要素,那么通过UnjoinedLeft端口输出的就是。但是在Left模式下,不管Facility要素是否有匹配的,都会通过Joined端口输出。输出的数据质量并不是很好,但是如果我们知道并不是所有的Facility都有匹配的Address,那这个模式也很好。在Full模式下,Joined端口输出的要素包括了所有的Address,在这个例子的情况下可能不需要,但是在其他时候可能会用上。到这

6、里,你会注意到FeaturesJoiner没有与FeaturesMerger“handleduplicatesuppliers参数等效的功能。要理解这点你需要知道我们的主旨是MatchMultipleJoinMatches为了理解这一点我们来看看包含了要素计数的数字:多少要素将从Joined端口输出呢?这得看情况。如果我们假设每个Facility和一个Address之间严格1:1匹配,则8个要素将以连接的方式输出。为什么?因为我们有8对匹配。计数将如此:ModeoindUnjoinedLeftUnjoinedRightLeft801,463,431Inner801/63,434厂.nlll1J

7、ljTTfeJInnFull模式下的Joined端口输出的1463442个要素包括了连接上了的8个要素,以及没有连接上的1463434个要素。这很好。但是,我们可能在Facility和Address表之间没有这样一个纯粹的1:1匹配。我们可能会遇到1:M,M:1,甚至M:M的情况。假设每个Facility在Address中有两个匹配项,我们会得到这个:ModeJoinedUnjoinedLeftUnjoinedRightLeft1601463,42&Inner160lh463d426为什么我们会得到比Left端口输入的更多的要素呢?因为每一次匹配我们都会得到一条要素,这里出现了16次匹配。这是

8、FeaturesMerger做不到的,它会忽略掉第二个匹配或者创建一个列表,但是FeaturesJoiner是按照SQl等价的方式设计的,所以它工作的方式不同。事实上在极端的情况下,我们假设每个Facility都有AddresslD=1,并且每个Address都有AddresslD=1,那么每个Facility都会匹配到每个Address!那么我们会得到8x1463442个匹配。换句话说,在Left或Inner模式下我们可以输入8个“requestor”要素并且得到11707536个要素,这没有错只是可能和你的习惯不同。输出顺序作为高级主题的一部分,匹配要素从转换器输出的顺序和从Left端口输

9、入的顺序相同。因此如果Left要素在进入转换器时安装特定序,那么对于Left模式或者Inner模式,该顺序在输出中将保持不变。如果在Full模式下要保持完整的顺序不变,那么Left和Right要素必须按照顺序排序。使用哪个转换器?那么你应该使用哪种转换器?那么需要考虑两个方面:功能和性能。对于使用数据库术语和功能的用户来说,FeatureJoiner在功能上来说肯定更好。它旨在模仿SQL,因此结果应该与输入相同的SQL连接命令相同。关键的输出差异是FeatureJoine啲每个要素匹配概念。FeatureMerger会让你创建一个列表。但是我想说,很多时候你立即使用ListExploder将列表分解为要素,所以我不确定在FeatureJoiner中没有List参数会带来多大的不便。另外,如果你确实需要列表,使用ListBuilder对Joined端口输出的要素进行创建列表,并且按照连接关键属性进行分组。这是输出顺序很重要的地方,因为如果FeatureJoiner输入适当排序,你可能可以在ListBuilder中设置按组排序的输入。至于性能,FeatureJoiner拥有改进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论