gpt4 book ai didi

mapreduce - 在 mapreduce 中使用二级索引时 Riak.mapValuesJson 失败

转载 作者:行者123 更新时间:2023-12-03 08:04:50 24 4
gpt4 key购买 nike

我有一个运行 eLevelDB 后端的 Riak 数据库,当我使用这个 map reduce 进行查询时,我得到了作为 JSON 字符串返回的所有数据(正如预期的那样):

{
"inputs":"TWEETS_BY_ID",
"query":[
{"map":
{"language":"javascript",
"name":"Riak.mapValuesJson"
}
}]
}

这个查询很慢,我真的只想查询整个桶的一小部分。我有一个带有时间戳的二级索引,所以我尝试运行这个 mapreduce:

{
"inputs":
{
"bucket":"TWEETS_BY_ID",
"index":"timestamp_int",
"start":"1375736484000",
"end":"1375736485000"
},
"query":[
{"map":
{"language":"javascript",
"name":"Riak.mapValuesJson",
"keep":true
}
}
]
}

我收到这个错误:

{error,{exit,{json_encode,{bad_term,{1375736484000,<<"364491348659142656">>}}},
[{mochijson2,json_encode,2,
[{file,"src/mochijson2.erl"},{line,149}]},
{mochijson2,'-json_encode_proplist/2-fun-0-',3,
[{file,"src/mochijson2.erl"},{line,167}]},
{lists,foldl,3,[{file,"lists.erl"},{line,1197}]},
{mochijson2,json_encode_proplist,2,
[{file,"src/mochijson2.erl"},{line,170}]},
{mochijson2,'-json_encode_proplist/2-fun-0-',3,
[{file,"src/mochijson2.erl"},{line,167}]},
{lists,foldl,3,[{file,"lists.erl"},{line,1197}]},
{mochijson2,json_encode_proplist,2,
[{file,"src/mochijson2.erl"},{line,170}]},
{mochijson2,'-json_encode_array/2-fun-0-',3,
[{file,"src/mochijson2.erl"},{line,157}]}]}}

我确实升级到了今天发布的 1.4.1,其中有一个关于二级索引和 Javascript mapreduces 的错误报告,但这似乎并没有改变我的错误。我什至不确定如何开始调试它。有什么建议吗?

最佳答案

您发现了一个错误。当您对当前使其与 mapreduce 不兼容的索引执行范围查询时,会出现返回匹配项的新行为。要解决此问题,请先获取 source tar如果你还没有的话。解压文件并编辑 riak-1.4.1/deps/riak_kv/include 中的文件 riak_kv_index.hrl,更改行

          return_terms=true :: boolean(), %% Note, should be false for an equals query

          return_terms=false :: boolean(), %% Note, should be false for an equals query

要只编译索引模块,运行

 /usr/lib/riak/erts-5.9.1/bin/erlc -I riak-1.4.1/deps/riak_kv/include riak-1.4.1/deps/riak_kv/src/riak_index.erl

这应该会为您创建一个新的 riak_index.beam 文件。

找到旧的 riak_index.beam,备份它,用新的替换它,停止然后启动 riak。在所有节点上重复此操作,您应该可以恢复业务。

关于mapreduce - 在 mapreduce 中使用二级索引时 Riak.mapValuesJson 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18070217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com