2017-05-25 1 views
2

Ich habe einige Daten in Application Insights, und ich verwende die Analytics-Ansicht, um Abfragen dagegen zu schreiben."Fehler beim Auflösen der" obersten "Schlüsselspalte" Fehler in benutzerdefinierten Analytics-Daten der Anwendungsmessungsanalyse

Ich sehe, dass ich eine Spur haben, die CustomDimensions enthalten, von denen eine Eigenschaft namens ActivityID, die ein guid ist:

enter image description here

Was ich tun möchte, ist nun eine weitere Abfrage ausführen alle zurückkehren Spuren, die diese ActivityId enthalten.

Mit this als Führer, ich habe zur Zeit folgendes:

union (traces 
| extend ActivityId = tostring(customDimensions.ActivityId) 
| project ActivityId 
| where ActivityId == "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") 
| top 101 by timestamp desc 

Dies ist jedoch die folgende Syntaxfehlermeldung zurückgibt:

Failed to resolve 'top' key column 

Was mache ich falsch? Ich würde es auch schätzen und eine Erklärung der Fehlermeldung wenn möglich geben.

+0

Die akzeptierte Antwort tatsächlich funktioniert, aber irreführend. Siehe meine Antwort unten. – yonisha

Antwort

1

Sie können keine top auf Projektion tun, es sei denn, Sie enthalten tatsächlich die Timestamp-Spalte in der Projektion.

ich getan habe:

union (traces) 
| top 101 by timestamp desc 
| project session_Id 

so sollte diese

union (traces 
| extend ActivityId = tostring(customDimensions.ActivityId) 
| where ActivityId == "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") 
| top 101 by timestamp desc 
| project ActivityId 

arbeiten und dann funktioniert es. Was ist Ihre vollständige Abfrage (ich denke, es gibt mehr, da Sie union verwenden?)

+0

Das hat den Fehler behoben, danke. Der Grund für die ursprüngliche Verwendung von "union" war, dass ich die Abfrage, die automatisch ausgefüllt wurde, nachdem ich die Analyseansicht geöffnet hatte, die eine Union verwendet hatte, geändert hatte. Eine andere Frage, der Fehler ist weg, aber jetzt bekomme ich "keine Ergebnisse gefunden". Muss ich eher Touguid als Tostring casten? –

+0

Hmm Ich habe 'tostring' schon immer selbst für Werte verwendet, die als Guid analysiert werden können. Achte darauf, dass Groß- und Kleinschreibung beachtet wird! Noch seltsamer, nur '==' ist. Ändern Sie es in "contains", denn es wird Groß-/Kleinschreibung nicht berücksichtigt. –

+0

@PeterBons "Es scheint, dass Sie ein Top auf Projektion nicht tun können" ist falsch. Sie können ein Top-Projekt machen, aber Sie müssen es zuerst projizieren :) – yonisha

0

Sie müssen die Spalte "timestamp" projizieren, wenn Sie es innerhalb der Spitze verwenden möchten.

traces 
| extend ActivityId = tostring(customDimensions.ActivityId) 
| project ActivityId, timestamp 
| where ActivityId == "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
| top 101 by timestamp desc 

* Beachten Sie, dass Sie auch brauchen, um Vereinigung nicht verwenden

Verwandte Themen