Ich möchte Daten aus Azure-Tabellenspeicher in Excel 2016/Power Query ziehen. Es ist schwer, eine gute Dokumentation darüber zu finden, was vor sich geht, aber was auch immer es ist, es ist langsam. Ich habe eine große Tabelle, deshalb möchte ich sicherstellen, dass ein Filter am Azure-Ende angewendet wird, anstatt alle Daten zu mir zu ziehen und die Client-Seite zu filtern.So filtern Sie effizient Azure Table Storage-Daten in Power Query
Hier ist meine Abfrage bisher (gebaut, um den Designer verwenden, aber das ist die erweiterte Editor-Version):
let
Source = AzureStorage.Tables("mystorageaccount"),
ElmahLogs1 = Source{[Name="ElmahLogs"]}[Data],
#"Filtered Rows" = Table.SelectRows(ElmahLogs1, each [Timestamp] > #datetime(2016, 5, 12, 12, 0, 0)),
#"Expanded Content" = Table.ExpandRecordColumn(#"Filtered Rows", "Content", {"HostName", "Type", "Source", "Message", "User", "StatusCode", "AllXml", "PublicId"}, {"Content.HostName", "Content.Type", "Content.Source", "Content.Message", "Content.User", "Content.StatusCode", "Content.AllXml", "Content.PublicId"})
in
#"Expanded Content"
Wie man sehen kann ich von Zeitpunkt zu filtern bin versucht zunächst, dass unter der Annahme, wird in der Lage sein, auf Azure ziemlich schnell verarbeitet werden. Aber es scheint Minuten statt Sekunden zu dauern.
Gibt es eine Möglichkeit zu sehen, ob die Filterung clientseitig oder serverseitig durchgeführt wird?
Gibt es eine bessere Möglichkeit, einen Filterausdruck an Azure zu übergeben, z. Setzen Sie einen OData-Filter irgendwo in der AzureStorage.Tables() - Funktion oder Source() -Funktion?
Danke, ich hatte angenommen, dass Timestamp effektiv indiziert wurde. Ich sehe jetzt, ich muss immer PartitionKey verwenden und dann idealerweise RowKey als nächstes für eine optimale serverseitige Filterung verwenden. – Rory