Del via


Indfødning af data i lageret

Gælder for:✅ Warehouse i Microsoft Fabric

Warehouse i Microsoft Fabric tilbyder indbyggede værktøjer til dataindtagelse, der gør det muligt for brugerne at indføde data i store lagre ved hjælp af kodefrie eller koderige oplevelser.

Indstillinger for dataindtagelse

Du kan overføre data til et lager ved hjælp af en af følgende indstillinger:

  • COPY (Transact-SQL): COPY-sætningen tilbyder fleksibel dataindtagelse med høj dataoverførselshastighed fra en ekstern Azure-lagerkonto. Du kan bruge COPY-sætningen som en del af din eksisterende ETL/ELT-logik i Transact-SQL-kode.
  • Datapipelines: Pipelines giver en kodefri eller lav kodeoplevelse for dataindtagelse. Ved hjælp af pipelines kan du orkestrere robuste arbejdsprocesser for at få en komplet oplevelse af Udtræk, Transformér, Indlæs (ETL), der indeholder aktiviteter, der kan hjælpe med at forberede destinationsmiljøet, køre brugerdefinerede Transact-SQL-sætninger, udføre opslag eller kopiere data fra en kilde til en destination.
  • Dataflow: Et alternativ til pipelines, dataflows muliggør nem dataforberedelse, rengøring og transformation ved hjælp af en kodefri oplevelse.
  • Indtagelse på tværs af lagre: Dataindtagelse fra arbejdsområdekilder er også mulig. Dette scenarie kan være påkrævet, når der er behov for at oprette en ny tabel med et undersæt af en anden tabel eller som et resultat af, at du forbinder forskellige tabeller i lageret og i lakehouse. I forbindelse med indtagelse på tværs af lagre ud over de nævnte indstillinger er Transact-SQL-funktioner, f.eks . INSERT... SELECT, SELECT INTO eller CREATE TABLE AS SELECT (CTAS) fungerer på tværs af lager i det samme arbejdsområde.

Beslut, hvilket dataindtagelsesværktøj der skal bruges

Hvis du vil beslutte, hvilken indstilling for dataindtagelse der skal bruges, kan du bruge følgende kriterier:

  • Brug COPY-sætningen (Transact-SQL) til koderige dataindtagelseshandlinger, til det højeste dataindtagelsesoverførselshastighed, der er muligt, eller når du har brug for at tilføje dataindtagelse som en del af en Transact-SQL-logik. Du kan se syntaks under COPY INTO (Transact-SQL).
  • Brug datapipelines til kodefri eller lavkodede, robuste arbejdsprocesser til dataindtagelse, der kører gentagne gange, efter en tidsplan, eller som involverer store datamængder. Du kan få flere oplysninger under Indfødning af data ved hjælp af datapipelines.
  • Brug dataflow til en kodefri oplevelse, der gør det muligt for brugerdefinerede transformationer at kildedata, før de indtages. Disse transformationer omfatter (men er ikke begrænset til) ændring af datatyper, tilføjelse eller fjernelse af kolonner eller brug af funktioner til at oprette beregnede kolonner. Du kan få flere oplysninger under Dataflow.
  • Brug indtagelse på tværs af lagre til koderige oplevelser for at oprette nye tabeller med kildedata i det samme arbejdsområde. Du kan få flere oplysninger under Indfødning af data ved hjælp af Transact-SQL og Skriv en forespørgsel på tværs af databaser.

Bemærk

COPY-sætningen i Warehouse understøtter kun datakilder på Azure-lagerkonti. OneLake-kilder understøttes i øjeblikket ikke.

Understøttede dataformater og -kilder

Dataindtagelse til Warehouse i Microsoft Fabric indeholder et stort antal dataformater og kilder, du kan bruge. Hver af de skitserede indstillinger indeholder sin egen liste over understøttede dataconnectortyper og dataformater.

I forbindelse med indtagelse på tværs af lagre skal datakilder være inden for det samme Microsoft Fabric-arbejdsområde. Forespørgsler kan udføres ved hjælp af navngivning i tre dele for kildedataene.

Lad os f.eks. antage, at der er to lagre med navnet Inventory og Sales i et arbejdsområde. En forespørgsel som følgende opretter en ny tabel på lagerlageret med indholdet af en tabel på lagerlageret, der er joinforbundet med en tabel på salgslageret:

CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT s.SalesOrders, i.ProductName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
WHERE s.ProductID = i.ProductID
    AND s.Region = 'West region'

COPY-sætningen (Transact-SQL) understøtter i øjeblikket filformaterne PARQUET og CSV. For datakilder understøttes Azure Data Lake Storage (ADLS) Gen2 og Azure Blob Storage i øjeblikket.

Datapipelines og dataflow understøtter en lang række datakilder og dataformater. Du kan få flere oplysninger under Datapipelines og Dataflows.

Bedste praksis

Kommandofunktionen COPY i Warehouse i Microsoft Fabric bruger en enkel, fleksibel og hurtig grænseflade til dataindtagelse med høj dataoverførselshastighed for SQL-arbejdsbelastninger. I den aktuelle version understøtter vi kun indlæsning af data fra eksterne lagerkonti.

Du kan også bruge TSQL til at oprette en ny tabel og derefter indsætte den i den og derefter opdatere og slette rækker med data. Data kan indsættes fra en hvilken som helst database i Microsoft Fabric-arbejdsområdet ved hjælp af forespørgsler på tværs af databaser. Hvis du vil overføre data fra et Lakehouse til et lager, kan du gøre dette med en forespørgsel på tværs af databaser. Eksempler:

INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
  • Undgå at indtage data ved hjælp af insert-sætninger med enkeltton, da det medfører dårlig ydeevne i forespørgsler og opdateringer. Hvis singleton INSERT-sætninger blev brugt til dataindtagelse i træk, anbefaler vi, at du opretter en ny tabel ved hjælp af CREATE TABLE AS SELECT (CTAS) eller INSERT... SELECT-mønstre, slip den oprindelige tabel, og opret derefter tabellen igen ud fra den tabel, du oprettede ved hjælp af OPRET TABEL SOM SELECT (CTAS).
    • Hvis du slipper din eksisterende tabel, påvirker det din semantiske model, herunder eventuelle brugerdefinerede målinger eller tilpasninger, du har foretaget af den semantiske model.
  • Når du arbejder med eksterne data på filer, anbefaler vi, at filerne har en størrelse på mindst 4 MB.
  • Overvej at opdele filen i flere filer for store komprimerede CSV-filer.
  • Azure Data Lake Storage (ADLS) Gen2 tilbyder bedre ydeevne end Azure Blob Storage (ældre). Overvej at bruge en ADLS Gen2-konto, når det er muligt.
  • I forbindelse med pipelines, der kører ofte, kan du overveje at isolere din Azure Storage-konto fra andre tjenester, der kan få adgang til de samme filer på samme tid.
  • Eksplicitte transaktioner giver dig mulighed for at gruppere flere dataændringer, så de kun er synlige, når du læser en eller flere tabeller, når transaktionen er fuldt bekræftet. Du har også mulighed for at annullere transaktionen, hvis nogle af ændringerne mislykkes.
  • Hvis en SELECT er inden for en transaktion og har foranstillet dataindsætninger, kan den automatisk genererede statistik være unøjagtig efter en annullering. Unøjagtige statistikker kan føre til ikke-optimerede forespørgselsplaner og kørselstider. Hvis du annullerer en transaktion med SELECTs efter et stort INSERT, skal du opdatere statistikkerne for de kolonner, der er nævnt i din SELECT.

Bemærk

Uanset hvordan du indfødning af data til lagre, vil de parketfiler, der produceres af dataindtagelsesopgaven, blive optimeret ved hjælp af V-Order-skriveoptimering. V-Order optimerer parquetfiler for at muliggøre lynhurtige læsninger under Microsoft Fabric-beregningsprogrammer, f.eks. Power BI, SQL, Spark og andre. Lagerforespørgsler drager generelt fordel af hurtigere læsetider for forespørgsler med denne optimering, hvilket stadig sikrer, at parquetfilerne er 100 % kompatible med specifikationen for åben kildekode. I modsætning til Fabric Dataudvikler ing er V-Order en global indstilling i Synapse Data Warehouse, der ikke kan deaktiveres. Du kan få flere oplysninger om V-Order under Forstå og administrere V-Order for Warehouse.