私はデータストアの初心者です。非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
種類: 属性値
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' プロパティをすべての種類に追加しました。これがプライマリ フィルター キーになるからです。
すべてのプロパティにインデックスを設定して任意のプロパティ フィルターを有効にしましたが、1 つのプロパティ制限に対する 1 つの不等式フィルターが原因で一時停止しました。
ご覧のとおり、(>、<、>=、<=) のいずれかで evt_datetime と evt_count の両方をフィルタリングすることはできません。
これらのスキーマを複数のフィルターまたは種類のないクエリを使用するように設計するより良い方法はありますか?