Ce este Azure SQL Data Warehouse?

Microsoft a transformat serviciile Azure în soluții cloud de nivel corporativ, incluzând funcționalități avansate, cum ar fi gestiunea și analiza datelor.

Odată cu decizia de a adopta cloud-ul, Microsoft a lansat Azure SQL Data Warehouse. Microsoft promovează intens Azure SQL Data Warehouse ca un serviciu de administrare a bazelor de date adaptabil, care combină avantajele elastice ale unui depozit de date.

Ce reprezintă Azure SQL Data Warehouse?

Azure SQL Data Warehouse (cunoscut acum ca Azure Synapse Dedicated SQL Pool), un depozit de date bazat pe cloud, permite crearea și implementarea unui depozit de date în Microsoft Azure. Azure Data Warehouse este capabil să proceseze volume mari de date relaționale și non-relaționale, oferind capacități de depozitare de date SQL, alături de o platformă de cloud computing.

Suportă nativ serverele SQL și permite migrarea serverelor SQL existente către SQL Data Warehouse. În plus, permite utilizarea acelorași interogări și structuri. Abonații beneficiază de scalarea, pauzarea și reducerea imediată a resurselor alocate depozitului de date.

Este utilizat pentru a furniza o soluție completă de depozit de date bazată pe SQL, de nivel enterprise. Poate fi folosit în diverse scenarii, cum ar fi:

  • Migrarea depozitelor de date existente (on-premises) în cloud.
  • Oferirea unei soluții de depozit de date pentru aplicații și servicii care necesită stocarea și recuperarea datelor în timp real, cum ar fi aplicațiile web.
  • Implementarea unei soluții hibride de depozit de date, care se conectează la depozitul de date găzduit în Azure și la SQL Server on-premise.

Flexibilitatea este principalul avantaj al Azure SQL Data Warehouse, oferind posibilitatea de scalare și gestionarea independentă a resurselor de stocare și de calcul. Astfel, utilizatorii plătesc doar pentru resursele consumate și numai atunci când sunt utilizate.

Componenta de calcul a Azure SQL Data Warehouse se bazează pe Data Warehouse Unit (DWU), care monitorizează resursele de calcul, cum ar fi I/O-ul de stocare și memoria, pe toate nodurile de calcul active.

Azure SQL Data Warehouse include o funcție de securitate a conexiunii, permițând limitarea accesului la anumite adrese IP sau intervale IP prin reguli de firewall. Integrarea cu autentificarea Azure Active Directory (AAD) permite conectarea la Azure SQL Data Warehouse folosind identități din Azure AD.

Criptarea multistrat oferă protecție pentru date în repaus, în tranzit și în timpul utilizării, prevenind accesul neautorizat. Există instrumente suplimentare pentru auditarea și monitorizarea datelor, precum și pentru identificarea potențialelor breșe de securitate.

În combinație cu alte instrumente Microsoft, Azure SQL Data Warehouse oferă performanțe superioare, reprezentând un avantaj major față de alte servicii similare disponibile pe piață.

Pool-ul SQL dedicat Azure Synapse

Azure Synapse Dedicated SQL Pool (anterior Azure SQL Data Warehouse) este o bază de date de procesare paralelă masivă, asemănătoare cu tehnologiile de baze de date scalabile pe coloane, precum Snowflake și Amazon Redshift. Pentru utilizator, pare un server SQL tradițional, dar datele nu sunt stocate și procesate pe un singur nod.

Aceasta arhitectură poate îmbunătăți semnificativ performanța depozitelor de date mai mari de câțiva terabytes. Cu toate acestea, pentru implementări mai mici, pot exista soluții mai potrivite.

Arhitectura de bază diferă substanțial de serverele SQL tradiționale, ceea ce presupune o sintaxă și metode de dezvoltare diferite.

Distribuțiile sunt alocate nodurilor de calcul dintr-un pool SQL dedicat. Pool-ul reatribuie distribuțiile nodurilor de calcul pe măsură ce se achiziționează mai multe resurse de calcul.

Datele de dimensiuni mari pot fi importate folosind interogări simple PolyBase SQL, iar apoi motorul de interogări distribuite poate fi folosit pentru analize de performanță înaltă.

Pool-ul dedicat SQL, fostul SQL DW, oferă afacerii o singură sursă de adevăr, facilitând integrarea și analizarea rapidă a datelor, generând informații mai precise.

Care este diferența dintre pool-urile SQL dedicate Azure Synapse și pool-urile SQL dedicate din cadrul unui spațiu de lucru Azure Synapse Analytics?

Diferențele dintre „pool-ul SQL dedicat (fost SQLDW)” și pool-urile SQL dedicate „Synapse Analytics” sunt adesea surse de confuzie în documentație, în special când vine vorba de PowerShell.

Implementarea inițială a SQL DW folosește un server logic similar cu Azure SQL DB, partajând un modul PowerShell denumit Az.Sql.

Acest modul creează un nou pool SQL (fost SQLDW) folosind cmdletul New.AzSqlDatabase, care include un parametru „Ediție” pentru a specifica că se dorește un DataWarehouse.

Odată cu lansarea Synapse Analytics, a fost introdus un nou modul PowerShell numit Az.Synapse. Pentru a crea un pool SQL dedicat într-un spațiu de lucru Synapse Analytics, trebuie utilizat New-AzSynapseSqlPool.

Acest modul PowerShell nu necesită parametrul „Ediție”, deoarece este specific pentru artefactele Synapse.

Un pool SQL dedicat oferă calcul și stocare bazate pe T-SQL. Datele pot fi încărcate, modelate și procesate în Synapse pentru a oferi o perspectivă mai rapidă.

Azure Synapse oferă pool-uri Serverless SQL și Apache Spark pe lângă pool-urile SQL dedicate. Alegerea corectă depinde de cerințele specifice ale utilizatorului.
Un pool SQL serverless permite interogarea datelor stocate în lacul de date.

Care este rolul Azure Synapse Dedicated SQL Pool?

Azure Synapse Dedicated SQL Pool utilizează o arhitectură de scalare pentru a distribui calculul datelor pe mai multe noduri, permițând scalarea independentă a calculului față de stocare, deoarece acestea sunt separate.

Pool-urile SQL serverless sunt fără server și se scalează automat în funcție de cerințele de resurse pentru interogări. Acestea se adaptează la schimbările de topologie prin adăugarea, eliminarea sau înlocuirea nodurilor, asigurând resursele necesare pentru finalizarea cu succes a interogărilor.

Synapse SQL se bazează pe o arhitectură bazată pe noduri. Aplicațiile se pot conecta la nodul Control și pot emite comenzi T-SQL. Acesta este unicul punct de contact pentru Synapse SQL.

Nodurile de control SQL Azure Synapse folosesc un motor de interogare distribuit care optimizează interogările pentru procesare paralelă, distribuind apoi operațiile către nodurile de calcul, care execută sarcinile în paralel.

Nodul de control al pool-ului SQL serverless folosește motorul de procesare a interogărilor distribuite (DQP) pentru a optimiza și coordona execuția distribuită a interogărilor.

Acest lucru presupune împărțirea interogării utilizatorului în interogări mai mici, care pot fi executate pe nodurile de calcul. Fiecare sarcină este o unitate de execuție distribuită, care preia date de la alte sarcini, grupează fișierele și le citește din stocare.

Nodurile de calcul stochează toate datele utilizatorului și execută interogările în paralel. Data Movement Service (DMS), un serviciu intern, transferă datele între noduri pentru a permite interogări paralele și pentru a returna rezultate precise.

Synapse SQL utilizează Azure Storage pentru securitatea datelor, care stochează și gestionează datele. Utilizarea stocării este facturată separat.

Caracteristicile pool-urilor SQL dedicate Azure Synapse

Iată principalele caracteristici ale Azure Synapse SQL Pool:

  • Posibilitatea de a interoga date în diverse formate, precum Parquet, JSON și CSV, stocate în lacul de date.
  • Utilizatorii pot accesa datele actualizate folosind o abstractizare relațională.
  • Transformarea datelor din lac într-un mod simplu și scalabil prin limbajul T-SQL.
  • Oamenii de știință de date pot analiza rapid structura și conținutul datelor din lac folosind OPENROWSET sau funcțiile de inferență automată a schemelor.
  • Inginerii de date pot folosi pool-ul pentru a explora lacul și a crea, simplifica sau transforma fluxurile de transformare a datelor.
  • Analiștii de date pot accesa datele și pot genera tabele externe folosind limbajul T-SQL și alte instrumente familiare, care se pot conecta și la un pool SQL serverless.
  • Generarea instantanee de rapoarte BI de către profesioniștii în business intelligence, utilizând tabele Spark sau datele din lacul de date.

Comparație: Pool SQL dedicat vs. Pool SQL serverless

Pool SQL serverless

Spațiile de lucru Azure Synapse includ un pool SQL serverless, care acționează ca un serviciu de interogare pentru lacurile de date. Nu este necesară configurarea suplimentară pentru a accesa datele. Serviciul este complet serverless și nu implică infrastructura pentru configurare sau întreținere.

Scalarea se face automat în funcție de cerințele de resurse. Utilizatorul plătește doar pentru datele procesate și nu pentru resursele rezervate. Pool-ul SQL serverless generează statistici pentru optimizarea execuției interogărilor.

De exemplu, când se rulează aceeași interogare de mai multe ori sau se execută interogări cu planuri similare, statisticile pot fi reutilizate.
Aceste caracteristici permit analiza rapidă a unor cantități mari de date, fără a fi necesară copierea sau încărcarea lor într-un spațiu specific.

Pool SQL dedicat

Pool-ul SQL dedicat Synapse este succesorul Azure SQL Data Warehouse, oferind toate funcționalitățile de stocare a datelor de nivel enterprise. Spre deosebire de pool-ul serverless, utilizatorii trebuie să creeze și să gestioneze pool-ul SQL dedicat Synapse, alegând resursele alocate.

Resursele utilizate sunt măsurate în Unități de Depozitare de Date (DWU). Un DWU reprezintă o combinație de resurse CPU, memorie și I/O.

Numărul de DWU determină performanța și costul pool-ului. În loc să se plătească per interogare, se facturează durata în care pool-ul este activ, indiferent de volumul de muncă efectuat.

Pentru a optimiza costurile, pool-urile dedicate pot fi oprite și repornite. Un pool SQL dedicat de 100 DWU a fost folosit ca exemplu pentru testare.

Odată ce pool-ul este creat, datele pot fi încărcate folosind comanda COPY, PolyBase cu interogări T–SQL sau un flux de date. Aceste date vor fi stocate în format columnar în tabele relaționale.

Pool SQL dedicat Pool SQL serverless
Funcție Permite interogarea lacului de date și ingestia de date. Permite interogarea fișierelor din lacul de date.
Infrastructură Necesită infrastructură. Nu necesită configurarea infrastructurii sau mentenanța de clustere.
Configurare Necesită obținerea de servere dedicate înainte de a efectua orice operațiune. Nu este necesară infrastructura pentru transformarea sau explorarea datelor.
Stocare Datele sunt stocate în tabele relaționale. Datele sunt stocate în Data Lake.
Costuri Costurile pot fi gestionate prin oprirea și repornirea pool-ului SQL și reducerea depozitului. Costul este gestionat și facturat automat, pe baza unui sistem de plată la cerere.
Facturare Costul se aplică pentru resursele rezervate. Costurile se aplică pentru procesarea datelor per interogare.
Metoda de plată Se plătește per DWU alocat. Se plătește per TB de date procesat.

Concluzie

Acestea sunt principalele caracteristici ale Azure SQL Data Warehouse, redenumit acum Azure Synapse Dedicated SQL Pool. Deși un pool SQL dedicat poate părea similar cu un server SQL tradițional din anumite puncte de vedere, arhitectura sa de bază, procesarea masivă paralelă, este complet diferită. Aceasta înseamnă că unele concepte și tehnici sunt specifice pool-ului SQL dedicat.

Se recomandă explorarea diferențelor dintre un Data Lake și un Data Warehouse.