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?
You can programmatically parse and save data in SQL tables depending on operation logic you need: