I have only one large JSON file. For example,
{
"Name": "Motor_M23",
"AASID": {
"IDType": "URI",
"IDSpec": "http://acplt.org/AAS/Motor_M23"
},
"AssetID": {
"IDType": "URI",
"IDSpec": "http://acplt.org/Assets/Motor_M23"
},
"Header": {
"PropertyValueStatementContainers": [
{
"Name": "Config",
.
.
.
.
I need to support operations following operations:
Querying for an element should return all child elements e.g. Querying for
AssetID
should return"AssetID": { "IDType": "URI", "IDSpec": "http://acplt.org/Assets/Motor_M23" }
Update value of elements.
- Delete elements.
- Move elements between hierarchy levels e.g. make
AssetID
child element ofAASID
.
I considered following approaches:
- Graph database : I started reading about Neo4J. However, it can not create graph from JSON intellgently. One has to specify node type and their hierarchy order.
- ElasticSearch : It can work by treating JSON as text and hence not efficient solution.
- Postgres : It supports querying over JSON objects but updating, deletions won't be efficient.
Is there any good database out there which can load data from large JSON and handle my operations?