數(shù)據(jù)映射是集成中的關(guān)鍵元素。大多數(shù)杰出的集成工具為數(shù)據(jù)映射提供了不同的功能。在本文中,想到了如何在Kumologica中實現(xiàn)數(shù)據(jù)映射的共享。Kumologica使用JSONata作為數(shù)據(jù)映射的基礎(chǔ)。JSONata是用于JSON數(shù)據(jù)的輕量級查詢和轉(zhuǎn)換語言。它支持可以用最少的語法實現(xiàn)的復(fù)雜查詢表達(dá)式,并且具有Xpath 3.1的位置路徑語義。
要了解Kumologica數(shù)據(jù)映射,請創(chuàng)建一個API,該API將接受JSON數(shù)據(jù)作為API請求,并將其映射到新的JSON數(shù)據(jù)結(jié)構(gòu)并作為API響應(yīng)提供。映射完成后,請求JSON數(shù)據(jù)也將按降序排序。Kumologica數(shù)據(jù)映射器節(jié)點將同時實現(xiàn)映射和排序功能。
前提條件
1.下載并安裝了Kumologica Designer。(必需)
2.教程演練(可選)。
開發(fā)API
1.打開Kumologica Designer并創(chuàng)建一個新項目。
2.將EventListener節(jié)點從面板拖放到設(shè)計器畫布上。
3.使用Source作為API Gateway配置EventListener節(jié)點。動詞為POST ,路徑為/ employee。
4.將數(shù)據(jù)映射器節(jié)點從面板拖放到設(shè)計器上。
5.在datamapper節(jié)點的Sample Input部分上,粘貼以下內(nèi)容:
[
{
"Candidate_Name" : "Arun",
"Candidate_Age" : "25"
},
{
"Candidate_Name" : "John",
"Candidate_Age" : "32"
},
{
"Candidate_Name" : "Sarah",
"Candidate_Age" : "22"
},
{
"Candidate_Name" : "Harry",
"Candidate_Age" : "28"
}
]
在數(shù)據(jù)映射器節(jié)點的“ 映射”部分上,粘貼以下映射表達(dá)式。
$sort(
$map(
msg,
(
function($l){
{
"EmpName" : $l.Candidate_Name,
"Emp_Age" : $l.Candidate_Age
}
}
)
),
function($l,$r){$l.Emp_Age < $r.Emp_Age}
)
在datamapper節(jié)點的Result部分(底部)上,您可以看到針對提供的樣本輸入JSON數(shù)據(jù)運行映射表達(dá)式后,該節(jié)點將生成的結(jié)果輸出。以下是結(jié)果輸出。
[
{
"EmpName": "Jhon",
"Emp_Age": "32"
},
{
"EmpName": "Harry",
"Emp_Age": "28"
},
{
"EmpName": "Arun",
"Emp_Age": "25"
},
{
"EmpName": "Sarah",
"Emp_Age": "22"
}
]
如您所見,顯示的Result輸出已將JSON請求映射到新結(jié)構(gòu),并且還按降序?qū)τ涗涍M(jìn)行了排序。
6.現(xiàn)在,將EventListener End節(jié)點拖放到畫布上。
7.打開EventListener End的設(shè)置,并將有效負(fù)載配置為msg.payload,并將其余的值保留為默認(rèn)值。
8.將EventListener節(jié)點連接到Datamapper節(jié)點,并將Datamapper節(jié)點連接到EventListenerEnd節(jié)點。
部署方式
現(xiàn)在,將流程部署到AWS lambda。部署之前,請在云選項卡下選擇AWS配置文件。還要確保您選擇的AWS配置文件具有關(guān)聯(lián)的Kumologica Designer角色。如果未關(guān)聯(lián)適當(dāng)?shù)慕巧瑒t該流程將無法部署到AWS。現(xiàn)在,單擊Deploy。
部署完成后,您將獲得端點URL,以從您喜歡的任何客戶端調(diào)用服務(wù)。
Kumologica中的映射機制很簡單,并且遵循函數(shù)鏈,從而可以用最少的語法構(gòu)建復(fù)雜的查詢表達(dá)式。設(shè)計人員可以快速預(yù)覽,而無需部署和運行整個流程,從而節(jié)省了大量時間。JSONata表達(dá)式語言看起來或多或少類似于Mulesoft Dataweave。因此,如果您熟悉dataweave,那么JSONata將需要零或最小的學(xué)習(xí)曲線。想了解更多關(guān)于大數(shù)據(jù)的信息,請繼續(xù)關(guān)注中培偉業(yè)。