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