Spełnianie nowoczesnych wymagań dotyczących bazy danych za pomocą usługi Azure SQL Database

Ukończone

Po skonfigurowaniu środowiska możesz rozpocząć analizowanie i testowanie niektórych składników potencjalnej architektury rozwiązania. W scenariuszu łapania autobusu oraz w przypadku wielu innych nowoczesnych aplikacji, potrzebna jest nowoczesna baza danych do przechowywania, przetwarzania i udostępniania danych. Przyjrzyjmy się, jak usługa Azure SQL Database spełnia potrzeby nowoczesnych aplikacji.

Skalowanie w celu spełnienia wymagań dzięki elastycznym opcjom usługi Azure SQL Database

Jednym z podstawowych elementów nowoczesnej aplikacji jest możliwość łatwego skalowania w górę lub w dół w celu poprawnego reagowania na użycie obciążenia. Możliwość łatwego aktualizowania i rozwijania rozwiązania wraz z deterministycznym automatycznym wdrażaniem jest również podstawowymi filarami nowoczesnego tworzenia aplikacji. Ta zasada umożliwia również aplikacjom płacenie tylko za to, co jest potrzebne, gdy jest to konieczne.

Usługa Azure SQL Database zapewnia silną obsługę wszystkich tych wymaganych funkcji. Jeśli potrzebujesz przyszłej, skalowalnej, bezpiecznej i wysokiej wydajności bazy danych, hiperskala usługi Azure SQL zapewnia wszystko, czego potrzebujesz i nie tylko. Można go skalować do 100 TB, a jego architektura rozproszona sprawia, że łatwo go skalować w dół i w górę. Jest to idealna baza danych dla obciążeń transakcyjnych i hybrydowych obciążeń transakcyjno-analitycznych.

Aby wspierać rozwój i deweloperów, możesz użyć bezserwerowego poziomu obliczeniowego usługi Azure SQL Database, który może automatycznie skalować się w górę i w dół w ramach zdefiniowanego zakresu oraz automatycznie wstrzymywać się, gdy nie jest używany, co zapewnia najbardziej efektywny kosztowo sposób tworzenia i testowania rozwiązania. Biorąc pod uwagę, że aparat usługi Azure SQL Database jest taki sam, przejście do bezserwerowej warstwy obliczeniowej usługi Azure SQL Database i hiperskala usługi Azure SQL nie będzie wymagać żadnych zmian w kodzie i bez dodatkowych wysiłków.

Wsparcie przepływów pracy deweloperskiej za pomocą funkcji GitHub Actions

Ponieważ praktyka DevOps jest obecnie wszechobecna, ważne jest, aby nowoczesne rozwiązanie miało odpowiednie wsparcie i efektywny pipeline ciągłej integracji oraz ciągłego dostarczania/wdrażania (CI/CD). Usługa Azure SQL Database natywnie obsługuje funkcję GitHub Actions, której można użyć do wdrażania zmian w bazie danych deweloperskich w celu testowania i produkcji baz danych, gdy będą gotowe. Akcje usługi Azure SQL Database korzystają z podejścia opartego na stanie. DevOps dla danych jest interesującym tematem i możesz dowiedzieć się więcej o nim w odcinkach wspomnianych na końcu modułu.

Innym kluczowym wymaganiem nowoczesnej bazy danych jest możliwość obsługi najnowszych programistycznych trendów i innowacji. Usługa Azure SQL Database udostępnia wiele funkcji, dzięki czemu można użyć najlepszej technologii lub modelu dla danego przypadku użycia. Przedstawiamy omówienie wszystkich dostępnych funkcji we wpisie w blogu na końcu modułu.

Zabezpiecz aplikacje na przyszłość przy użyciu usługi Azure SQL Database

W okresie istnienia aplikacji należy używać tak wydajnych technologii, jak to możliwe. Na przykład możesz użyć modelu programu Graph do łatwego śledzenia i modelowania złożonej relacji sieciowej, takiej jak sieć społecznościowa lub sieć energetyczna. Możesz też szybko zagregować ogromną ilość danych, aby obliczyć współczynnik wzrostu określonej wartości. W każdym z tych przypadków, a także w wielu innych, Azure SQL Database oferuje pełne wsparcie. Obsługuje ona modele programu Graph, indeksy magazynu kolumn, a nawet tabele zoptymalizowane pod kątem pamięci dla najwyższej przepływności (te tabele są kompilowanymi strukturami danych, które następnie są ładowane w procesie w celu osiągnięcia wysokiej wydajności).

W scenariuszu łapania autobusu użyjesz bezserwerowej warstwy obliczeniowej usługi Azure SQL Database, aby płacić tylko za to, czego potrzebujesz i używasz, dzięki czemu możliwe jest skalowanie automatyczne i obsługa automatycznego wstrzymywania. Użyjesz funkcji GitHub Actions do utworzenia potoku wdrażania w celu zaktualizowania bazy danych zgodnie z potrzebami. Istnieje kilka innych funkcji, które są wymagane w tym scenariuszu. Przyjrzyjmy się im bliżej. W następnym ćwiczeniu poznasz te możliwości.

Przetwarzanie danych JSON przy użyciu natywnych funkcji JSON

Usługa Azure SQL Database umożliwia deweloperom używanie formatu JSON do wymiany danych z bazą danych i przechowywania dokumentów JSON. Dzięki temu można użyć formatu JSON jako wydajnego mechanizmu transportu do wysyłania zestawów danych, takich jak tablice i obiekty, do procedury składowanej do przetworzenia. Po utworzeniu dokumentu JSON można łatwo manipulować nim przy użyciu natywnych funkcji JSON, takich jak JSON_VALUE, JSON_MODIFY lub OPENJSON. Oto przykład:

DECLARE @json NVARCHAR(MAX) = '[{"user":{"id": 1, "name": "Anna"}},{"user":{"id": 2, "name": "Davide"}}]'
SELECT * FROM
    OPENJSON(@json) WITH (
        [Id] INT '$.user.id', 
        [Name] NVARCHAR(100) '$.user.name'
    )

Więcej przykładów pokazujących, jak można używać kodu JSON w usłudze Azure SQL Database, są dostępne na końcu modułu.

Analizowanie danych geoprzestrzennych za pomocą natywnego silnika geoprzestrzennego.

Usługa Azure SQL Database ma natywny aparat geoprzestrzenny, którego można użyć do wykonywania zapytań geoprzestrzennych bez instalowania bibliotek zewnętrznych lub przenoszenia danych, co może być kosztowne w przypadku znacznych ilości danych. Usługa Azure SQL Database w pełni obsługuje standard Open Geospatial Consortium (OGC), więc wyeksportowane dane są używane przez biblioteki, takie jak OpenLayers.

W poniższym przykładzie pokazano, jak utworzyć wielokąt, który będzie służył jako geofencja w scenariuszu łapania autobusu, oraz jak sprawdzić, czy punkt, który będzie służył jako punkty danych autobusowych w czasie rzeczywistym, znajduje się w wielokącie.

-- Microsoft Building 44
declare @bldg44 as geography = geography::STGeomFromText('POLYGON((-122.13403149305233 47.64136608877112,-122.13398769073248 47.64058891712273,-122.13319924946629 47.64011342667547,-122.13285369830483 47.640106868176076,-122.13254221532335 47.640834858789844,-122.13257628383073 47.6410086568205,-122.13334039023833 47.64144150986729,-122.13403149305233 47.64136608877112))', 4326)

-- A point you want to check
declare @p as geography = geography::STPointFromText('POINT(-122.13315058040392 47.64101193601368)', 4326)

-- Is the point within the perimeter?
select @p.STWithin(@bldg44)

Ponieważ format tekstu dla lokalizacji (na przykład POINT(-122.13315058040392 47.64101193601368)) jest standardowym formatem znanym jako Well-Known Tekst (WKT), można zobaczyć kształt wyświetlany na mapie poprzez skopiowanie i wklejenie ciągu. W następnym ćwiczeniu przetestujesz go samodzielnie przy użyciu OpenStreetMap WKT Playground.