Riak 과 맵 리듀스

이동욱

2022/04/07

Categories: 데이터베이스 Tags: 데이터베이스

예시


map = function (v) {
  var parsedData = JSON.parse(v.values[0].data);
  if (parsedData.country == 'CA')
      return [{count : 1}];
  else
      return [{count: 0}];
}

reduce = function(mappedVals) {
  var sums = {count : 0};
  for (val i in mappedVals) {
      sums[count] += mappedVals[i][count];
  }
  return [sums];
}

Riak 에서의 맵 리듀스


curl -X POST -H "content-type:application/json" \
http://localhost:10018/mapred --data @-
{
    "inputs": [
        ["rooms", "101"],
        ["rooms", "102"],
        ["rooms", "103"]
    ],
    "query": [{
                "map": {
                "language": "javascript",
                "source": "function(v) {
                    var parsed_data = JSON.parse(v.values[0].data);
                    var data = {};
                    data[parsed_data.style] = parsed_data.capacity;
                    return [data];
                }"
        }
    }]
}
curl - X POST - H "content-type:application/json"\
http: //localhost:10018/mapred --data @-
    {
        "inputs": "rooms",
        "query": [{
                "map": {
                    "language": "javascript",
                    "bucket": "my_functions",
                    "key": "map_capacity"
                }},
                {
                    "reduce": {
                        "language": "javascript",
                        "source": "function(v) {
                            var totals = {};
                            for (var i in v) {
                                for (var style in v[i]) {
                                    if (totals[style]) totals[style] += v[i][style];
                                    eles totals[style] = v[i][style];
                                }
                            }
                            return [totals];
                        }"
                }
            }]
    }

키필터


일관성과 지속성


참고 문헌


>> Home