2

我正在研究 Aerospike python 客户端。我正在使用 aerospike loader 将数据插入集群。现在我需要查看记录是否成功存储在集群上。

正在使用的命令:

command = 'java -cp /aerospike-loader/aerospike-load-2.2-jar-with-dependencies.jar ' \
              '-Dlog4j.configuration=file:/aerospike-loader/log4j.properties ' \
              'com.aerospike.load.AerospikeLoad -h %s -p %d -n %s -c %s %s'
command_str = command % (self.host, self.port, self.namespace, tmp_json_file.name, data_file_path)

该文件tmp_json_file包含与此完全相同的配置文件内容:https ://www.aerospike.com/docs/tools/asloader/examples.html

现在如何检查数据是否传输成功?我尝试使用client.exists(key),但该meta字段返回未设置NonewritePolicy=true如何使用 python 客户端设置它的任何示例?或者任何其他方法来检查记录是否成功插入?

4

1 回答 1

2

您可以从 JSON 中提取所有键,并为每个组合一个元组(namespace, json-set, json-key)(我的意思是使用每个 JSON 对象的setandkey字段)。然后,您可以aerospike.Client.exists_many使用批量读取操作来验证密钥的存在。

即使您没有存储人类可读的密钥(这是默认行为,您可能不想花费额外的存储空间),每条记录都有一个唯一的 20B 摘要。该摘要是通过散列上述 3 元组的集合和主键部分在客户端中创建的。当您检查是否存在时,客户端将再次散列您给它的那些密钥,获得相同的摘要,并检查它们的存在。

于 2018-08-06T14:37:20.493 回答