hmi*_*ims 5 database csv import nested aerospike
我已将 JSON 文件转换为 CSV 格式,现在使用 aerospike 加载器在 Aerospike 中加载 CSV。我可以为简单的结构执行此操作,但是如何修改 allDatatype.json 的内容以在 Aerospike 中加载嵌套的 CSV 文件?
https://github.com/aerospike/aerospike-loader/tree/master/example
JSON 文件
{
"centers" : {
"ER" : {
"admin":{
"users" : {
"emp1" : {
"password" : "abcdefgh",
"username" : "pankaj-roy"
},
"emp2" : {
"password" : "12345678",
"username" : "niketan-shah"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我必须承认,我的理解是有限的,因为我刚刚开始研究 Aerospike,忘记了您想要将整个对象存储在一个对象中(正如上面评论中所建议的,因为这更像是一个文档存储)。相反,您需要在键值术语的世界中考虑它。我的理解是上面的 json 有效负载应该像这样存储在 Aerospike 中
Bin=users
Set=creds
Key=(username, "pankaj-roy")
bin=(password, "abcdefgh")
bin=(role, "admin")`
Run Code Online (Sandbox Code Playgroud)
那么你可以这样做:
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");
Run Code Online (Sandbox Code Playgroud)