翻譯|使用教程|編輯:況魚杰|2020-11-30 14:57:18.937|閱讀 311 次
概述:Altova MapForce是屢獲殊榮的圖形數(shù)據(jù)映射工具,可進(jìn)行任意轉(zhuǎn)換和集成,其功能包括輕松地將二進(jìn)制對象與所有流行的關(guān)系數(shù)據(jù)庫進(jìn)行數(shù)據(jù)映射。可以映射諸如圖像,PDF文件,視頻文件或任何其他二進(jìn)制數(shù)據(jù)的數(shù)據(jù)。本文將會給大家展示一個例子。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
二進(jìn)制對象很難在數(shù)據(jù)庫中管理。它們很大,它們的內(nèi)容是人類不可讀的,并且可以包含容易誤解為控制字符的數(shù)據(jù)字節(jié)。甚至二進(jìn)制大對象的數(shù)據(jù)類型名稱(BLOB)也反映了大多數(shù)數(shù)據(jù)庫管理者對它們的不滿。在關(guān)系數(shù)據(jù)庫之前,blob的定義是“未定義或不定的東西”。
Altova MapForce是屢獲殊榮的圖形數(shù)據(jù)映射工具,可進(jìn)行任意轉(zhuǎn)換和集成,其功能包括輕松地將二進(jìn)制對象與所有流行的關(guān)系數(shù)據(jù)庫進(jìn)行數(shù)據(jù)映射。可以映射諸如圖像,PDF文件,視頻文件或任何其他二進(jìn)制數(shù)據(jù)的數(shù)據(jù)。本文將會給大家展示一個例子。
MapForce包括兩個內(nèi)置函數(shù),即讀二進(jìn)制文件和寫二進(jìn)制文件,用于在二進(jìn)制對象和數(shù)據(jù)庫之間進(jìn)行映射。在本文中,將從MapForce聯(lián)機幫助中擴展一個讀取二進(jìn)制文件的示例,以構(gòu)建一個完整的映射,以將各種二進(jìn)制對象插入到關(guān)系數(shù)據(jù)庫中。
這是幫助示例,以說明將圖像插入數(shù)據(jù)庫:
該映射將名為image01.png的本地文件插入數(shù)據(jù)庫表中。我們可以看到數(shù)據(jù)庫的結(jié)構(gòu)在單獨的列中包含了一些有關(guān)圖像的元數(shù)據(jù),可以查詢這些元數(shù)據(jù)以提取同一圖像。你不會想把大的二進(jìn)制數(shù)據(jù)文件轉(zhuǎn)儲到數(shù)據(jù)庫中而沒有辦法在以后找到它們吧。
在用例中,我們將創(chuàng)建一個SQLite數(shù)據(jù)庫來跟蹤各種二進(jìn)制文件,這些二進(jìn)制文件是支持營銷部門多種產(chǎn)品的資產(chǎn)。二進(jìn)制數(shù)據(jù)可能是徽標(biāo)圖像文件,產(chǎn)品數(shù)據(jù)表的PDF,實際產(chǎn)品的屏幕截圖,照片,視頻文件等。
我們將從一個簡單的CSV文本文件開始,以描述我們要插入的信息:
在我們完成此項目時,用戶可能在數(shù)據(jù)庫中擁有數(shù)十個甚至數(shù)百個資產(chǎn)。當(dāng)以后需要提取資產(chǎn)時,資產(chǎn)類型的名稱將成為查詢的關(guān)鍵元數(shù)據(jù)。但是,如果類型列中的任何單個條目拼寫錯誤或不一致,則巨大的二進(jìn)制對象將被孤立并且無法恢復(fù)。
我們可以通過將CSV文件導(dǎo)入XMLSpy并生成XML Schema(其中從定義的列表中選擇Type元素)來實施資產(chǎn)類型的列表。然后,沒有經(jīng)驗的營銷實習(xí)生可以在XMLSpy Grid視圖中創(chuàng)建資產(chǎn)列表。強制執(zhí)行“類型”字段:
我們還可以將產(chǎn)品名稱列表添加到XML模式,或者至少要求顯示Product元素。我們甚至可以將Asset類型設(shè)置為xs:anyURI,以強制引用文件。這是XMLSpy Schema視圖中的Details helper窗口,其中具有Asset元素的數(shù)據(jù)類型設(shè)置:
無論從CSV還是XML源進(jìn)行映射,MapForce中的數(shù)據(jù)映射二進(jìn)制對象本質(zhì)上都是相同的。接下來將從打開一個新的MapForce數(shù)據(jù)映射開始,然后放入資產(chǎn)列表和數(shù)據(jù)庫表。
使用DatabaseSpy創(chuàng)建了一個新的SQLite數(shù)據(jù)庫表,并對MapForce幫助中的示例進(jìn)行了一些改進(jìn)。產(chǎn)品列將包含產(chǎn)品名稱,資產(chǎn)類型將顯示在描述列中。recordDate列將跟蹤每個二進(jìn)制對象的使用期限。
現(xiàn)在,我們將按照MapForce幫助中的說明將id列設(shè)置為自動編號,并繪制源和目標(biāo)之間的簡單連接:
產(chǎn)品和類型從源直接映射到數(shù)據(jù)庫中的列。映射行元素指示輸入的每一行創(chuàng)建新的數(shù)據(jù)庫記錄。
現(xiàn)在,將二進(jìn)制數(shù)據(jù)映射到數(shù)據(jù)庫中的BLOB:
內(nèi)置的MapForce函數(shù)read-binary-file使用源的Asset元素中提供的文件名來創(chuàng)建BLOB。read-binary-file函數(shù)始終將源視為base64binary數(shù)據(jù),無論基于源文件名的約定如何。
要完成映射,我們需要建立連接以從Asset中提取文件名并保存存儲日期:
刪除文件夾功能會自動從本地文件,網(wǎng)絡(luò)文件或Web上文件的任何路徑中提取文件名。
now函數(shù)記錄了映射執(zhí)行的日期和時間,但我們只需要日期,因此我們使用substring-before丟棄了時間。
映射窗格底部的“輸出”按鈕執(zhí)行映射并生成一個SQL腳本:
該腳本只是到目前為止檢查結(jié)果的預(yù)覽。在主“輸出”菜單上的選擇將運行腳本:
顯示腳本結(jié)果:
單擊“數(shù)據(jù)庫查詢”按鈕以連接到數(shù)據(jù)庫,并在MapForce中進(jìn)一步驗證結(jié)果:
通過查看productfile列中的BLOB并不能說明太多,但是其他列會創(chuàng)建有關(guān)每種資產(chǎn)的有用元數(shù)據(jù)。
在后續(xù)文章中,將演示數(shù)據(jù)映射二進(jìn)制對象以從數(shù)據(jù)庫中提取資產(chǎn)并將其保存為原始形式。如果迫不及待,請下載軟件,以開始自己的數(shù)據(jù)映射,轉(zhuǎn)換項目吧!
如果您想要了解Altova MapForce的正版授權(quán)產(chǎn)品,可以點擊在線客服>>
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: