0

私は現在、JSONファイル(ユーザートランザクションデータを含むJSONシリアル化オブジェクト)を受け入れ、それをサーバーに保存するAPIを持っています。このようなすべてのJSONファイルには、一意のグローバルIDとそれが関連付けられている一意のユーザーがあります。ユーザーは、自分に関連付けられているすべてのJSONファイルをクエリして、それらのファイルに基づいて計算された一連の集計結果を生成できるようになります。

**編集:

保存する必要のある一般的なJSONファイルは次のようになります。

[{"sequenceNumber":125435、 "currencyCode": "INR"、 "vatRegistrationNumber": "10868758650"、 "receiptNumber":{"value": "1E466GDX5X2C"}、 "retailTransaction":[{"otherAttributes":{} 、"lineItem":[{"sequenceNumber":1000、 "otherAttributes":{}、 "sale":{"otherAttributes":{}、 "description": "Samsung galaxy S3"、 "unitCostPrice":{"quantity" :1、 "value":35000}、 "discountAmount":{"value":2500、 "currency": "INR"}、 "itemSubType": "SmartPhone"}}、{"sequenceNumber":1000、 "otherAttributes" :{}、 "customerOrderForPickup":{"otherAttributes":{}、 "description": "iPhone5"、 "unitCostPrice ":{"数量 ":1"値 ":55000}、"割引金額 ":{"値 ":5000、"通貨 ":" INR "}、" itemSubType ":"スマートフォン "}}]、"合計":[{"value ":35000、" type ":" TransactionGrossAmount "、" otherAttributes ":{}}]、" grandTotal ":90000.0、" reason ":" Delivery "}、null]}]

上記のJSONは、他のクラスのオブジェクトの単一または配列を属性として含む複雑なオブジェクトのシリアル化されたバージョンです。したがって、「receiptNumber」はJSONファイルのユニバーサルIDです。

Sammayeの質問に答えるには、customerOrderForPickupの数量や値、トランザクションのgrandTotalなど、さまざまなトランザクションJSONの集計としてクエリを実行する必要があります**

1)これらのJSONファイルをサーバー、つまりファイルシステムに保存する方法についていくつか提案したいと思います。2)このような複雑な構造を持つこれらのJSONファイルをクエリするためにどのようなデータベースを使用する必要がありますか。

私の調査の結果、いくつかの可能性がありました。1)MongoDBデータベースを使用して、オブジェクトのJSON表現を保存し、データベースを介してクエリを実行します。JSONファイルはどのように保存されますか?トランザクションJSONをMongoDBデータベースに保存するための最良の方法は何でしょうか?2)サーバー上の一意のグローバルID、ユーザーID、JSONファイルのアドレスを含むSQLデータベースを、これらのファイルの集約コードと結合します。これをスケーリングできるかどうかは疑問です

誰かが問題について何か洞察を持っていればうれしいでしょう。ありがとう。

4

1 に答える 1

1

2 つのオプションが表示されます。

  1. 前述のように、MongoDB に保存するには、コレクションを作成し、各 JSON ファイルをドキュメントとしてコレクションに直接追加するだけです。クエリ可能性を向上させるために、JSON のレイアウトを少し変更する必要がある場合があります。
  2. HDFS に格納し、その上に Hive を重ねます。Hive には JSON SerDe (Serializer Deserializer) があります。これはまた、うまくスケーリングします。
于 2013-02-07T15:13:26.020 に答える