Migreringsmetoder til Azure Synapse Analytics dedikerede SQL-puljer til Fabric data warehouse

Gælder for: ✅ Lager i Microsoft Fabric

Denne artikel beskriver metoder til at migrere datalagring i Azure Synapse Analytics dedikerede SQL-puljer til Microsoft Fabric data warehouse.

Tip

Du kan få flere oplysninger om strategi og planlægning af din migrering under planlægning af migrering: Azure Synapse Analytics dedikerede SQL-puljer til Fabric data warehouse.

Du kan få en automatiseret oplevelse med migrering fra dedikerede SQL-puljer i Azure Synapse Analytics ved hjælp af Fabric Migration Assistant til data warehouse-. Resten af denne artikel indeholder flere manuelle overførselstrin.

Denne tabel opsummerer oplysninger om dataskema (DDL), databasekode (DML) og metoder til dataoverførsel. Vi udvider yderligere i hvert scenarie senere i denne artikel, der er sammenkædet i kolonnen Indstilling .

Indstillingsnummer Mulighed Det gør den Kompetence/præference Scenarie
1 datafabrik Skemakonvertering (DDL)
Udtræk data
Dataindtagelse
ADF/pipeline Forenklet alt i ét skema (DDL) og dataoverførsel. Anbefales til dimensionstabeller.
2 Data Factory med partition Skemakonvertering (DDL)
Udtræk data
Dataindtagelse
ADF/pipeline Brug af partitionsindstillinger til at øge læse-/skrive parallelitet, hvilket giver ti gange dataoverførselshastigheden vs. 1, hvilket anbefales til faktatabeller.
3 Data Factory med accelereret kode Skemakonvertering (DDL) ADF/pipeline Konvertér og overfør først skemaet (DDL), og brug derefter CETAS til at udtrække og KOPIERE/datafabrikken til at indtage data for at opnå optimal samlet ydeevne for indtagelse.
4 Fremskyndet kode for lagrede procedurer Skemakonvertering (DDL)
Udtræk data
Kodevurdering
T-SQL SQL-bruger, der bruger IDE med mere detaljeret kontrol over, hvilke opgaver de vil arbejde med. Brug COPY/Data Factory til at hente data.
5 SQL Database Project-udvidelse til Visual Studio Code Skemakonvertering (DDL)
Udtræk data
Kodevurdering
SQL-projekt SQL Database Project til installation med integration af mulighed 4. Brug COPY eller Data Factory til at hente data.
6 OPRET EKSTERN TABEL SOM VÆLG (CETAS) Udtræk data T-SQL Omkostningseffektiv og højtydende dataudtrækning i Azure Data Lake Storage (ADLS) Gen2. Brug COPY/Data Factory til at hente data.
7 Overfør ved hjælp af dbt Skemakonvertering (DDL)
konvertering af databasekode (DML)
dbt Eksisterende dbt-brugere kan bruge dbt Fabric-adapteren til at konvertere deres DDL og DML. Du skal derefter overføre data ved hjælp af andre indstillinger i denne tabel.

Vælg en arbejdsbelastning til den indledende migrering

Når du beslutter, hvor du skal starte med Synapse dedikerede SQL-pool til Fabric data warehouse migreringsprojekt, vælg et arbejdsområde, hvor du kan:

  • Bevis muligheden for at migrere til Fabric data warehouse ved hurtigt at levere fordelene ved det nye miljø. Start småt og enkelt, og forbered dig på flere små migrationer.
  • Giv dine tekniske medarbejdere i huset tid til at få relevant erfaring med de processer og værktøjer, de bruger, når de migrerer til andre områder.
  • Opret en skabelon til yderligere migreringer, der er specifikke for kildens Synapse-miljø, og de værktøjer og processer, der er på plads for at hjælpe.

Tip

Opret en oversigt over objekter, der skal migreres, og dokumenter overførselsprocessen fra start til slut, så den kan gentages for andre dedikerede SQL-puljer eller arbejdsbelastninger.

Mængden af migrerede data i en indledende migration bør være stor nok til at demonstrere kapaciteterne og fordelene ved det Fabric data warehouse miljø, men ikke for stor til hurtigt at kunne påvise værdi. En størrelse i intervallet 1-10 terabyte er typisk.

Migrering med Fabric Data Factory

I dette afsnit gennemgår vi indstillingerne ved hjælp af Data Factory for persona med lav kode/ingen kode, der kender Azure Data Factory og Synapse Pipeline. Denne indstilling for brugergrænsefladen med træk og slip er et simpelt trin til at konvertere DDL'en og overføre dataene.

Fabric Data Factory kan udføre følgende opgaver:

  • Konverter skemaet (DDL) til Fabric data warehouse syntaks.
  • Opret skemaet (DDL) på Fabric data warehouse.
  • Migrer dataene til Fabric data warehouse.

Mulighed 1. Migrering af skema/data – guiden Kopiér og ForHver kopiaktivitet

Denne metode bruger Data Factory Copy Assistant til at forbinde til kildens dedikerede SQL-pool, konvertere den dedikerede SQL-pool DDL-syntaks til Fabric og kopiere data til Fabric data warehouse. Du kan vælge en eller flere destinationstabeller (for TPC-DS datasæt er der 22 tabeller). Den genererer ForHver for at gennemgå listen over tabeller, der er valgt i brugergrænsefladen, og forgrene 22 parallelle Kopiér aktivitet-tråde.

  • 22 SELECT-forespørgsler (én for hver tabel, der er valgt) blev genereret og udført i den dedikerede SQL-gruppe.
  • Sørg for, at du har den relevante DWU- og ressourceklasse, så de oprettede forespørgsler kan udføres. I dette tilfælde skal du bruge et minimum af DWU1000 med staticrc10 for at tillade maksimalt 32 forespørgsler at håndtere 22 sendte forespørgsler.
  • Data Factory direkte kopiering af data fra den dedikerede SQL-pool til Fabric data warehouse kræver staging. Indtagelsesprocessen består af to faser.
    • Den første fase består af at udtrække dataene fra den dedikerede SQL-gruppe til ADLS og kaldes midlertidig.
    • Den anden fase indlæser dataene fra stagingen ind i Fabric data warehouse. Det meste af tidspunktet for dataindtagelse er i den midlertidige fase. Kort sagt har midlertidig lagring stor indvirkning på ydeevnen for indtagelse.

Ved at bruge Copy Wizard til at generere en ForEach giver du et simpelt brugerinterface til at konvertere DDL og indlæse de valgte tabeller fra den dedikerede SQL-pulje for at Fabric data warehouse i ét trin.

Det er dog ikke optimalt med det overordnede gennemløb. Kravet om at bruge midlertidig lagring, behovet for at parallelisere læsning og skrivning for trinnet "Kilde til fase" er de vigtigste faktorer for ventetiden for ydeevnen. Det anbefales kun at bruge denne indstilling til dimensionstabeller.

Mulighed 2. DDL/dataoverførsel – Pipeline ved hjælp af partitionsindstilling

For at forbedre gennemløbet for at indlæse større faktatabeller ved hjælp af Fabric pipeline anbefales det at bruge Kopiér aktivitet for hver faktatabel med partitionsindstilling. Dette giver den bedste ydeevne med kopieringsaktivitet.

Du har mulighed for at bruge den fysiske partitionering af kildetabellen, hvis den er tilgængelig. Hvis tabellen ikke har fysisk partitionering, skal du angive partitionskolonnen og angive minimum-/maksimumværdier for at bruge dynamisk partitionering. På følgende skærmbillede angiver indstillingerne for pipelinekilde et dynamisk område af partitioner baseret på ws_sold_date_sk kolonnen.

Skærmbillede af en pipeline, der viser muligheden for at angive den primære nøgle eller datoen for kolonnen dynamisk partition.

Når du bruger partitionen, kan det øge gennemløbet med den midlertidige fase, men der er overvejelser i forbindelse med at foretage de nødvendige justeringer:

  • Afhængigt af dit partitionsområde kan det potentielt bruge alle samtidighedsstik, da det kan generere mere end 128 forespørgsler i den dedikerede SQL-gruppe.
  • Du skal skalere til et minimum af DWU6000 for at tillade, at alle forespørgsler udføres.
  • For TPC-DS-tabellen web_sales blev der f.eks. sendt 163 forespørgsler til den dedikerede SQL-gruppe. På DWU6000 blev 128 forespørgsler udført, mens 35 forespørgsler blev sat i kø.
  • Dynamisk partition vælger automatisk områdepartitionen. I dette tilfælde et 11-dages interval for hver SELECT-forespørgsel, der er sendt til den dedikerede SQL-gruppe. Eksempel:
    WHERE [ws_sold_date_sk] > '2451069' AND [ws_sold_date_sk] <= '2451080')
    ...
    WHERE [ws_sold_date_sk] > '2451333' AND [ws_sold_date_sk] <= '2451344')
    

I forbindelse med faktatabeller anbefaler vi, at du bruger Data Factory med partitioneringsmulighed for at øge dataoverførselshastigheden.

Dog kræver de øgede parallelliserede læsninger en dedikeret SQL-pool for at skalere til højere DWU, så ekstraktionsforespørgslerne kan udføres. Ved at udnytte partitionering forbedres raten ti gange i forhold til en mulighed uden partition. Du kan øge DWU'en for at få ekstra gennemstrømning gennem compute-ressourcer, men den dedikerede SQL-pulje har maksimalt 128 aktive forespørgsler.

For mere information om Synapse DWU til Fabric-mapping, se Blog: Mapping Azure Synapse dedikerede SQL-pools til Fabric data warehouse-beregning.

Mulighed 3. DDL-overførsel – Kopiér guide forHver kopiaktivitet

De to tidligere indstillinger er fantastiske muligheder for dataoverførsel for mindre databaser. Men hvis du har brug for højere gennemløb, anbefaler vi en alternativ indstilling:

  1. Udtræk dataene fra den dedikerede SQL-pulje til ADLS, og afvis derfor ydeevnen for fasen.
  2. Brug enten Data Factory eller COPY-kommandoen til at indlæse dataene i dit lager.

Du kan fortsætte med at bruge Data Factory til at konvertere dit skema (DDL). Ved hjælp af guiden Kopiér kan du vælge den specifikke tabel eller Alle tabeller. Dette overfører skemaet og dataene i ét trin og udtrækker skemaet uden nogen rækker ved hjælp af den falske betingelse TOP 0 i forespørgselssætningen.

Følgende kodeeksempel dækker skemaoverførsel (DDL) med Data Factory.

Kodeeksempel: Skemaoverførsel (DDL) med Data Factory

Du kan bruge Fabric Pipelines til nemt at migrere din DDL (skemaer) for tabelobjekter fra enhver kilde i Azure SQL Database eller dedikeret SQL-pool. Denne pipeline migrerer skemaet (DDL) for de kildededikerede SQL-pooltabeller til Fabric data warehouse.

Skærmbillede fra Fabric Data Factory, der viser et opslagsobjekt, der fører til et for hvert objekt. I for hvert objekt er der aktiviteter til overførsel af DDL.

Pipelinedesign: parametre

Denne pipeline accepterer en parameter SchemaName, som giver dig mulighed for at angive, hvilke skemaer der skal overføres over. Skemaet dbo er standarden.

I feltet Standardværdi skal du angive en kommasepareret liste over tabelskemaer, der angiver, hvilke skemaer der skal migreres: 'dbo','tpch' for at angive to skemaer dbo og tpch.

Skærmbillede fra Data Factory, der viser fanen Parametre i en pipeline. I Navn-feltet, 'SchemaName'. I Default value-feltet 'dbo', 'tpch', hvilket angiver, at disse to skemaer skal migreres.

Pipelinedesign: Opslagsaktivitet

Opret en opslagsaktivitet, og angiv Forbindelsen til at pege på kildedatabasen.

Under fanen Indstillinger:

  • Angiv Datalagertype til Ekstern.

  • Forbindelse er din Azure Synapse-dedikerede SQL-gruppe. Forbindelsestypen er Azure Synapse Analytics.

  • Brugsforespørgslen er angivet til Forespørgsel.

  • Forespørgselsfeltet skal bygges ved hjælp af et dynamisk udtryk, så parameteren SchemaName kan bruges i en forespørgsel, der returnerer en liste over målkildetabeller. Vælg Forespørgsel , og vælg derefter Tilføj dynamisk indhold.

    Dette udtryk i LookUp Activity genererer en SQL-sætning for at forespørge systemvisninger for at hente en liste over skemaer og tabeller. Den refererer til parameteren SchemaName for at muliggøre filtrering på SQL-skemaer. Outputtet af dette er en matrix af SQL-skemaer og tabeller, der bruges som input i ForEach Activity.

    Brug følgende kode til at returnere en liste over alle brugertabeller med skemanavnet.

    @concat('
    SELECT s.name AS SchemaName,
    t.name  AS TableName
    FROM sys.tables AS t
    INNER JOIN sys.schemas AS s
    ON t.type = ''U''
    AND s.schema_id = t.schema_id
    AND s.name in (',coalesce(pipeline().parameters.SchemaName, 'dbo'),')
    ')
    

Skærmbillede fra Data Factory, der viser fanen Indstillinger i en pipeline. 'Forespørgsel'-knappen vælges, og koden indsættes i feltet 'Forespørgsel'.

Rørledningsdesign: ForHver løkke

Konfigurer følgende indstillinger under fanen Indstillinger for ForHver løkke:

  • Deaktiver Sekventiel for at tillade, at flere gentagelser kører samtidigt.
  • Angiv Batchantal til 50, der begrænser det maksimale antal samtidige gentagelser.
  • Feltet Elementer skal bruge dynamisk indhold til at referere til outputtet fra Opslagsaktivitet. Brug følgende kodestykke: @activity('Get List of Source Objects').output.value

Skærmbillede, der viser fanen Indstillinger for ForHver Løkkeaktivitet.

Pipelinedesign: Kopiér aktivitet i ForHver-løkken

Tilføj en kopiaktivitet i ForHver aktivitet. Denne metode bruger Dynamic Expression Language i pipelines til at bygge en SELECT TOP 0 * FROM <TABLE> metode, der kun migrerer skemaet uden data ind i et warehouse.

Under fanen Kilde:

  • Angiv Datalagertype til Ekstern.
  • Forbindelse er din Azure Synapse-dedikerede SQL-gruppe. Forbindelsestypen er Azure Synapse Analytics.
  • Angiv Brug forespørgsel til forespørgsel.
  • I feltet Forespørgsel skal du indsætte den dynamiske indholdsforespørgsel og bruge dette udtryk, som returnerer nul rækker, kun tabelskemaet: @concat('SELECT TOP 0 * FROM ',item().SchemaName,'.',item().TableName)

Skærmbillede fra Data Factory, der viser fanen Kilde i Kopiér aktivitet i ForHver løkke.

Under fanen Destination:

  • Angiv Datalagertype til Arbejdsområde.
  • Workspace-datalagertypen er data warehouse, og data warehouse er sat til lageret.
  • Destinationstabellens skema og tabelnavn defineres ved hjælp af dynamisk indhold.
    • Skema refererer til den aktuelle iterations felt SchemaName med uddraget: @item().SchemaName
    • Table refererer til TableName med kodestykket: @item().TableName

Skærmbillede fra Data Factory, der viser fanen Destination i Kopiér aktivitet i hver ForHver løkke.

Rørledningsdesign: Vask

For Sink skal du pege på lageret og referere til kildeskemaet og tabelnavnet.

Når du kører denne pipeline, kan du se, at dit data warehouse er udfyldt med hver tabel i kilden med det korrekte skema.

Migrering ved hjælp af lagrede procedurer i Synapse-dedikeret SQL-gruppe

Denne indstilling bruger lagrede procedurer til at udføre Fabric Migration.

Du kan få kodeeksempler på microsoft/fabric-migration på GitHub.com. Denne kode deles som åben kildekode, så du er velkommen til at bidrage til at samarbejde og hjælpe community'et.

Hvad lagrede procedurer for migrering kan gøre:

  • Konverter skemaet (DDL) til Fabric data warehouse syntaks.
  • Opret skemaet (DDL) på Fabric data warehouse.
  • Udtræk data fra Synapse-dedikeret SQL-pulje til ADLS.
  • Markér ikke-understøttet Fabric-syntaks til T-SQL-koder (lagrede procedurer, funktioner, visninger).

Dette er en fantastisk mulighed for dem, der:

  • Kender T-SQL.
  • Vil du bruge et integreret udviklingsmiljø, f.eks. SQL Server Management Studio (SSMS).
  • Vil have mere detaljeret kontrol over, hvilke opgaver de vil arbejde med.

Du kan udføre den specifikke lagrede procedure for skemakonverteringen (DDL), dataudtrækning eller T-SQL-kodevurdering.

Til datamigreringen skal du bruge enten COPY INTO Fabric Data Factory til at indlæse dataene i dit lager.

Overfør ved hjælp af SQL-databaseprojekter

Microsoft Fabric data warehouse understøttes i SQL Database Projects-udvidelsen , som er tilgængelig i Visual Studio Code.

Denne udvidelse er tilgængelig inde i Visual Studio Code. Denne funktion aktiverer funktioner til kildekontrol, databasetest og skemavalidering.

For mere information om versionskontrol, se Oversigt over udvikling og implementering.

Dette er en fantastisk mulighed for dem, der foretrækker at bruge SQL Database Project til deres installation. Denne indstilling integrerede i bund og grund de lagrede fabric migration-procedurer i SQL Database Project for at give en problemfri migreringsoplevelse.

Et SQL-databaseprojekt kan:

  • Konverter skemaet (DDL) til Fabric data warehouse syntaks.
  • Opret skemaet (DDL) på Fabric data warehouse.
  • Udtræk data fra Synapse-dedikeret SQL-pulje til ADLS.
  • Markér ikke-understøttet syntaks for T-SQL-koder (lagrede procedurer, funktioner, visninger).

Til datamigreringen bruger du derefter enten COPY INTO Data Factory til at indtaste dataene i dit lager.

Microsoft Fabric CAT-teamet har leveret et sæt PowerShell-scripts til at håndtere udtrækning, oprettelse og installation af skema (DDL) og databasekode (DML) via et SQL Database-projekt. Du kan finde en gennemgang af brugen af SQL Database-projektet med vores nyttige PowerShell-scripts under microsoft/fabric-migration på GitHub.com.

For mere information om SQL Database Projects, se Kom i gang med SQL Database Projects-udvidelsen og Byg et databaseprojekt fra kommandolinjen.

Overførsel af data med CETAS

Kommandoen T-SQL CREATE EXTERNAL TABLE AS SELECT (CETAS) giver den mest omkostningseffektive og optimale metode til at udtrække data fra Synapse-dedikerede SQL-puljer til Azure Data Lake Storage (ADLS) Gen2.

Hvad CETAS kan gøre:

  • Udtræk data til ADLS.
    • Denne mulighed kræver, at brugerne opretter skemaet (DDL) i dit lager, før de indlæser dataene. Overvej indstillingerne i denne artikel for at overføre skema (DDL).

Fordelene ved denne indstilling er:

  • Der sendes kun en enkelt forespørgsel pr. tabel i forhold til den dedikerede SQL-gruppe Synapse-kilde. Dette bruger ikke alle samtidige slots og blokerer derfor ikke samtidige ETL/forespørgsler til kundeproduktion.
  • Skalering til DWU6000 er ikke påkrævet, da der kun bruges et enkelt samtidighedsstik til hver tabel, så kunderne kan bruge lavere DWU'er.
  • Udtrækningen køres parallelt på tværs af alle beregningsnoder, og dette er nøglen til forbedring af ydeevnen.

Brug CETAS til at udtrække dataene til ADLS som parquetfiler. Parquet-filer giver fordelen ved effektivt datalager med komprimering af kolonner, der vil tage mindre båndbredde at flytte på tværs af netværket. Da Fabric har gemt dataene som Delta-parquetformat, vil dataindtagelse desuden være 2,5 gange hurtigere sammenlignet med tekstfilformatet, da der ikke er nogen konvertering til deltaformatet under indtagelsen.

Sådan øger du CETAS-gennemløb:

  • Tilføj parallelle CETAS-handlinger, hvilket øger brugen af samtidighedsstik, men tillader mere gennemløb.
  • Skaler DWU'en på Synapse-dedikeret SQL-pool.

Migrering via dbt

I dette afsnit diskuterer vi dbt-indstillingen for de kunder, der allerede bruger dbt i deres aktuelle Synapse-dedikerede SQL-gruppemiljø.

Hvad dbt kan gøre:

  • Konverter skemaet (DDL) til Fabric data warehouse syntaks.
  • Opret skemaet (DDL) på Fabric data warehouse.
  • Konvertér databasekode (DML) til Fabric-syntaks.

Dbt Framework genererer DDL og DML (SQL-scripts) løbende med hver udførelse. Med modelfiler udtrykt i SELECT-sætninger kan DDL/DML straks oversættes til en hvilken som helst destinationsplatform ved at ændre profilen (forbindelsesstreng) og adaptertypen.

Dbt Framework er code-first-tilgang. Dataene skal overføres ved hjælp af de indstillinger, der er angivet i dette dokument, f.eks . CETAS eller COPY/Data Factory.

DBT-adapteren til Microsoft Fabric data warehouse gør det muligt at migrere eksisterende dbt-projekter, der målrettede forskellige platforme såsom Synapse dedikerede SQL-pools, Snowflake, Databricks, Google Big Query eller Amazon Redshift, til et lager med en simpel konfigurationsændring.

For at komme i gang med et dbt-projekt, der sigter mod Fabric data warehouse, se Tutorial: Opsæt dbt for Fabric data warehouse. Dette dokument viser også en mulighed for at flytte mellem forskellige lagre/platforme.

Dataindlæsning i Fabric data warehouse

Til indlæsning i Fabric data warehouse, brug COPY INTO eller Fabric Data Factory, alt efter hvad du foretrækker. Begge metoder er de anbefalede og mest effektive indstillinger, da de har tilsvarende ydeevneoverførselshastighed, da filerne allerede er udpakket til Azure Data Lake Storage (ADLS) Gen2.

Flere faktorer, du skal være opmærksom på, så du kan designe din proces for at opnå maksimal ydeevne:

  • Med Fabric er der ingen ressourcekonkurrence, når man indlæser flere tabeller fra ADLS til Fabric data warehouse samtidig. Derfor er der ingen forringelse af ydeevnen, når parallelle tråde indlæses. Det maksimale gennemløb for indtagelse begrænses kun af beregningskraften for din Fabric-kapacitet.
  • Fabric-arbejdsbelastningsstyring giver adskillelse af ressourcer, der er allokeret til belastning og forespørgsel. Der er ingen ressourcestrid, mens forespørgsler og dataindlæsning udføres på samme tid.