如何使用aerospike loader在aerospike中加载嵌套的csv文件?

时间:2015-09-26 07:44:40

标签: database csv import nested aerospike

我已将JSON文件转换为CSV格式,现在使用aerospike loader在Aerospike中加载CSV。我可以为简单的结构做这个,但是如何修改allDatatype.json的内容以在Aerospike中加载嵌套的CSV文件?

https://github.com/aerospike/aerospike-loader/tree/master/example

JSON FILE

{
"centers" : {
"ER" : {
"admin":{
"users" : {
  "emp1" : {
    "password" : "abcdefgh",
    "username" : "pankaj-roy"
  },
  "emp2" : {
    "password" : "12345678",
    "username" : "niketan-shah"
  }
}
}
}
}
}

CSV文件

centers.ER.admin.users.emp2.username,centers.ER.admin.users.emp2.password, centers.ER.admin.users.emp1.username,centers.ER.admin.users.emp1.password
niketan-shah,12345678,pankaj-roy,abcdefgh

1 个答案:

答案 0 :(得分:3)

我必须承认的理解是有限的,因为我刚刚开始研究Aerospike就是忘记你想要将整个对象存储在一个中(正如上面评论中所建议的那样,因为这更像是一个文档存储)。相反,你需要在键值术语的世界中考虑它。我的理解是你上面的json有效负载应该存储在Aerospike中,如此

Bin=users
Set=creds
Key=(username, "pankaj-roy")
bin=(password, "abcdefgh")
bin=(role, "admin")`

然后你可以这样做:

user_key = new Key("users", "creds", username);
user_records = client.get(null, user_key);
console.printf("username:   " + user_records.getValue("username") + "\n");
console.printf("password:   " + user_records.getValue("password") + "\n");