Udostępnij za pośrednictwem


          

SQL Azure

Udostępnij na: Facebook

Autor: Grzegorz Glonek

Opublikowano: 2011-06-06

Pobierz i uruchom

Wprowadzenie

Usługa magazynowania danych w ramach Azure Storage pozwala nam na przechowywanie informacji w chmurze, jednak trudno sobie wyobrazić współczesne aplikacje, które nie korzystają z relacyjnych baz danych. Ponieważ Azure Storage nie udostępnia nam takiej możliwości, platforma Windows Azure posiada usługę SQL Azure będącą silnikiem relacyjnej bazy danych w chmurze. Jest to zarazem drugi z głównych komponentów składających się na całą platformę.

SQL Azure

Usługa ta zapewnia funkcjonalności tradycyjnego serwera Microsoft SQL, jednak jej budowa jest nieco odmienna. Przede wszystkim, gdy tworzona jest baza danych w chmurze, jednocześnie tworzone są jej dwie kopie bezpieczeństwa zsynchronizowane ze sobą. Ogólną strukturę SQL Azure pokazano na rysunku 1.

Limit rozmiaru pojedynczej bazy ustalony został na poziomie 50 GB. Oczywiście nic nie stoi na przeszkodzie, aby w przypadku zapotrzebowania na większą ilość danych podzielić je na kilka baz. Wiąże się to jednak z bardziej skomplikowanym modelem komunikacji pomiędzy aplikacją a bazą danych. W takim przypadku nie można użyć pojedynczego zapytania SQL, aby wydobyć wszystkie informacje – trzeba je modyfikować w zależności od tego, w jakiej bazie dane się znajdują. Może to jednak korzystnie wpłynąć na wydajność aplikacji. Wyobraźmy sobie sytuację, gdy aplikacja musi korzystać z bazy zawierającej dane np. pacjentów. Jeśli wszystkie dane umieszczone są w jednej bazie, to chcąc otrzymać informacje o wszystkich pacjentach o nazwisku na literę ,,A'' i ,,P'' silnik bazodanowy musi przeszukać jeden duży zbiór danych. W przypadku gdy dane te byłyby rozdzielone na kilka baz – np. baza nr 1 zawiera osoby o nazwiskach od ,,A'' do ,,K'', a baza nr 2 od ,,L'' do ,,Z'' –możemy takie zapytanie podzielić na dwa, wykonujące się równolegle i przeszukujące mniejsze porcje danych. Takie podejście może znacznie przyspieszyć wyszukiwanie, a jest to o tyle istotne, że SQL Azure posiada z góry narzucony limit czasu, w jakim może wykonywać się pojedyncze zapytanie do bazy.

Rysunek1.Struktura SLQ Azure.

Wąskim gardłem w trakcie korzystania z bazy relacyjnej w chmurze jest operacja zapisu danych. Zajmuje ona stosunkowo dużo czasu ze względu na to, że w pojedynczej transakcji – oprócz sprawdzania poprawności zapisywanych danych i ich integralności – dokonywana jest każdorazowo synchronizacja z pozostałymi dwiema bazami. Jest to koszt posiadania zawsze spójnych danych. Dlatego jeśli nie potrzebujemy wprowadzać informacji na temat wzajemnej relacji pomiędzy danymi, a jedynie ustrukturyzowania przechowywanych danych w postaci tabeli, zalecane jest korzystanie z tabeli Azure Storage. Oczywiście w trakcie odczytywania danych z baz nie występuje problem spadku szybkości.

Z bazami danych umieszczonymi w SQL Azure mogą komunikować się zarówno aplikacje umieszczone w chmurze, jak i aplikacje działające po stronie klienta, także te, które zostały stworzone z myślą o komunikacji z tradycyjną bazą danych. Jest to możliwe, ponieważ zarówno tradycyjna baza, jak i ta umieszczona w chmurze do komunikacji z aplikacją wykorzystuje ten sam protokół TDS. Pozwala to, w przypadku gdy istniejąca już baza spełnia wymagania SQL Azure, na łatwą migrację danych do chmury.

Podsumowanie

W artykule tym zostały przedstawione najważniejsze informacje odnoszące się do SQL Azure, a także najważniejsze cechy tej usługi.

W kolejnym artykule znajdą się informacje o ostatnim z głównych komponentów platformy Windows Azure – Windows Azure Platform AppFabric.