SQL Azure
-
Upload
neville-kane -
Category
Documents
-
view
25 -
download
0
description
Transcript of SQL Azure
SQL AZURE
Wirtualna baza SQL zgodna z SQL Server
SQL as a Service
Company Logo
• 60% rozwiązanie MS• 40% działanie w praktyce (napisanie prostej
aplikacji typu „Hello World”• Kilka słów o podobnych rozwiązaniach
Wybór bazy danych - opcjeZa
soby
Dedykowany
Współdzielone
Niska WysokaKontrola
SQL Azure (RDBMS)
Cechy:Auto HA, Fault-ToleranceBezproblemowe skalowanieSelf-provisioningWysoka zgodność
Wirtualny serwer DB Zarządzanie zasobami @ LDB Bezpieczeństwo @ LDB
Hosted Hostowany SQL Server Zarządzanie zasobami @ VM Bezpieczeństwo @ DB Server/OS
On-premise SQL Server on-premise Zarządzanie zasobami @ serwerze Bezpieczeństwo @ DB Server/OS
Cechy:Pełna kontrola h/w100% kompatybilnościWłasne HA/DR/skala
Cechy:100% API
SQL Azure V1 to scenariusz w lewym dolnym rogu!
Typy Blob
• Block– Blob składa się z indywidualnych „bloków”– Zoptymalizowany pod steaming– Każdy blok może mieć rozmiar 4MB– Całkowita wielkość Blob może być 200 GB
• Strona– Blob jest kolekcją indywidualnych „stron”– Zoptymalizowany dla losowych operacji read/write operations– Strona jest zakresem danych podobnym do bufora– Całkowita wielkość Blob może być 1 TB
Scenariusze dla SQL Azure• Aplikacje departamentowe– Proste aplikacje budowane indywidualnie lub na potrzeby
departamentu– Potrzebne proste, samozarządzalne IT
• Trochę „poza” klasycznym IT– Klientem może być Access
• Lub hostowana lokalnie aplikacja ASP.NET / PHP / …• Aplikacje Web– Skalowanie na życzenie, łatwe instalowanie itp..
• ISV– ISV hostujący oprogramowanie dla klientów– Łatwe wsparcie systemów multitenant (w różnych
scenariuszach)• Data Hub– Współdzielenie i agregacja danych pomiędzy warstwami i
pomiędzy enterprise– Zcentralizowane miejsce dla danych, skalowalne,
synchronizacja z istniejącymi źródłami danych• Ładne połączenie z innymi pojemnikami! (np. BLOB)
Przykładowe topologie
MSDatacenter
SOAP/RESTHTTP/S
SQL Azure używane wewnątrz DC(Azure compute – gł. ADO.NET / EF)
Windows Azure
T-SQL (TDS)
MSDatacenter
T-SQL (TDS)
Aplikacja / Narzędzia
SQL Azure dostępne z poza DC(On-premises – ADO.NET / ODBC / …)
App Code(ASP.NET)
ADO.NET Data Svcs/REST - EFHTTP/S
Kod daleko
SQL Data Services
SQL Data Services
Aplikacja / przeglądarka
Kod blisko
Model provisioningu
• Każda subskrypcja ma zero lub więcej serwerów– W ramach Azure– Określa element opłat
• Każdy serwer ma– Nazwę (DNS) i domenę autoryzacji– Bazę master– Jedną lub więcej baz użytkowych
• Każda baza ma standardowe obiekty SQL– Użytkowników, tabele, widoki itp– Jednostka spójności (transakcji)
Subskrypcja
Server
Baza
DemoZakładanie kontaTworzenie bazy danychKonfiguracja firewalla
Architektura• Współdzielona infrastruktura na poziomie SQL
– Wymaga routingu, odpowiedniego bezpieczeństwa i izolacji• Technologia „skalowalnego HA” zapewnia odpowiednie narzędzia
do replikacji i failover– Połączony z Resource Governor
• Provisioning, pomiar użycia i infrastruktura bilingowa
Machine 5SQL Instance
SQL DBUserDB1
UserDB2
UserDB3
UserDB4
Scalability and Availability: Fabric, Failover, Replication, and Load balancing
SDS Provisioning (bazy, konta, role, …, pomiar, i billing
Machine 6SQL Instance
SQL DBUserDB1
UserDB2
UserDB3
UserDB4
Machine 4SQL Instance
SQL DBUserDB1
UserDB2
UserDB3
UserDB4
Scalability and Availability: Fabric, Failover, Replication, and Load balancing
Repliki baz danych
Replica 1
Replica 2
Replica 3
DB
Pojedyncza DB Wiele replik
Single Primary
Replica 4
!
SQL AzureWdrożenie skryptu
SQL AzureTDS Gateway
SkryptDB
SQL AzureDostęp do bazy
Aplikacja
Change Connection String
SQL AzureTDS Gateway
Model programowania
• Mały zestaw danych (<50 GB)– Wykorzystać pojedynczą bazę– (jak w przypadku on premise SQL Server)
• Duże zbiory danych i/lub olbrzymia przepustowość– Database Sharding (będzie później)– Partycjonować pomiędzy wiele baz danych– Wykorzystać PLINQ / TPL– Kod aplikacji musi to uwzględniać
AzureScope – SQL Read - 93362
AzureScope – SQL Write - 5761
SQL Azure• SQL „Express” w chmurze
– Limit 1GB / 10GB / 50G / ….• Bo: sensowny czas replikacji; „tani” hardware
– Partycjonowanie poziome (klient 100TB)• Dzięki partycjonowaniu kwerenda z 100 minut zeszła do 10 sekund (patrz
niżej)– Dokładniej – kwerenda + masywny merge
• ADO.NET – działa• Enterprise Library Data Access – działa • Entity Framework – działa• Zapytanie/połączenie ma 5 minut nim zostanie ubite• Po 30 minutach połączenie jest zamykane• Narzędzia: OSQL, SSMS (SQL 2008 R2), Access • Migration Kit
Database Editions• Dwa SKU dla SQL Azure: Web & Business
– Web Edition: 1 GB @ $9.99/miesiąc | 5 GB @ $49.95/miesiąc– Business Edition: do 50 GB @ $99.99/10 GB/miesiąc
10 GB @ $99.99 | 20 GB @ $199.98 | 30 GB @ $299.97 | 40 GB @ $399.96 | 50 GB @ $499.95
• Należy określić Web lub Business Edition– Web: EDITION = Web– Business: EDITION = Business
• Należy określić MAXSIZE– Web: MAXSIZE = 1GB| 5GB– Business: MAXSIZE = 10GB | 20GB | 30GB | 40GB | 50GB– Jest to rozmiar poza który baza NIE UROŚNIE– Opłata jest za realne użycie (uśredniane dziennie)
– CREATE DATABASE foo1 (EDITION='business', MAXSIZE=50GB);• Rośnie dowolnie, do 50 GB
– CREATE DATABASE foo2 (EDITION='business', MAXSIZE=30GB);
– CREATE DATABASE bar1 (EDITION='web', MAXSIZE=5GB);– CREATE DATABASE bar2 (EDITION='web'); -- Domyślnie 1GB
Do 50 GB10 GB przyrostu
Business Edition
Do 5 GBAlbo 1 GB albo 5 GB
Web Edition
Skąd ograniczenie?
• SLA• DataCenter ma 5 minut na podniesienie nowej
instancji. • Obecne algorytmy dają rade podnieść bazę do
50GB• Stąd limit
SQL Azure – topologiaAplikacje
Load Balancer
TDS (tcp:1433)
TDS (tcp: 1433)
TDS (tcp: 1433)
Aplikacja używa normalnych bibliotek : ODBC, ADO.Net, …Ale też Microsoft Access działa
Load balancer przesyła sesję do warstwy TDS
Data Node Data Node Data Node Data Node Data NodeData Node
Gateway Gateway Gateway Gateway Gateway Gateway
Skalowalność i dostępność : Fabric, Failover, Replikacja i Load balancing
Kompatybilność (skrót)
Wspierane
• Tables, indexes and views
• Stored Procedures• Triggers• Constraints• Table variables,
session temp tables (#t)• Spatial• …
Nie wspierane
• Distributed Transactions• Distributed Query• CLR• Service Broker• Physical server or
catalog DDL and views
T-SQL – elementy które działają
• Stałe• Więzy• Kursory• Zarzadzanie indeksami• Lokalne tymczasowe
tabele• Procedury składowane• Zarządzanie statystykami• Transakcje• Triggery (ale po co…)
• Tabele, join, zmienne tabelaryczne
• DDL: – Create/drop databases– Create/alter/drop tables– Create/alter/drop users– Create/alter/drop logins– …
• Funkcje użytkownika– Nie CLR!
• Widoki• Synonimy
Co nie działa…• Common Language Runtime
(CLR)• Zmiany lokalizacji plików i
zarządzanie FileGroup• Database mirroring• Rozproszone kwerendy• Rozproszone transakcje• Globalne tabele tymczasowe
– W SP - można
• Typy Spatial i indeksy• Zmiany opcji w SQL Server• SQL Server Service Broker• Tabele systemowe• Trace Flags• Resource Governor
• BACKUP / RESTORE• Full Text Search• Service Broker• BULK INSERT
– Ale BCP z klienta działa!
• CDC• CHANGETABLE (CT)• Indeksy XML• DBCC i sprawdzanie spójności• FILESTREAM• KILL• OPENQUERY / OPENROWSET• USE do zmiany kontekstu• SQL Agent
– Ale mamy Worker Role
Pomoc (1)
Pomoc (2)
Model połączenia
• Dowolne API– ADO.NET, ODBC, PHP
• Biblioteki klienckie preinstalowane w rolach Azure
• Wsparcie kontrolek ASP.NET• Wsparcie designera EF• Klient podłącza się BEZPOŚREDNIO do bazy– Nie ma USE – patrz SQL Azure - topologia
Logiczna a fizyczna administracja
• SQL Azure pozwala skupić się na logicznej administracji– Schematy– Optymalizacja kwerend– Bezpieczeństwo
• Usługa zajmuje się elementami fizycznymi– Lokalizacja plików– Replikacje, HA– Przeźroczysty failover– Load Balancing
Model bezpieczeństwa
• Standardowy model SQL– Login– Użytkownik– Rola
• Ograniczone do autoryzacji SQL– Username + password !!!!
• Przyszłość, AD, Windows Live ID itp.– Technicznie: Service Bus + ACS z kodem który pracuje z SQL
Model bezpieczeństwa jest w 100% zgodny z on-premise SQL
Wracamy do przykładu
DemoTworzenie schematu lokalnieMigracja na SQL Azure