Programming model
MapReduce provides us an easy way to create parallel programs without concern for message passing or synchronization. This can help us to perform complex aggregation tasks or searches. As we can observe in the following screenshot, MapReduce may work with less organized data (such as noisy text or schemaless documents) than the traditional relational databases. However, the programming model is more procedural, which means that the user must have some programming skills, such as in Java, Python, JavaScript, or C. MapReduce requires two functions: the Map
function, which creates a list of key-value pairs; and Reduce
, which iterates over each value and then applies some process (merge or summarization) to get an output.
The data could be split into several nodes (sharding); in this case, we will need a partition
function. This partition
function will be in charge of sorting and load balancing. In MongoDB, we can work over sharded collections automatically without any configuration...