2011年5月14日 星期六

Building a high-level dataflow system on top of Map-Reduce the Pig experience

Summary:
作者們在這篇中提出了一個簡單、且明確的dataflow的programming model。Pig這個model是一個high-level dataflow system,其切中了一個介於SQL和map-reduce之間的甜蜜點。其擁有類似SQL的high-level data manipulation,而靠此特性可以整合成有明確的dataflow客制化map和reduce function。
而由於map-reduce簡單的特性,會導致以下的問題:
1. 沒有辦法直接的去support N-step dataflow, 但這個需求在實際上卻很常見。
2. Map-reduce也缺少了給予combined processing of multiple datasets一個明確的support。
3. 一些需要頻繁的去抓取data的運作,像是filter、aggregation、top-k thresholding等等都必須要用人工去coding。
以上的問題會導致data analysis的速度,也會造成某些錯誤,或是使得data processing program變得難以閱讀。
作者提供了一個有著SQL精神的可組合式高階data manipulation constructs,同時又保留了map-reduce某些吸引人的特性,提出了Pig這個系統。
而在performance的部分,作者也提出了和map-reduce比較的數據,目前是需花費較純粹map-reduce多出50%的運算時間,但是這個可以視為一個介於code development/maintenance effort和執行時間之間的取捨。

沒有留言:

張貼留言