我是數據存儲的新手。將其用於非GAE應用程序。數據存儲最好的方法來存儲彙總的嵌套數據,以便更好地查詢
我正在接近爲我的使用案例更好的設計。
通過平鋪和存儲在多種類型中存儲嵌套聚合數據以獲得更好的查詢支持。
"DateTime": "2015-10-21 12:10:50",
"Domain": "abc.com",
"Events": [
{
"EventName": "visit",
"EventCount": "188",
"Attributes_Aggregations": [
{
"Name": "color",
"Value_Aggregations": [
{
"Value": "red",
"Count": "188",
"Unique_Users": [
{
"ID": "user1",
"Count": "38"
},
]
},
]
},
]
},
]
我將它存儲爲5種。每種都與另一種作爲祖先的關鍵。
類:域名
domain_name - abc.com
類:事件
evt_name - visit
evt_count - 188
evt_datetime - 2015-10-21 12:10:50
ancestor_key - Domain abc.com
類:屬性
att_name - color
evt_datetime - 2015-10-21 12:10:50
ancestor_key - Domain abc.com Event visit
類:的AttributeValue
att_value - red
att_value_count - 108
evt_datetime - 2015-10-21 12:10:50
ancestor_key - Domain abc.com Event visit Attribute color
類:用戶
user_id - user1
count - 38
evt_datetime - 2015-10-21 12:10:50
ancestor_key - Domain abc.com Event visit Attribute color AttributeValue red
我已經在各種添加 'evt_datetime' 屬性,因爲這將是主過濾器鍵。
我已經設置了所有屬性的索引來啓用任何屬性過濾器,但是由於一個屬性限制上的一個不等式過濾器導致我暫停。
正如您所看到的,我無法使用(>,<,> =,< =)過濾evt_datetime和evt_count。
是否有更好的方法來設計這些模式使用多個過濾器或無差別的查詢?
這對於堆棧有點寬泛......在任何情況下,通常當人們試圖做多重不平等時,我們建議一個可以使用的計算屬性。例如,假設您總是希望計數超過200的事件,您可以添加「over_200」布爾參數,然後在該參數上使用=。一般來說,如果你需要兩個不等式,最好的建議是用一個查詢,然後用代碼來過濾另一個 – Patrice