2012-05-01 14 views
13

Ho una tabella blu con circa 5 milioni di righe, ciascuna partizione di circa 100k righe. RowKey è un timestamp ordinabile. Devo essere in grado di ottenere l'ultimo record inserito nel tavolo.Archiviazione tabella di Azure ottiene l'ultimo record

Poiché Linq Last, Max, OrderBy ecc non sono supportati, come ottengo in modo efficiente il record della tabella più recente?

risposta

12

Non c'è un modo efficace per farlo. Ma se si tratta di un'opzione, prendere in considerazione la possibilità di capovolgere il tasto di riga in modo che le voci più recenti siano in alto (ordine cronologico inverso). Recupero della parte superiore n voci è facile ed efficiente.

+2

E un buon riferimento per ottenere questo è uno dei tuoi vecchi post del blog: http://blog.smarx.com/posts/using-numbers-as-keys-in-windows-azure –

+0

Qualche idea se il team azzurro aggiungerà il supporto per più query Linq per l'archiviazione della tabella? Oppure le limitazioni tecniche sono troppo complesse ... –

+1

Mi aspetto che più query vengano supportate nel tempo, ma probabilmente non questa. Con la mia comprensione di come vengono archiviati i dati, non c'è un buon modo per arrivare alla fine della lista o altrimenti interrogare in ordine inverso. (Pensa un po 'come un elenco collegato separatamente). – smarx

1

È possibile eseguire una query per TimeStamp inferiore a MaxDate e limitare il risultato per 1. Non ancora testato, ma dovrebbe funzionare. Dipende da come viene formattato il timestamp.

+0

Appena testato. Non funziona – Szer

Problemi correlati