翻譯|使用教程|編輯:況魚杰|2021-03-04 13:40:23.650|閱讀 542 次
概述:軟件開發人員和其他數據專業人員經常需要將數據從一種格式轉換為另一種格式。這些轉換可以是簡單的一對一轉換,也可能需要更復雜的操作。例如,將平面CSV文件導入數據庫時必須生成關系,否則可能需要為目標拆分源數據,如全名與名字,名字,中間,姓氏和可選后綴的區別。驗證數據轉換對于防止數據丟失或損壞至關重要。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Altova MapForce是屢獲殊榮的圖形數據映射工具,可進行任意轉換和集成,其功能包括輕松地將二進制對象與所有流行的關系數據庫進行數據映射。可以映射諸如圖像,PDF文件,視頻文件或任何其他二進制數據的數據。
軟件開發人員和其他數據專業人員經常需要將數據從一種格式轉換為另一種格式。這些轉換可以是簡單的一對一轉換,也可能需要更復雜的操作。例如,將平面CSV文件導入數據庫時必須生成關系,否則可能需要為目標拆分源數據,如全名與名字,名字,中間,姓氏和可選后綴的區別。驗證數據轉換對于防止數據丟失或損壞至關重要。
MapForce包含一個功能強大的交互式數據映射調試器,可以輕松跟蹤和驗證此轉換。讓我們看一下它是如何工作的。
這是數據映射中的用戶函數calc-local-time的視圖:
該函數接受dt_txt(這是日期和時間的字符串值,格式為2020-02-22 18:00:00),以及timezone的數值,即相對于GMT的預測位置的偏移量(以秒為單位)。
函數的輸出映射到Excel電子表格的A列。在電子表格中,列A的格式定義為日期,指定的格式包括時間,如5/20/20 4:00 PM。
雙擊用戶函數的標題將其展開以顯示各個操作:
兩個輸入值在右側,最后一個輸出為A的輸出在最左側。簡單地講,該函數將時區中的秒數添加到dt_txt日期和時間以計算本地時間。MapForce包括一個內置的datetime-add函數,該函數執行此操作,如上圖所示,位于輸出值A的左側。從Web服務接收的輸入值以不同的格式輸入,并且必須調整為datetime-add函數的格式和語法。
使用MapForce調試器驗證數據轉換
可以使用MapForce調試器來跟蹤用戶功能的步驟,以確保它給出了所需的結果。首先,將通過右鍵單擊時區輸入來設置調試斷點:
將打開幾個調試幫助器窗口,并繼續執行映射,直到到達斷點為止。斷點處的處理后的值突出顯示:
這里有幾個步進選項可以繼續執行。最小步長選項提供了最細致的執行視圖。
該命令細分了一個步驟,通常每個連接都會停止兩次:一次在其源產生值時停止,一次在其目標使用該值時停止。重復單擊“最小步長”將繼續執行映射,并允許我們確切地了解calc-local-time函數處理過程中發生的情況:
當繼續逐步執行時,每個連接處的值都會添加到窗口中。
內置的datetime-add函數需要第一個輸入的datetime值和一個字符串值,該值指定要添加的時間段作為第二個值。在下面的圖像中,繼續逐步提高輸出值的產生。突出顯示的是datetime-add函數的輸入和最終產生的結果:
秒的原始偏移值為28,800秒,等于八個小時。產生的結果比dt_txt參考時間晚八小時,因此輸出有效。
考慮其他情況
與GMT時間的偏差僅對GMT以東的位置為正。GMT以西的位置應具有負偏移量。換句話說,紐約位于倫敦以西,當地時間更早。北京位于格林尼治標準時間東部,當地時間較晚。
對于時區偏移為負的情況,需要驗證calc-local-time函數。 有幾種方法可以做到這一點。輸入的引用清單在GMT的某些位置,在GMT的西部。可以繼續逐步執行,直到遇到時區為負的位置。
Web服務針對每個城市返回40個預測,因此遍歷整個前四個城市將很繁瑣。
可以修改城市列表以在列表頂部插入一個來自西半球的新城市,也可以為測試案例創建一個新的輸入文件。在許多情況下,這是一種合理的測試策略。
或者,可以設置斷點條件。如果可以將斷點設置為僅在遇到的值為負時才暫停,則可以繼續使用原始輸入文件。這將是得出最終結論的最快方法。返回到數據映射,右鍵單擊斷點以修改其屬性:
這將打開一個對話框,在其中設置屬性以使斷點成為條件。下圖中顯示了如果時區值為負,則暫停執行的條件:
現在可以在調試模式下重新執行映射。輸入清單上位于格林尼治標準時間東部的前幾個城市都將被處理。當遇到第一個負時區值時,將觸發斷點并暫停執行。
使用與上述相同的步進技術,可以跟蹤calc-local-time函數處理時負值發生了什么。
-25,200秒的時區值轉換為字符串。然后,內置的concat函數在開頭和結尾添加字符,以為datetime-add函數構建持續時間字符串。
添加負值與減法相同,但是此時持續時間的語法不太正確。負號(連字符)必須是持續時間字符串的第一個字符,因此replace函數將在字符串中搜索PT-,如果找到,則將其替換為-PT。
25,200秒的值是七個小時。從2020-05-23T00:00:00的輸入值中減去7小時等于2020-05-22T17:00:00或5:00 PM的5/33/2020。現在,已經驗證了具有正負偏移量的情況下的用戶功能。
無論您是要驗證數據轉換的準確性還是跟蹤意外結果,MapForce數據映射調試器都可以以前所未有的方式提供對數據集成和ETL項目的確切內部工作的深刻洞察。
為了實現更高的自動化生產,可以將MapForce映射部署到FlowForce Server并根據各種觸發器執行。要開始您自己的數據映射,轉換和轉換項目,請下載一個免費的試用版,包括教程,幫助和更多示例!
如果您想要了解Altova MapForce的正版授權產品,可以點擊在線客服>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: