2017-09-26 71 views
0

我們有一個要求,我們要創建一個用戶配置文件數據。這個配置文件數據/模式將隨着時間的推移而不斷髮展,越來越多的屬性將被添加到配置文件中。一些數據可能被刪除,更新和擴展。我想知道Hive + Avro是否適合這種用例(我認爲配置單元不是無模式,不支持模式演變 - 更適合不可變的數據)。 HBase/Cassandra會是一個不錯的選擇嗎?配置單元和模式演變

回答

0

與蜂巢/ Avro的模式進化是完全可能的 - 一個很好的解釋可以發現here,但它看起來像它目前不支持ACID插入/更新的Avro的數據集/刪除(ORC文件格式雖然支持)也HBase的/ Cassandra可以用於這個用例。這些技術之間的主要區別在於你如何處理不斷髮展的數據(讀/寫性能,底層存儲,CAP屬性,用於數據查詢彙總的底層框架(map-reduce或native)等)以及每個數據庫提供的其他特定功能這些技術。你可以檢查這三個並排比較here

+0

感謝您的鏈接。我有關於更新和刪除現有記錄的問題。例如,在上面的鏈接可以說「natalia」我想要將國家改爲「意大利」並且想要刪除「tofi」的記錄,我可以通過Hive執行此操作嗎?這是否在Avro文件中更改?由於Avro文件是不可變的(因爲它在HDFS中),它是否會創建一個新的Avro文件? 我明白這是如何在HBase中工作的(它通過維護不同的HFile(不可變)來自動處理此問題,然後進行次要/主要壓縮以僅保留最新版本的數據) – sunillp

+0

如果我得到您對 - 我認爲Hive不支持Avro格式的事務性插入/更新/刪除,但似乎目前僅支持ORC文件格式。所以這將在你的用例中排除Avro。 – Shailendra

+0

然後,ORC文件格式是否支持模式演變,即即時爲新的或現有記錄添加新列?我需要所有這些支持插入/更新/刪除/擴展模式爲新的或現有的記錄。你認爲HBase/Cassandra會是更好的選擇嗎? – sunillp