SQL Azure

29
SQL AZURE Wirtualna baza SQL zgodna z SQL Server SQL as a Service Company Logo

description

SQL Azure. Wirtualna baza SQL zgodna z SQL Server SQL as a Service. 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 - opcje. Cechy : Pełna kontrola h/w 100% kompatybilności - PowerPoint PPT Presentation

Transcript of SQL Azure

Page 1: SQL Azure

SQL AZURE

Wirtualna baza SQL zgodna z SQL Server

SQL as a Service

Company Logo

Page 2: SQL Azure

• 60% rozwiązanie MS• 40% działanie w praktyce (napisanie prostej

aplikacji typu „Hello World”• Kilka słów o podobnych rozwiązaniach

Page 3: SQL Azure

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!

Page 4: SQL Azure

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

Page 5: SQL Azure

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)

Page 6: SQL Azure

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

Page 7: SQL Azure

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

Page 8: SQL Azure

DemoZakładanie kontaTworzenie bazy danychKonfiguracja firewalla

Page 9: SQL Azure

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

Page 10: SQL Azure

Repliki baz danych

Replica 1

Replica 2

Replica 3

DB

Pojedyncza DB Wiele replik

Single Primary

Replica 4

!

Page 11: SQL Azure

SQL AzureWdrożenie skryptu

SQL AzureTDS Gateway

SkryptDB

Page 12: SQL Azure

SQL AzureDostęp do bazy

Aplikacja

Change Connection String

SQL AzureTDS Gateway

Page 13: SQL Azure

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ć

Page 14: SQL Azure

AzureScope – SQL Read - 93362

Page 15: SQL Azure

AzureScope – SQL Write - 5761

Page 16: SQL Azure

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

Page 17: SQL Azure

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

Page 18: SQL Azure

Skąd ograniczenie?

• SLA• DataCenter ma 5 minut na podniesienie nowej

instancji. • Obecne algorytmy dają rade podnieść bazę do

50GB• Stąd limit

Page 19: SQL Azure

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

Page 20: SQL Azure

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

Page 21: SQL Azure

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

Page 22: SQL Azure

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

Page 23: SQL Azure

Pomoc (1)

Page 24: SQL Azure

Pomoc (2)

Page 25: SQL Azure

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

Page 26: SQL Azure

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

Page 27: SQL Azure

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

Page 28: SQL Azure

Wracamy do przykładu

Page 29: SQL Azure

DemoTworzenie schematu lokalnieMigracja na SQL Azure