Importer data inn i lageret

Gjelder for:✅ Lager i Microsoft Fabric

Warehouse i Microsoft Fabric tilbyr innebygde verktøy for datainntak. Bruk disse verktøyene til å importere data til lagre i stor skala ved å bruke kodefrie eller koderike opplevelser.

Velg et verktøy for datainnsamling

Velg et datainntaksalternativ basert på følgende kriterier:

  • Bruk setningen COPY (Transact-SQL) for koderike datainntaksoperasjoner. Den gir den høyeste datainntaksgjennomstrømningen. Bruk det når du trenger å legge til datainntak som en del av Transact-SQL-logikken din.
    • For å komme i gang, se Ingest-data ved bruk av COPY-setningen.
    • Lageret støtter også den tradisjonelle BULK INSERT uttalelsen om kompatibilitet. I Fabric datalager kartlegger denne setningen til COPY INTO oppførsel med klassiske lastealternativer.
    • Setningen COPY i Warehouse støtter datakilder fra Azure-lagringskontoer og OneLake lakehouse-mapper.
  • Bruk BCP API (Preview) for direkte klient-side inntak når data er i applikasjonsnivået ditt og du ikke kan fase filer først.
    • For å komme i gang, se Ingest-data ved bruk av BCP API (forhåndsvisning).
    • BCP API støtter bcp.exe skript og applikasjons-API-er som C# SqlBulkCopy og JavaSQLServerBulkCopy.
    • For filbasert inntak med høyest gjennomstrømning, foretrekk COPY INTO når det er mulig å stage.
  • Bruk pipelines for kodefrie eller lavkode, robuste datainntaksflyter som kjører gjentatte ganger, etter en tidsplan, eller som involverer store datamengder.
    • For å komme i gang, se Inspise data inn i lageret ditt ved hjelp av pipelines.
    • Ved å bruke pipelines kan du orkestrere robuste arbeidsflyter for en full Extract, Transform, Load (ETL)-opplevelse. Denne erfaringen inkluderer aktiviteter som hjelper til med å forberede destinasjonsmiljøet, kjøre egendefinerte Transact-SQL-setninger, utføre oppslag eller kopiere data fra en kilde til en destinasjon.
  • Bruk dataflyter for en kodefri opplevelse som tillater egendefinerte transformasjoner for å hente data før inntasting.
    • For å komme i gang, se Ingest data using a dataflow.
    • Disse transformasjonene omfatter (men er ikke begrenset til) endring av datatyper, legge til eller fjerne kolonner eller bruke funksjoner til å produsere beregnede kolonner.
  • Bruk T-SQL-inntak for koderike opplevelser for å opprette nye tabeller eller oppdatere eksisterende med kildedata i samme arbeidsområde eller eksterne lagring.
    • For å komme i gang, se Importer data inn i lageret ditt ved å bruke Transact-SQL.
    • Bruk Transact-SQL funksjoner som INSERT...SELECT, SELECT INTO eller CREATE TABLE AS SELECT (CTAS) for å lese data fra tabeller som refererer til andre lager, innsjøhus eller speilede databaser innenfor samme arbeidsområde. Du kan også bruke disse funksjonene til å lese data fra funksjonen OPENROWSET som refererer til filer i eksterne Azure lagringskontoer.
    • Du kan også write cross-database-spørringer mellom ulike lagre i ditt Fabric arbeidsområde.

Støttede dataformater og kilder

Datainntak for Warehouse i Microsoft Fabric støtter mange dataformater og kilder. Hvert alternativ som er beskrevet i denne artikkelen inkluderer sin egen liste over støttede datakoblingstyper og dataformater.

For T-SQL-inntak må tabelldatakilder være innenfor samme Microsoft Fabric arbeidsområde, og fildatakilder må være i Azure Data Lake eller Azure Blob-lagring. Du kan spørre data ved å bruke tredelt navngivning eller OPENROWSET funksjonen for kildedataene. Tabelldatakilder kan referere til Delta Lake-datasett, mens OPENROWSET kan referere til Parquet-, CSV- eller JSONL-filer i Azure Data Lake eller Azure Blob-lagring.

For eksempel, anta at et arbeidsområde har to lagre, kalt Inventory og Sales. En spørring som denne oppretter en ny tabell i Inventory lageret med innholdet i en tabell i Inventory lageret koblet til en tabell i Sales lageret, og med eksterne filer som inneholder kundeinformasjon:

CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT 
    s.SalesOrders,
    i.ProductName,
    c.CustomerName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
    ON s.ProductID = i.ProductID
JOIN OPENROWSET( BULK 'abfss://<container>@<storage>.dfs.core.windows.net/<customer-file>.csv' ) AS c
    ON s.CustomerID = c.CustomerID
WHERE s.Region = 'West region';

Note

Å lese data ved å bruke OPENROWSET kan være tregere enn å spørre data fra en tabell. Hvis du planlegger å få tilgang til de samme eksterne dataene gjentatte ganger, bør du vurdere å ta dem inn i en dedikert tabell for å forbedre ytelsen og spørringseffektiviteten.

COPY (Transact-SQL)-setningen støtter for øyeblikket filformatene CSV, JSONL og PARQUET. For datakilder støttes For øyeblikket Azure Data Lake Storage (ADLS) Gen2 og Azure Blob Storage.

For direkte klientside-inntastingsscenarier støtter BCP API (Preview) verktøy og API-er som bcp.exe, C# SqlBulkCopyog Java SQLServerBulkCopy over SQL-tilkoblinger uten å staging filer først.

Datasamlebånd og dataflyter støtter en rekke datakilder og dataformater. Hvis du vil ha mer informasjon, kan du se Datasamlebånd og dataflyter.

Anbefalte fremgangsmåter

Kommandoen COPY i Warehouse in Microsoft Fabric gir et enkelt, fleksibelt og raskt grensesnitt for høygjennomstrømming av data for SQL-arbeidsbelastninger. I den nåværende versjonen støtter den kun lasting av data fra eksterne lagringskontoer.

Du kan også bruke T-SQL-språk til å opprette en ny tabell og deretter sette inn i den, og deretter oppdatere og slette rader med data. Du kan sette inn data fra hvilken som helst database i Microsoft Fabric-arbeidsområdet ved å bruke kryssdatabase-spørringer. Hvis du vil innta data fra en Lakehouse til et lager, kan du gjøre dette med en kryssdatabasespørring. Eksempel:

INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
  • Unngå å ta inn data ved å bruke singleton-setninger INSERT , da denne tilnærmingen gir dårlig ytelse på spørringer og oppdateringer. Hvis du bruker singleton-setninger INSERT for datainntak etter hvert, opprett en ny tabell ved å bruke CREATE TABLE AS SELECT (CTAS) or INSERT...SELECT patterns, slipp den opprinnelige tabellen, og opprett deretter tabellen din igjen fra tabellen du opprettet ved å bruke CREATE TABLE AS SELECT (CTAS).
    • Hvis du slipper den eksisterende tabellen, påvirker den semantiske modellen, inkludert eventuelle egendefinerte mål eller tilpassinger du har gjort i den semantiske modellen.
  • Når du jobber med eksterne data på filer, sørg for at filene er minst 4 MB store.
  • For store komprimerte CSV-filer bør du vurdere å dele filen i flere filer.
  • Azure Data Lake Storage (ADLS) Gen2 gir bedre ytelse enn Azure Blob Storage (eldre). Vurder å bruke en ADLS Gen2-konto når det er mulig.
  • For datasamlebånd som kjører ofte, bør du vurdere å isolere Azure-lagringskontoen fra andre tjenester som kan få tilgang til de samme filene samtidig.
  • Med eksplisitte transaksjoner kan du gruppere flere dataendringer sammen, slik at de bare vises når du leser én eller flere tabeller når transaksjonen er fullstendig forpliktet. Du har også muligheten til å rulle tilbake transaksjonen hvis noen av endringene mislykkes.
  • Hvis a SELECT er innenfor en transaksjon, og ble innledet av datainnsettinger, kan de automatisk genererte statistikkene være unøyaktige etter en tilbakerulling. Unøyaktig statistikk kan føre til uoptimiserte spørringsplaner og kjøringstider. Hvis du ruller tilbake en transaksjon med SELECTs etter en stor INSERT, oppdater statistikken for kolonnene nevnt i din SELECT.

Note

Uansett hvordan du importerer data til varehus, optimaliserer datainntaksoppgaven parquetfilene den produserer ved å bruke V-Order skriveoptimalisering. V-Order optimaliserer parkettfiler for å aktivere lynraske lesinger under Microsoft Fabric-databehandlingsmotorer som Power BI, SQL, Spark og andre. Warehouse-spørringer generelt drar nytte av raskere lesetider for spørringer med denne optimaliseringen, samtidig som de sikrer at parquet-filene er 100% kompatible med sin åpne kildekode-spesifikasjon. Ikke deaktiver V-Order da det kan påvirke leseytelsen. Hvis du vil ha mer informasjon om V-ordre, kan du se Forstå og administrere V-order for Warehouse.

Ofte stilte spørsmål om datainntak for Fabric datalager

Hva er fildelingsveiledningen for COPY-kommandoen som laster inn komprimerte CSV-filer?

Vurder å dele opp store CSV-filer, spesielt når antallet filer er lite, men hold filene på minimum 4 MB hver for bedre ytelse.

Hva er fildelingsveiledningen for COPY-kommandoen som laster Parquet-filer?

Vurder å dele store Parquet-filer, spesielt når antallet filer er lite.

Er det noen begrensninger på antall eller størrelse på filer?

Det er ingen begrensninger på antall eller størrelse på filer. For best ytelse, bruk filer som er minst 4 MB.

Hvilken autentiseringsmetode bruker COPY-kommandoen hvis jeg ikke spesifiserer en legitimasjon?

Som standard bruker COPY INTO brukerens Microsoft Entra ID.