Mam pewne oprogramowanie, które zbiera dane przez długi czas, około 200 odczytów na sekundę. Do tego wykorzystuje bazę danych SQL. Szukam korzystania z platformy Azure, aby przenieść wiele moich starych "zarchiwizowanych" danych do.Projektowanie partycji do przechowywania tabel Azure
Oprogramowanie wykorzystuje architekturę typu wielu dzierżawców, dlatego planuję użyć jednej tabeli Azure dla każdego najemcy. Każdy lokator może monitorować 10-20 różnych wskaźników, więc planuję użyć Metric ID (int) jako klucza partycji.
Ponieważ każda metryka ma tylko jedno czytanie na minutę (maks.), Planuję użyć DateTime.Ticks.ToString ("d19") jako mojego RowKey.
Brakuje mi odrobiny zrozumienia, jak to będzie jednak skalować; więc miałem nadzieję, że ktoś może to wyjaśnić:
Dla wydajności Azure może/może podzielić mój stół na partycje, aby wszystko było przyjemne i szybkie. W takim przypadku uzyskamy jedną partycję na metr.
Jednak mój wiersz może potencjalnie reprezentować dane przez około 5 lat, więc szacuję ok. 2,5 miliona wierszy.
Czy Azure jest na tyle sprytny, aby podzielić go na podstawie rowkey, czy też projektowałem w przyszłym wąskim gardle? Zwykle nie zoptymalizowałem przedwcześnie, ale z czymś takim jak Azure, które nie wydaje się tak rozsądne jak zwykle!
Poszukuję eksperta Azure, aby poinformować mnie, czy jestem na właściwej linii, czy też powinienem podzielić moje dane na więcej tabel.
Dziękuję za uwagi. Prawdopodobnym przypadkiem użycia jest żądanie podania zakresu danych tylko dla poszczególnych danych. Zakres ten będzie mały (być może okno 24-godzinne). Jeśli wymaganych jest wiele danych, można to zrobić za pomocą wielu zapytań. – KingCronus
Dodatkowo w tym przypadku wypełnianie formularzy nie jest potrzebne, ponieważ dane nie muszą być w określonej kolejności, ale dziękuję za heads-up. – KingCronus
Zaktualizowałem moją odpowiedź powyżej. Mam nadzieję że to pomoże. –