@
一、定義
通過相同的屬性值或者表達式來合並兩個數據源的屬性或圖形。
二、如何工作
1、通過兩個接口接收數據源,一個是Requestor,一個是Supplier:
- Requestor(請求者):請求者將會合並新的屬性或圖形。
- Supplier(提供者):提供者用於提供新的屬性或圖形。
2、通過相同的屬性連接匹配。
通過參數窗口的 Join on 參數欄設置匹配屬性。
2.1 舉個栗子
假設我們有2個的表格,名字是主鍵,我們將通過名字進行關聯。
+
=
2.2 工作流
將2個表格分別連接到Requetor和Supplier上,設置好輸出表格(屬性模式選擇”自動“,會自動讀取所有的屬性字段),將輸出表格連接到Merged輸出端口。
輸出端口 | 說明 |
---|---|
Merged | Requestor匹配上Supplier的記錄會合並在一起然后輸出 |
UnmergedRequestor | 輸出沒有匹配上的Requestor的記錄 |
UsedSupplier | 輸出被使用的Supplier記錄 |
UnusedSupplier | 輸出沒有被使用的Supplier記錄 |
Rejected | 輸出被拒絕的記錄,例如重復的記錄 |
三、參數說明
3.1 參數設置
在 Join On 欄中設置Requestor和Supplier用於匹配的屬性字段,可以是屬性或者是表達式。
3.2 重要參數詳解
3.2.1. Group By(分組)
選擇一個字段,將數據分組,然后Requestor和Supplier將根據相同的分組進行匹配,不會匹配到不同組的記錄。
將數據進行分組后匹配能夠提高轉換器運行效率。
3.2.2. Feature Merge Type(合並模式)
- Attributes Only: 只合並屬性(根據在Attribute Accumulation中設定的屬性合並規則合並)
- Geometry: 只合並圖形(如果同一記錄下Request和Supplier都有圖形,將會被Supplier的圖形替換)
- Attribute and Geometry: 合並屬性和圖形(屬性根據Attribute Accumulation設定的規則合並,圖形以Supplier為准)
3.2.3. Process Duplicate Suppliers(處理重復提供者)
如果不勾選,Requestor只會匹配到第一個匹配上的Supplier,其余重復的Supplier將會被拒絕,從Rejected端口輸出。
如果勾選,重復的Supplier將會一起合並到Requestor中,但是屬性任然只會使用第一個提供者的;多個提供者的圖形則會以聚合或者重構的形式出現,用於替換請求者的圖形。
PS:FME默認設置為遇到Rejected要素會中斷運行,可以在導航欄中的Workspace Parameters>Translation>Rejected Feature Handing選項中切換Terminate Translation為Continue Translation,讓FME遇到Rejectid要素會繼續運行。
3.2.4. Attribute Accumulation(屬性合並方式)
- Merge Supplier: 合並提供者,在該模式下可以選擇Conflict Resolution(沖突解決模式)。Use Requestor或Use Supplier,即屬性發生沖突時使用請求者或提供者的屬性。
- Prefix Supplier: 前綴提供者,設置前綴后的提供者屬性將與請求者的屬性並列。
- Only Use Supplier: 只使用提供者,拋棄請求者的所有屬性,只使用提供者的屬性。
3.2.5. Generate List(生成列表)
因為Merged端口只會輸出Requestor端口輸入的匹配記錄,只會展示匹配到的第一條提供者信息,無法展示一對多的數據情況。如果存在一對多的對應關系,並且要將這種對應關系展示出來,那就需要生成列表。
勾選Generate List后需要指定列表名稱,和生成列表的屬性字段,可選All Attributes(全部字段)或Selected Attributes(選擇字段)。
生成列表之后需要通過ListExploder(列表暴露)轉換器將列表數據暴露出來。在ListExploder轉換器中選擇要暴露的列表名稱,設置屬性合並模式即可。
四、我的博客
想了解更多關於FME信息的可以關注一下我的個人博客:藍線白框