Vad är Azure SQL Data Warehouse?

By rik

Microsoft transformerade sina Azure-tjänster till molnbaserade lösningar för företag, med innovativa funktioner för datahantering och analys.

I samband med övergången till molnet lanserade Microsoft Azure SQL Data Warehouse. Denna tjänst, numera känd som Azure Synapse Dedicated SQL Pool, är en flexibel databashanteringstjänst som kombinerar elastiska datalagringsfunktioner. Microsoft satsar stort på utvecklingen och driften av den.

Vad är Azure SQL Data Warehouse?

Azure SQL Data Warehouse, nu benämnd Azure Synapse Dedicated SQL Pool, är en molnbaserad datalagertjänst som låter dig skapa och driva ett datalager i Microsoft Azure. Denna tjänst hanterar stora mängder både relationsdata och icke-relationsdata, och erbjuder SQL-datalagerfunktioner i en molnbaserad datormiljö.

Tjänsten har inbyggt stöd för SQL-servrar och möjliggör migrering av befintliga SQL-servrar till SQL Data Warehouse. Du kan även använda befintliga SQL-frågor och strukturer. Dessutom kan användare omedelbart skala upp, pausa och skala ner sina datalagerresurser efter behov.

Azure SQL Data Warehouse är utformat för att erbjuda en komplett SQL-baserad datalagerlösning för företag. Det kan även användas på följande sätt:

  • För migrering av befintliga datalager (lokala) till molnet.
  • Som datalagerlösning för applikationer och tjänster som kräver datalagring och snabb hämtning, som till exempel webbapplikationer.
  • För en hybrid datalagerlösning som kopplar samman Azure-baserade datalager med lokala SQL-servrar.

Den främsta fördelen med Azure SQL Data Warehouse är dess elastiska natur. Det ger möjlighet att skala både lagrings- och beräkningsresurser separat, vilket gör att användare endast betalar för det de faktiskt använder, och när de använder det. Detta skapar en kostnadseffektiv lösning.

Beräkningssidan av Azure SQL Data Warehouse baseras på Data Warehouse Units (DWU), som mäter beräkningsresurser som lagrings-I/O och minne i alla beräkningsnoder.

Azure SQL Data Warehouse tillhandahåller en säker anslutningsfunktion som gör det möjligt att begränsa åtkomst till specifika IP-adresser eller IP-intervall med hjälp av brandväggsregler. Integrationen med Azure Active Directory-autentisering (AAD) gör det möjligt att ansluta till Azure SQL Data Warehouse genom att använda identiteter från Azure AD.

Flerskiktskryptering säkerställer skydd av data både i vila, under överföring och vid användning, vilket minskar risken för missbruk. Ytterligare verktyg finns tillgängliga för att granska och övervaka data samt identifiera potentiella säkerhetsöverträdelser.

I kombination med andra Microsoft-verktyg erbjuder Azure SQL Data Warehouse enastående prestanda, vilket ger en betydande fördel jämfört med andra liknande tjänster på marknaden.

Azure Synapse dedikerad SQL-pool

Azure Synapse SQL Pool Dedikerad SQL Pool, tidigare Azure SQL Data Warehouse, är en databashanteringstjänst för massiv parallellbearbetning, liknande kolumnbaserade utskalningsdatabaser som Snowflake och Amazon Redshift. För slutanvändaren liknar den en traditionell SQL-server, men datalagring och bearbetning sker inte på en enda nod.

Detta kan avsevärt förbättra prestandan för datalager som är större än några terabyte, men för mindre implementeringar kan andra lösningar vara mer effektiva.

Den underliggande arkitekturen skiljer sig markant från traditionella SQL-servrar, vilket även påverkar syntax och utvecklingsmetoder.

Distributionerna mappas till beräkningsnoder i en dedikerad SQL-pool. Poolen kan omfördela dina distributioner till beräkningsnoderna när du ökar antalet datorresurser.

Du kan enkelt importera stora datamängder med PolyBase SQL-frågor, och sedan använda den distribuerade frågemotorn för högpresterande analyser.

Den dedikerade SQL-poolen, tidigare SQL DW, ger ditt företag en gemensam källa till sanning som gör det möjligt att integrera och analysera data snabbare och ger mer precisa insikter.

Vad är skillnaden mellan Azure Synapse dedikerade SQL-pooler och dedikerade SQL-pooler i en Azure Synapse Analytics-arbetsyta?

Dokumentationen kring PowerShell-hantering av ”dedikerade SQL-pooler (tidigare SQLDW)” och ”Synapse Analytics” dedikerade SQL-pooler kan vara förvirrande.

Den ursprungliga implementeringen av SQL DW använde en logisk server likt Azure SQL DB, och PowerShell-modulen Az.Sql användes för hantering.

Denna modul skapade nya SQL-pooler (tidigare SQLDW) med cmdleten New.AzSqlDatabase, där parametern ”Edition” angav om det var ett DataWarehouse.

Med lanseringen av Synapse Analytics kom en ny PowerShell-modul, Az.Synapse. För att skapa en dedikerad SQL-pool i en Synapse Analytics-arbetsyta användes New-AzSynapseSqlPool.

Denna modul kräver inte parametern ”Edition” eftersom den endast används för Synapse-artefakter.

En dedikerad SQL-pool ger T-SQL-baserad databehandling och lagring. Data kan laddas, modelleras och bearbetas i Synapse för att snabbt generera insikter.

Azure Synapse erbjuder, förutom dedikerade SQL-pooler, även serverlösa SQL-pooler och Apache Spark-pooler. Du kan välja rätt typ av pool beroende på dina specifika behov. En serverlös SQL-pool tillåter frågehantering av data som lagras i din datasjö.

Vad gör Azure Synapse Dedicated SQL Pool?

Azure Synapse Dedicated SQL Pool använder en utskalningsarkitektur för att fördela databearbetningen över flera noder. Tack vare den separata beräknings- och lagringslösningen, kan databehandlingen skalas oberoende av lagring.

Serverlösa SQL-pooler är just serverlösa och skalar automatiskt för att möta de resurskrav som frågor ställer. De anpassar sig dynamiskt till förändrade topologier genom att lägga till, ta bort eller flytta noder. Detta säkerställer att din fråga alltid har tillräckliga resurser och kan slutföras framgångsrikt.

Synapse SQL är baserad på en nodbaserad arkitektur. Applikationer ansluter till kontrollnoden och skickar T-SQL-kommandon. Kontrollnoden utgör den enda ingångspunkten för Synapse SQL.

Azure Synapse SQL:s kontrollnoder använder en distribuerad frågemotor som optimerar frågor för parallellbearbetning, och sedan delegerar operationer till beräkningsnoder så att de kan utföra sitt arbete parallellt.

Den serverlösa SQL-poolens kontrollnod använder en Distributed Query Processing Engine (DQP) för att optimera och orkestrera distribuerad exekvering.

Detta sker genom att dela upp användarfrågan i mindre delar som sedan kan köras på beräkningsnoderna. Varje del är en distribuerad körningsenhet som hämtar data från andra uppgifter, grupperar filer och läser dem från lagringen.

Beräkningsnoderna lagrar all användardata och utför parallella frågor. Data Movement Service (DMS), en intern tjänst på systemnivå, flyttar data mellan noder för att möjliggöra parallella frågor och säkerställa korrekta resultat.

Synapse SQL använder Azure Storage för säkerheten av användardata. Azure Storage hanterar och lagrar din data, och användning av lagringsutrymme debiteras separat.

Funktioner i Azure Synapse Dedicated SQL Pools

Här är några av de främsta funktionerna i Azure Synapse SQL Pool:

  • Du kan ställa frågor mot data i olika format, såsom Parkett, JSON och CSV, som lagras i datasjön.
  • Användare kan se aktuell information genom att använda en relationsabstraktion.
  • Med T-SQL kan du omvandla data i datasjön på ett enkelt och skalbart sätt.
  • Dataforskare kan snabbt analysera struktur och innehåll i sjödata med OPENROWSET eller automatiska schemainferensfunktioner.
  • Dataingenjörer kan använda poolen för att utforska sjön och skapa, omvandla eller förenkla sina datatransformationspipelines.
  • Dataanalytiker kan nå data och externa tabeller med T-SQL och andra välkända verktyg. Dessa verktyg kan också kopplas till en serverlös SQL-pool.
  • BI-rapporter kan genereras direkt av affärsanalytiker via Spark-tabeller eller datasjö.

Dedikerad SQL Pool vs. Serverlös SQL Pool

Serverlös SQL Pool

Azure Synapse-arbetsytor inkluderar en serverlös SQL-pool som fungerar som en frågetjänst över datasjöar. Det kräver ingen ytterligare konfiguration för att nå data. Den är helt serverlös, vilket innebär att ingen infrastruktur behöver installeras eller underhållas.

Skalningen sker automatiskt för att möta de resurskrav som uppstår. Användaren betalar enbart för den data som bearbetas, inte för reserverade resurser. Den serverlösa SQL-poolen genererar också statistik för att optimera frågehanteringen.

Denna statistik kan återanvändas när en fråga körs flera gånger eller när två liknande frågor utförs. Denna funktionalitet gör att vi snabbt kan analysera stora datamängder utan att kopiera eller flytta in dem i ett specifikt lager.

Dedikerad SQL Pool

Synapse dedikerade SQL Pool är efterföljaren till Azure SQL Data Warehouse och erbjuder alla funktioner som krävs för ett företagsdatalager. Det finns dock ingen serverlös SQL-pool här. Istället måste användaren skapa och ta bort den dedikerade Synapse SQL-poolen, och välja vilka resurser den ska ha tillgång till.

Resurserna i den dedikerade SQL-poolen mäts med Data Warehousing Units (DWUs), som representerar en kombination av CPU-, minnes- och I/O-resurser.

Antalet DWUs bestämmer poolens prestanda och kostnad. Istället för att debiteras per fråga debiteras användaren för den tid som poolen är aktiv, oavsett hur mycket arbete som utförs.

För att undvika onödiga kostnader kan dedikerade pooler stoppas och startas om efter behov. I vårt test skapade vi en dedikerad SQL-pool med 100 DWUs.

När poolen är skapad kan data laddas in med kommandot COPY, PolyBase med T–SQL-frågor eller med en pipeline. Dessa data lagras sedan i kolumnlagringsformat i relationstabeller.

Dedikerad SQL Pool Serverlös SQL Pool
Möjliggör frågehantering i datasjön och inmatning av data. Användare kan fråga datasjöfiler.
Infrastruktur krävs. Ingen infrastruktur behövs för installation eller underhåll.
Dedikerade servrar krävs för alla operationer. Ingen infrastruktur krävs för transformation eller utforskning.
Relationstabeller används för att lagra data. Data lagras i Data Lake.
Kostnader kan hanteras genom att pausa poolen och skala ner resurser. Kostnaden hanteras automatiskt och baseras på betalning per begäran.
Reserverade resurser genererar kostnader. Kostnad för databearbetning per fråga debiteras.
Debiteras per tillhandahållen DWU. Debiteras per bearbetad TB.

Slutsats

Vi har nu gått igenom Azure SQL Data Warehouse, numera kallat Azure Synapse Dedicated SQL Pool. Även om en dedikerad SQL-pool kan likna en traditionell SQL-server i många avseenden, är den underliggande arkitekturen (Massively Parallel Processing) helt annorlunda. Detta innebär att vissa koncept och tekniker endast är applicerbara på dedikerade SQL-pooler.

Du kan även undersöka skillnaderna mellan Data Lake och Data Warehouse.