Delen via


Synapse POC-playbook: Datawarehousing met toegewezen SQL-pool in Azure Synapse Analytics

Dit artikel bevat een methodologie op hoog niveau voor het voorbereiden en uitvoeren van een effectief Azure Synapse Analytics-proof-of-conceptproject (POC) voor toegewezen SQL-pool.

Notitie

Dit artikel maakt deel uit van de Azure Synapse-proof of concept playbook-serie artikelen. Zie Azure Synapse proof of concept playbook voor een overzicht van de reeks.

Fooi

Als u nog niet bekend bent met toegewezen SQL-pools, raden we u aan om het leertraject Werken met datawarehouses te doorlopen met behulp van Azure Synapse Analytics .

Voorbereiden op de POC

Voordat u beslist over uw Azure Synapse POC-doelstellingen, raden we u aan eerst het artikel over de Azure Synapse SQL-architectuur te lezen om vertrouwd te raken met hoe een toegewezen SQL-pool reken- en opslag scheidt om toonaangevende prestaties te bieden.

Sponsors en potentiële obstakels identificeren

Zodra u bekend bent met Azure Synapse, is het tijd om ervoor te zorgen dat uw POC de benodigde ondersteuning heeft en geen obstakels raakt. U moet het volgende doen:

  • Identificeer eventuele beperkingen of beleidsregels die uw organisatie heeft over het verplaatsen van gegevens naar en het opslaan van gegevens in de cloud.
  • Identificeer executive en business sponsorship voor een datawarehouse-project in de cloud.
  • Controleer of uw workload geschikt is voor Azure Synapse. Zie De architectuur van toegewezen SQL-pools in Azure Synapse Analytics voor meer informatie.

De tijdlijn instellen

Een POC is een scoped, tijdgebonden oefening met specifieke, meetbare doelen en metrische gegevens die succes definiëren. In het ideale geval moet het een basis hebben in de realiteit van het bedrijf, zodat de resultaten zinvol zijn.

POCs hebben het beste resultaat wanneer ze een timebox hebben. Timeboxing wijst een vaste en maximale tijdseenheid toe aan een activiteit. In onze ervaring biedt twee weken voldoende tijd om het werk te voltooien zonder de last van te veel use cases of complexe testmatrices. Werken binnen deze vaste periode, raden we u aan deze tijdlijn te volgen:

  1. Gegevens laden: drie dagen of minder
  2. Query's uitvoeren: vijf dagen of minder
  3. Toegevoegde waardetests: twee dagen of minder

Hier volgen enkele tips:

  • Maak realistische schattingen van de tijd die u nodig hebt om de taken in uw plan uit te voeren.
  • De tijd die nodig is om uw POC te voltooien, is gerelateerd aan de grootte van uw gegevensset, het aantal databaseobjecten (tabellen, weergaven en opgeslagen procedures), de complexiteit van de databaseobjecten en het aantal interfaces dat u gaat testen.
  • Als u een schatting maakt van de duur van uw POC langer dan vier weken, kunt u overwegen om het bereik te beperken om zich alleen te richten op de belangrijkste doelstellingen.
  • Ontvang ondersteuning van alle leadbronnen en sponsors voor de tijdlijn voordat u begint met de POC.

Zodra u hebt vastgesteld dat er geen directe obstakels zijn en u de tijdlijn hebt ingesteld, kunt u een architectuur op hoog niveau instellen.

Een architectuur met een bereik op hoog niveau maken

Een toekomstige architectuur op hoog niveau bevat waarschijnlijk veel gegevensbronnen en gegevensgebruikers, big data-onderdelen en mogelijk machine learning- en AI-gegevensgebruikers. Als u uw POC-doelstellingen haalbaar wilt houden (en binnen de grenzen van uw settijdlijn), bepaalt u welke van deze onderdelen deel zullen uitmaken van de POC en welke worden uitgesloten.

Als u Azure al gebruikt, moet u ook het volgende identificeren:

  • Alle bestaande Azure-resources die u tijdens de POC kunt gebruiken. Resources kunnen bijvoorbeeld Microsoft Entra ID of Azure ExpressRoute bevatten.
  • Welke Azure-regio('s) uw organisatie het liefst heeft.
  • Een abonnement dat u kunt gebruiken voor niet-productie POC-werk.
  • De doorvoer van uw netwerkverbinding met Azure.

    Belangrijk

    Controleer of uw POC een deel van die doorvoer kan verbruiken zonder dat dit een nadelig effect heeft op productieoplossingen.

Migratieopties toepassen

Als u migreert van een verouderd datawarehouse-systeem naar Azure Synapse, kunt u het volgende overwegen:

  • Migreert u en wilt u zo weinig mogelijk wijzigingen aanbrengen in bestaande ETL-processen (Extract, Transform en Load) en datawarehouseverbruik?
  • Migreert u, maar wilt u onderweg een aantal uitgebreide verbeteringen uitvoeren?
  • Bouwt u een volledig nieuwe omgeving voor gegevensanalyse (ook wel een greenfield-project genoemd)?

Vervolgens moet u rekening houden met uw pijnpunten.

Huidige pijnpunten identificeren

Uw POC moet use cases bevatten om potentiële oplossingen te bewijzen om uw huidige pijnpunten aan te pakken. Deze vragen kunnen hierbij helpen:

  • Welke hiaten in uw huidige implementatie verwacht u dat Azure Synapse opvult?
  • Welke nieuwe bedrijfsbehoeften moet u ondersteunen?
  • Aan welke service level agreements (SLA's) moet u voldoen?
  • Wat zijn de workloads (bijvoorbeeld ETL, batchquery's, analyses, rapportagequery's of interactieve query's)?

Vervolgens moet u uw POC-succescriteria instellen.

Succescriteria voor POC instellen

Bepaal waarom u een POC uitvoert en zorg ervoor dat u duidelijke doelen definieert. Het is ook belangrijk om te weten welke uitvoer u wilt van uw POC en wat u ermee wilt doen.

Houd er rekening mee dat een POC een korte en gerichte inspanning moet zijn om snel een beperkte set concepten te bewijzen of te testen. Als u een lange lijst met te bewijzen items hebt, kunt u ze in meerdere POC's duiken. POC's kunnen poorten hebben tussen deze pc's, zodat u kunt bepalen of u wilt doorgaan met de volgende POC.

Hier volgen enkele voorbeelden van POC-doelen:

  • We moeten weten dat de queryprestaties voor onze complexe rapportagequery's voldoen aan onze nieuwe SLA's.
  • We moeten de queryprestaties voor onze interactieve gebruikers kennen.
  • We moeten weten of onze bestaande ETL-processen goed passen en waar verbeteringen moeten worden aangebracht.
  • We moeten weten of we onze ETL-runtimes en hoeveel kunnen verkorten.
  • We moeten weten dat Synapse Analytics voldoende beveiligingsmogelijkheden heeft om onze gegevens adequaat te beveiligen.

Vervolgens moet u een testplan maken.

Een testplan maken

Gebruik uw doelen om specifieke tests te identificeren die moeten worden uitgevoerd om deze doelen te ondersteunen en uw geïdentificeerde uitvoer te bieden. Het is belangrijk om ervoor te zorgen dat u ten minste één test voor elk doel en de verwachte uitvoer hebt. Identificeer specifieke query's, rapporten, ETL en andere processen die u uitvoert om kwantificeerbare resultaten te bieden.

Verfijn uw tests door meerdere testscenario's toe te voegen om eventuele vragen over tabelstructuur te verduidelijken.

Een goede planning definieert meestal een effectieve POC-uitvoering. Zorg ervoor dat alle belanghebbenden akkoord gaan met een schriftelijk testplan dat elk POC-doel verbindt met een set duidelijk aangegeven testcases en succesmetingen.

De meeste testplannen hebben betrekking op prestaties en de verwachte gebruikerservaring. Hier volgt een voorbeeld van een testplan. Het is belangrijk om uw testplan aan te passen aan uw zakelijke vereisten. Als u duidelijk definieert wat u test, betaalt u later in dit proces dividenden.

Doel Testen Verwachte resultaten
We moeten weten dat de queryprestaties voor onze complexe rapportagequery's voldoen aan onze nieuwe SLA's - Sequentiële test van complexe query's
- Gelijktijdigheidstest van complexe query's op vermelde SLA's
- Query's A, B en C voltooid in respectievelijk 10, 13 en 21 seconden
- Met 10 gelijktijdige gebruikers, query's A, B en C voltooid in 11, 15 en 23 seconden, gemiddeld
We moeten de queryprestaties voor onze interactieve gebruikers kennen - Gelijktijdigheidstest van geselecteerde query's op een verwacht gelijktijdigheidsniveau van 50 gebruikers.
- De voorgaande query uitvoeren met resultatensetcache
- Bij 50 gelijktijdige gebruikers is de gemiddelde uitvoeringstijd naar verwachting minder dan 10 seconden en zonder resultatensetcache
- Bij 50 gelijktijdige gebruikers is de gemiddelde uitvoeringstijd naar verwachting minder dan vijf seconden met caching van resultatensets
We moeten weten of onze bestaande ETL-processen kunnen worden uitgevoerd binnen de SLA - Voer een of twee ETL-processen uit om productiebelastingen na te bootsen - Het incrementeel laden in een kern-feitentabel moet in minder dan 20 minuten worden voltooid (inclusief fasering en gegevensopschoning)
- Het verwerken van dimensies duurt minder dan vijf minuten
We moeten weten dat het datawarehouse voldoende beveiligingsmogelijkheden heeft om onze gegevens te beveiligen - Netwerkbeveiliging controleren en inschakelen (VNet en privé-eindpunten), toegangsbeheer (beveiliging op rijniveau, dynamische gegevensmaskering) - Bewijzen dat gegevens onze tenant nooit verlaten.
- Zorg ervoor dat de inhoud van de klant eenvoudig is beveiligd

Vervolgens moet u de POC-gegevensset identificeren en valideren.

De POC-gegevensset identificeren en valideren

Met behulp van de scoped tests kunt u nu de gegevensset identificeren die nodig is om deze tests uit te voeren in Azure Synapse. Controleer uw gegevensset door rekening te houden met het volgende:

  • Controleer of de gegevensset voldoende staat voor uw productiegegevensset in termen van inhoud, complexiteit en schaal.
  • Gebruik geen gegevensset die te klein is (minder dan 1 TB), omdat u mogelijk geen representatieve prestaties bereikt.
  • Gebruik geen gegevensset die te groot is, omdat de POC niet bedoeld is om een volledige gegevensmigratie te voltooien.
  • Identificeer het distributiepatroon, de indexeringsoptie en partitionering voor elke tabel. Als er vragen zijn met betrekking tot distributie, indexering of partitionering, voegt u tests toe aan uw POC om deze te beantwoorden. Houd er rekening mee dat u mogelijk meer dan één distributieoptie of indexeringsoptie voor sommige tabellen wilt testen.
  • Neem contact op met de bedrijfseigenaren voor eventuele obstakels voor het verplaatsen van de POC-gegevensset naar de cloud.
  • Identificeer eventuele beveiligings- of privacyproblemen.

Belangrijk

Zorg ervoor dat u bij bedrijfseigenaren op eventuele obstakels controleert voordat u gegevens naar de cloud verplaatst. Identificeer eventuele beveiligings- of privacyproblemen of eventuele verborgen gegevens die moeten worden uitgevoerd voordat u gegevens naar de cloud verplaatst.

Vervolgens moet u het team van experts samenstellen.

Het team samenstellen

Identificeer de teamleden en hun toezegging om uw POC te ondersteunen. Teamleden moeten het volgende bevatten:

  • Een projectmanager om het POC-project uit te voeren.
  • Een bedrijfsvertegenwoordiger om toezicht te houden op vereisten en resultaten.
  • Een expert op het gebied van toepassingsgegevens om de gegevens voor de POC-gegevensset te bronen.
  • Een Azure Synapse-specialist.
  • Een deskundige adviseur voor het optimaliseren van de POC-tests.
  • Iedereen die nodig is voor specifieke POC-projecttaken, maar die niet nodig zijn voor de volledige duur. Deze ondersteunende resources kunnen netwerkbeheerders, Azure-beheerders of Microsoft Entra-beheerders zijn.

Fooi

We raden u aan een deskundige adviseur in te schakelen om u te helpen met uw POC. De partnercommunity van Microsoft heeft wereldwijde beschikbaarheid van deskundige consultants die u kunnen helpen bij het beoordelen, evalueren of implementeren van Azure Synapse.

Nu u volledig voorbereid bent, is het tijd om uw POC in de praktijk te brengen.

De POC in de praktijk brengen

Houd rekening met het volgende:

  • Implementeer uw POC-project met de discipline en de nauwkeurigheid van elk productieproject.
  • Voer de POC volgens plan uit.
  • Zorg ervoor dat er een wijzigingsaanvraagproces wordt uitgevoerd om te voorkomen dat uw POC-bereik groeit of verandert.

Voordat tests kunnen worden gestart, moet u de testomgeving instellen. Het omvat vier fasen:

  1. Instellen
  2. Gegevens laden
  3. Uitvoeren van query's
  4. Toegevoegde waardetests

Image shows the four test environment stages: Setup, Data loading, Querying, and Value added tests.

Instellen

U kunt een POC instellen in Azure Synapse door de volgende stappen uit te voeren:

  1. Gebruik deze quickstart om een Synapse-werkruimte in te richten en opslag en machtigingen in te stellen volgens het POC-testplan.
  2. Gebruik deze quickstart om een toegewezen SQL-pool toe te voegen aan de Synapse-werkruimte.
  3. Stel netwerken en beveiliging in op basis van uw vereisten.
  4. Geef de juiste toegang tot POC-teamleden. Zie dit artikel over verificatie en autorisatie voor toegang tot toegewezen SQL-pools.

Fooi

U wordt aangeraden code- en eenheidstests te ontwikkelen met behulp van het DW500c-serviceniveau (of lager). U wordt aangeraden belasting- en prestatietests uit te voeren met behulp van het DW1000c-serviceniveau (of hoger). U kunt het berekenen van de toegewezen SQL-pool op elk gewenst moment onderbreken om de facturering van de rekenkracht te beëindigen, wat kosten bespaart.

Gegevens laden

Zodra u de toegewezen SQL-pool hebt ingesteld, kunt u deze stappen uitvoeren om gegevens te laden:

  1. Laad de gegevens in Azure Blob Storage. Voor een POC wordt u aangeraden een V2-opslagaccount voor algemeen gebruik met lokaal redundante opslag (LRS) te gebruiken. Hoewel er verschillende hulpprogramma's zijn voor het migreren van gegevens naar Azure Blob Storage, is het de eenvoudigste manier om Azure Storage Explorer te gebruiken, waarmee bestanden naar een opslagcontainer kunnen worden gekopieerd.
  2. Laad de gegevens in de toegewezen SQL-pool. Azure Synapse ondersteunt twee T-SQL-laadmethoden: PolyBase en de COPY-instructie . U kunt SSMS gebruiken om verbinding te maken met de toegewezen SQL-pool om een van beide methoden te gebruiken.

Wanneer u gegevens voor het eerst in de toegewezen SQL-pool laadt, moet u overwegen welk distributiepatroon en welke indexoptie u wilt gebruiken. Hoewel een toegewezen SQL-pool verschillende van beide ondersteunt, is het een aanbevolen procedure om te vertrouwen op standaardinstellingen. Standaardinstellingen maken gebruik van round robin-distributie en een geclusterde columnstore-index. Indien nodig kunt u deze instellingen later aanpassen, zoals verderop in dit artikel wordt beschreven.

In het volgende voorbeeld ziet u de loadmethode COPY:

--Note when specifying the column list, input field numbers start from 1
COPY INTO
    test_1 (Col_1 default 'myStringDefault' 1, Col_2 default 1 3)
FROM
    'https://myaccount.blob.core.windows.net/myblobcontainer/folder1/'
WITH (
    FILE_TYPE = 'CSV',
    CREDENTIAL = (IDENTITY = 'Storage Account Key' SECRET = '<Your_Account_Key>'),
    FIELDQUOTE = '"',
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '0x0A',
    ENCODING = 'UTF8',
    FIRSTROW = 2
);

Uitvoeren van query's

Het primaire doel van een datawarehouse is het uitvoeren van analyses, waarvoor query's moeten worden uitgevoerd op het datawarehouse. De meeste POC's beginnen met het uitvoeren van een klein aantal representatieve query's voor het datawarehouse, eerst opeenvolgend en vervolgens gelijktijdig. U moet beide benaderingen definiëren in uw testplan.

Sequentiële querytests

U kunt eenvoudig sequentiële querytests uitvoeren in SSMS. Het is belangrijk om deze tests uit te voeren met behulp van een gebruiker met een voldoende grote resourceklasse. Een resourceklasse is een vooraf vastgestelde resourcelimiet in een toegewezen SQL-pool die rekenresources en gelijktijdigheid beheert voor het uitvoeren van query's. Voor eenvoudige query's raden we u aan om de vooraf gedefinieerde staticrc20-resourceklasse te gebruiken. Voor complexere query's wordt u aangeraden de vooraf gedefinieerde staticrc40-resourceklasse te gebruiken.

U ziet dat de volgende eerste query gebruikmaakt van een querylabel om een mechanisme te bieden om de query bij te houden. De tweede query maakt gebruik van de sys.dm_pdw_exec_requests dynamische beheerweergave om op het label te zoeken.

/* Use the OPTION(LABEL = '') Syntax to add a query label to track the query in DMVs */
SELECT TOP (1000)
    *
FROM
    [dbo].[Date]
OPTION (LABEL = 'Test1');

/* Use sys.dm_pdw_exec_requests to determine query execution duration (ms) */
SELECT
    Total_elapsed_time AS [Elapsed_Time_ms],
    [label]
FROM
    sys.dm_pdw_exec_requests
WHERE
    [label] = 'Test1';

Gelijktijdige querytests

Nadat u de opeenvolgende queryprestaties hebt opgenomen, kunt u vervolgens meerdere query's gelijktijdig uitvoeren. Op die manier kunt u een business intelligence-workload simuleren die wordt uitgevoerd op de toegewezen SQL-pool. De eenvoudigste manier om deze test uit te voeren is door een stresstestprogramma te downloaden. Het populairste hulpprogramma is Apache JMeter, een opensource-hulpprogramma van derden.

Het hulpprogramma rapporteert over minimale, maximum- en mediaanqueryduur voor een bepaald gelijktijdigheidsniveau. Stel dat u een business intelligence-workload wilt simuleren waarmee 100 gelijktijdige query's worden gegenereerd. U kunt JMeter instellen om deze 100 gelijktijdige query's in een lus uit te voeren en vervolgens de uitvoering van de stabiele status te controleren. Dit kan worden gedaan met caching van resultatensets in of uit om de geschiktheid van die functie te evalueren.

Zorg ervoor dat u uw resultaten documenteren. Hier volgt een voorbeeld van enkele resultaten:

Gelijktijdigheid #Query's worden uitgevoerd DWU Minimale duur(en) Maximale duur(S) Mediaanduur(en)
100 1.000 5.000 3 10 5
50 5\.000 5\.000 3 6 4

Gemengde workloadtests

Het testen van gemengde werkbelastingen is een uitbreiding van de gelijktijdige querytests. Door een proces voor het laden van gegevens toe te voegen aan de workloadmix, simuleert de workload een echte productieworkload.

De gegevens optimaliseren

Afhankelijk van de queryworkload die wordt uitgevoerd op Azure Synapse, moet u mogelijk de distributies en indexen van uw datawarehouse optimaliseren en de tests opnieuw uitvoeren. Zie Best practices voor toegewezen SQL-pools in Azure Synapse Analytics voor meer informatie.

De meest voorkomende fouten die tijdens de installatie worden gezien, zijn:

  • Grote query's worden uitgevoerd met een resourceklasse die te laag is.
  • De dwu's op serviceniveau van de toegewezen SQL-pool zijn te laag voor de workload.
  • Voor grote tabellen is hash-distributie vereist.

U kunt het volgende doen om de queryprestaties te verbeteren:

  • Gerealiseerde weergaven maken, waarmee query's met algemene aggregaties kunnen worden versneld.
  • Tabellen repliceren, met name voor tabellen met kleine dimensies.
  • Hash distribueert grote feitentabellen die zijn samengevoegd of samengevoegd.

Toegevoegde waardetests

Zodra het testen van queryprestaties is voltooid, is het een goed moment om specifieke functies te testen om te controleren of ze voldoen aan uw beoogde gebruiksvoorbeelden. Deze functies zijn onder andere:

Ten slotte moet u uw POC-resultaten interpreteren.

De POC-resultaten interpreteren

Zodra u testresultaten voor uw datawarehouse hebt, is het belangrijk dat u die gegevens interpreteert. Een veelgebruikte benadering is het vergelijken van de uitvoeringen in termen van prijs/prestaties. Eenvoudig gezegd, prijs/prestaties verwijdert de verschillen in prijs per DWU of servicehardware en biedt één vergelijkbaar aantal voor elke prestatietest.

Hier volgt een voorbeeld:

Testen Testduur DWU $/hr voor DWU Kosten van test
Test 1 10 min. 1000 $ 12/uur $2
Test 2 30 min 500 $ 6/uur $ 3

In dit voorbeeld kunt u gemakkelijk zien dat test 1 op DWU1000 rendabeler is tegen $ 2 per testuitvoering in vergelijking met $ 3 per testuitvoering.

Notitie

U kunt deze methodologie ook gebruiken om resultaten te vergelijken tussen leveranciers in een POC.

Kortom, nadat u alle POC-tests hebt voltooid, bent u klaar om de resultaten te evalueren. Begin met het evalueren of aan de POC-doelstellingen is voldaan en de gewenste uitvoer is verzameld. Noteer waar aanvullende tests gerechtvaardigd zijn en aanvullende vragen die zijn gesteld.

Volgende stappen