0
我正在開發一個項目來分析Hadoop中的日誌文件。這些文件以XML格式存儲元數據。問題是,每個文件存儲多個請求,因此在同一個文件中有多個根元素。我無法更改日誌文件。有人可以幫助如何使用Hive查詢文件嗎? 文件的一個例子是使用多個XML對象查詢日誌文件
<?xml version="1.0" encoding="UTF-8" ?>
<book>
<title>C Proramming </title>
<price> 120.00 </price>
</book>
<book>
<title> Java for Dummies </title>
<price> 400 </price>
</book>
現在,有2個元素,或者說沒有,因爲你想看到它。我如何繼續查詢這樣的文件?
非常感謝。
這是一個很好的例子,說明爲什麼XML是一種可怕的日誌記錄格式 - 它不僅非常詳細,將日誌條目的大小加倍,而且日誌條目的未指定限制幾乎意味着不可避免的格式錯誤的文檔。當你需要分析它來創建一個有效的文檔時,你可以將整個文件的副本包裝在一個根元素中,但這是一個令人討厭的黑客行爲,所以我不打算將它作爲答案。 – glenatron 2014-11-24 12:26:28
@glenatron我寧願爭辯說,你的評論是一個很好的例子,指責沒有理由的人責怪XML。首先,OP從不抱怨太大的日誌文件,因此修復一個不存在的問題是毫無意義的。在現實世界中,文件的大小通常無關緊要(誰在乎它是1MB還是2MB?)。當然有些情況很重要,但是XML可能不是最好的選擇。另外,把它放到一個聰明的XML數據庫中將會消除冗餘,並且存儲將會更小,更小 – dirkk 2014-11-24 12:35:31
另外,這個文檔的格式不正確是XML的錯誤嗎?有很少的規則需要有一個格式良好的文檔。是什麼讓XML成爲「可怕的格式」,因爲某些程序正在生成無效數據?在每種存儲格式中,您都有規則如何存儲內容。創建一個根節點是沒有問題的,因此它絕不是「不可避免的」 – dirkk 2014-11-24 12:38:22