현재 JSON 파일 (일부 사용자 트랜잭션 데이터가 포함 된 JSON 직렬화 된 객체)을 허용하는 API가 있으며이를 서버에 저장합니다. 이러한 모든 JSON 파일에는 고유 한 전역 ID와이 고유 ID가 연관되어있는 고유 한 사용자가 있습니다. 매일 수십억 개의 이러한 파일이 생성됩니다. 사용자는 그와 연관된 모든 JSON 파일을 통해 쿼리 할 수 있어야하며 해당 파일의 최상위에서 계산 된 많은 집계 결과를 생성해야합니다.수십억 개의 JSON 파일을 저장하고 쿼리하는 방법
[ { "currencyCode" : "INR",
"receiptNumber" : { "value" : "1E466GDX5X2C" },
"retailTransaction" : [ { "grandTotal" : 90000.0,
"lineItem" : [ { "otherAttributes" : { },
"sale" : { "description" : "Samsung galaxy S3",
"discountAmount" : { "currency" : "INR",
"value" : 2500
},
"itemSubType" : "SmartPhone",
"otherAttributes" : { },
"unitCostPrice" : { "quantity" : 1,
"value" : 35000
}
},
"sequenceNumber" : 1000
},
{ "customerOrderForPickup" : { "description" : "iPhone5",
"discountAmount" : { "currency" : "INR",
"value" : 5000
},
"itemSubType" : "SmartPhone",
"otherAttributes" : { },
"unitCostPrice" : { "quantity" : 1,
"value" : 55000
}
},
"otherAttributes" : { },
"sequenceNumber" : 1000
}
],
"otherAttributes" : { },
"reason" : "Delivery",
"total" : [ { "otherAttributes" : { },
"type" : "TransactionGrossAmount",
"value" : 35000
} ]
},
null
],
"sequenceNumber" : 125435,
"vatRegistrationNumber" : "10868758650"
} ]
위의 JSON은 단일 또는 속성과 다른 클래스의 객체의 배열을 포함하는 복합 객체의 직렬화 된 버젼 :
저장 될 필요가 전형적인 JSON 파일
이 같이 보입니다. 따라서 'receiptNumber'는 JSON 파일의 유니버설 ID입니다.나는 등 다양한 거래 JSONs의 aggegate **로 customerOrderForPickup 또는 거래의 grandTotal의 수량 및 가치와 같은 물건을 조회해야하고,있는 것
나는이 방법으로 몇 가지 제안을하고 싶습니다 1) 이러한 JSON 파일을 파일 시스템에 저장합니다. 2) 이러한 복잡한 구조의 JSON 파일을 쿼리 할 때 사용해야하는 데이터베이스는 무엇입니까?
내 연구 결과에 따르면 몇 가지 문제점이 있습니다. 1) MongoDB 데이터베이스를 사용하여 오브젝트의 JSON 대표를 저장하고 데이터베이스를 통해 조회하십시오. JSON 파일은 어떻게 저장됩니까? 트랜잭션 JSON을 MongoDB 데이터베이스에 저장하는 가장 좋은 방법은 무엇입니까? 2) 서버에있는 고유 한 전역 ID, 사용자 ID 및 JSON 파일 주소를 포함하는 SQL 데이터베이스와 해당 파일에 대한 집계 코드를 결합하십시오. 이 크기를 조정할 수 있는지 의심 스럽습니다.
누군가가 문제에 대해 통찰력을 가지고 있다면 기쁘게 생각합니다. 감사.
이 원본 데이터를 기반으로 한 차원 데이터 마트를 만들 았습니까? MongoDB의 JSON에 대한 분석은 실망 스럽습니다. 이것은 트랜잭션 처리 시스템의 결과처럼 보입니다. 관계형/차원 DB는 이러한 유형의 작업을 수년간 매우 잘 수행해 왔습니다. –
괜찮은 접근 일 수 있지만 데이터 마트의 속성 (예 : 추가 통계 조치)이 계속 증가하면서 문제가 될 것이라고 생각하지 않습니까? – zenCoder
매일 수십억 항목이 있습니까? 그건 오타예요? – shahkalpesh