У меня есть события телеметрии, которые отправляются в playfab. В этих случаях я хочу запросить содержимое полезной нагрузки. Я могу это сделать, но все вложенные свойства находятся в одном столбце. Я могу использовать следующее, чтобы извлечь все в моем событии, НО для SuperProperties, вложенных в Payload. Все суперсвойства находятся в одном столбце
Вот структура моего мероприятия
SchemaVersion": xxxx
"FullName_Namespace": xxxx,
"FullName_Name": xxxx,
"Entity_Id": xxxxx,
"Entity_Type": txxxxx,
"EntityLineage_title": xxxxxx,
"EventData": {
"Timestamp": "xxxxxxx",
"PayloadContentType": "Json",
"EntityLineage": {
"master_player_account": "xxxxxx",
"title_player_account": "xxxxxx",
"namespace": "xxxxx",
"title": "xxxxxx"
},
"SchemaVersion": "xxxxxx",
"Originator": {
"Type": "xxxxxx",
"Id": "xxxxxx"
},
"OriginInfo": {
"Timestamp": "xxxxxx"
},
"FullName": {
"Namespace": "xxxxxx",
"Name": "xxxxxx"
},
"Payload": {
"TimeToCompleteSubStage": xxxxxx,
"TimeToCompleteStage": xxxxxx,
"SuperProperties": {
"GameSessionID": "xxxxxx",
"PlayFabId": "xxxxxx",
"Version": "xxxxxx",
"Index": xxxxxx,
"Time": "xxxxxx"
},
"IdStageFrom": "xxxxxx",
"SubStageId": xxxxxx,
"IdStageTo": "xxxxxx"
},
"Id": "xxxxxx",
"Entity": {
"Type": "xxxxxx",
"Id": "xxxxxx"
}
},
"EventId": xxxxxx,
"Timestamp": xxxxxx,
"EntityLineage_title_player_account": xxxxxx,
"EntityLineage_master_player_account": xxxxxx,
"EntityLineage_namespace": xxxxxx,
"ExperimentVariants": xxxxxx
Что я пробовал
Если нашел похожий вопрос здесь , но я не уверен, что полностью понял вопрос ИЛИ ответ. Даже после просмотра этой документации, которая, кажется, объясняет, как это сделать. Причина ? Потому что мои познания в Kusto и даже в программировании в целом базовые.
Итак, есть ли кто-нибудь, кто мог бы попытаться объяснить, возможно ли получить все свойства в Payload, даже суперсвойства, которые вложены в Payload в их конкретном столбце? Если да, то как это сделать? Неважно, запрашиваю ли я что-либо еще за пределами полезной нагрузки или нет.
Вот мои попытки
['events.all']
| where FullName_Name == 'FTUE_Funnel'
| project Payload = parse_json(EventData.Payload)
| evaluate bag_unpack(Payload)
['events.all']
| where FullName_Name == 'FTUE_Funnel'
| project Payload = parse_json(EventData.Payload.SuperProperties)
| evaluate bag_unpack(Payload)
Эти работают, но запрашиваются отдельно, что не идеально.
['events.all']
| where FullName_Name == 'FTUE_Funnel'
| extend Payload = parse_json(EventData.Payload)
| project-away EventData
| evaluate bag_unpack(Payload,'extra_')
Этот также работает, он запрашивает содержимое полезной нагрузки, НО помещает суперсвойства в один столбец + запрашивает что-либо вне полезной нагрузки, что меня устраивает.
Спасибо !
datatable(event:dynamic)
[
dynamic
(
{
"SchemaVersion": 1,
"FullName_Namespace": 2,
"FullName_Name": 3,
"Entity_Id": 4,
"Entity_Type": 5,
"EntityLineage_title": 6,
"EventData": {
"Timestamp": 7,
"PayloadContentType": "Json",
"EntityLineage": {
"master_player_account": 8,
"title_player_account": 9,
"namespace": 10,
"title": 11
},
"SchemaVersion": 12,
"Originator": {
"Type": 13,
"Id": 14
},
"OriginInfo": {
"Timestamp": 15
},
"FullName": {
"Namespace": 16,
"Name": 17
},
"Payload": {
"TimeToCompleteSubStage": 18,
"TimeToCompleteStage": 19,
"SuperProperties": {
"GameSessionID": 20,
"PlayFabId": 21,
"Version": 22,
"Index": 23,
"Time": 24
},
"IdStageFrom": 25,
"SubStageId": 26,
"IdStageTo": 27
},
"Id": 28,
"Entity": {
"Type": 29,
"Id": 30
}
},
"EventId": 31,
"Timestamp": 32,
"EntityLineage_title_player_account": 33,
"EntityLineage_master_player_account": 34,
"EntityLineage_namespace": 35,
"ExperimentVariants": 36
}
)
]
| extend Payload = event.EventData.Payload
| project-away event
| evaluate bag_unpack(Payload)
| evaluate bag_unpack(SuperProperties, "SuperProperties_")