2013-01-12 32 views
3

根據this等參考文獻,Pig比Hive處理非結構化數據要好。所以,數據首先用Pig清洗,然後用Hive處理。Pig如何處理非結構化數據,而Hive不能?

但是,在數據工廠中,數據可能不是一個很好的標準化狀態。這使得Pig非常適合這種用例,因爲它支持具有部分或未知模式的數據以及半結構化或非結構化數據。

想知道更多Pig如何處理非結構化數據,而Hive不能。

+0

你可能想讀這個:http://bluecanarydata.com/hive-for-un-structured-data/ – Claudio

回答

2

Pig的構建是爲了處理更少架構的數據集......在蜂巢中,我們強制執行一個存儲在derby中的模式,或者可以配置爲在mysql中存儲。現在不清楚你在找什麼!

+0

我想了一下,這也是我的想法 - 沒有必要定義一個豬的模式。可以使用位置來引用字段,如果未指定類型,則推斷字節數組。 –

+0

如果看到性能比較,Hive比Pig更快。有些情況下Pig不能使用。 Pig的唯一目的是處理Hive數據可以駐留的地方,這就是他們可以在hadoop上的數據倉庫設施的原因。 – debarshi

0

Pig和Hive之間的主要區別在於Pig是一種數據流語言,而Hive是一種聲明性語言。據說,Pig可以處理未定義架構的非結構化數據,而Hive需要架構。另外,在某些情況下,Pig還可以用於將數據與架構相連,使其優先於Hive。相比之下,Hive將Hadoop轉換爲數據庫軟件,並像SQL方言一樣行事。最後,你可能想知道Jaql是另一種數據流語言。與Pig不同,它的原生數據結構格式是JSON。同樣,Jaql不需要架構。希望這可以幫助。