Mata in data i informationslagret
Gäller för:✅ Warehouse i Microsoft Fabric
Warehouse i Microsoft Fabric erbjuder inbyggda datainmatningsverktyg som gör det möjligt för användare att mata in data i lager i stor skala med hjälp av kodfria eller kodrika upplevelser.
Datainmatningsalternativ
Du kan mata in data i ett lager med något av följande alternativ:
- COPY (Transact-SQL): COPY-instruktionen erbjuder flexibel datainmatning med högt dataflöde från ett externt Azure-lagringskonto. Du kan använda COPY-instruktionen som en del av din befintliga ETL/ELT-logik i Transact-SQL-kod.
- Datapipelines: pipelines erbjuder en kodfri eller lågkodsupplevelse för datainmatning. Med hjälp av pipelines kan du orkestrera robusta arbetsflöden för en fullständig ETL-upplevelse (Extract, Transform, Load) som innehåller aktiviteter för att förbereda målmiljön, köra anpassade Transact-SQL-instruktioner, utföra sökningar eller kopiera data från en källa till ett mål.
- Dataflöden: ett alternativ till pipelines, dataflöden möjliggör enkel förberedelse, rensning och transformering av data med hjälp av en kodfri upplevelse.
- Inmatning mellan lager: datainmatning från arbetsytekällor är också möjligt. Det här scenariot kan krävas när det finns behov av att skapa en ny tabell med en delmängd av en annan tabell, eller som ett resultat av att du ansluter olika tabeller i lagret och i lakehouse. För inmatning mellan lager, förutom de alternativ som nämns, Transact-SQL-funktioner som INSERT... SELECT, SELECT INTO eller CREATE TABLE AS SELECT (CTAS) work cross-warehouse inom samma arbetsyta.
Bestäm vilket datainmatningsverktyg som ska användas
Om du vill bestämma vilket datainmatningsalternativ som ska användas kan du använda följande villkor:
- Använd COPY-instruktionen (Transact-SQL) för kodrika datainmatningsåtgärder, för högsta möjliga datainmatningsdataflöde eller när du behöver lägga till datainmatning som en del av en Transact-SQL-logik. Syntax finns i KOPIERA TILL (Transact-SQL).
- Använd datapipelines för kodfria eller lågkodsbaserade, robusta arbetsflöden för datainmatning som körs upprepade gånger, enligt ett schema eller som omfattar stora mängder data. Mer information finns i Mata in data med hjälp av datapipelines.
- Använd dataflöden för en kodfri upplevelse som tillåter anpassade transformeringar att källdata innan de matas in. Dessa transformeringar omfattar (men är inte begränsade till) ändring av datatyper, tillägg eller borttagning av kolumner eller användning av funktioner för att skapa beräknade kolumner. Mer information finns i Dataflöden.
- Använd inmatning mellan lager för kodrika upplevelser för att skapa nya tabeller med källdata på samma arbetsyta. Mer information finns i Mata in data med Transact-SQL och Skriva en fråga mellan databaser.
Kommentar
COPY-instruktionen i Warehouse stöder endast datakällor på Azure-lagringskonton, OneLake-källor stöds för närvarande inte.
Dataformat och källor som stöds
Datainmatning för Warehouse i Microsoft Fabric erbjuder ett stort antal dataformat och källor som du kan använda. Vart och ett av de alternativ som beskrivs innehåller en egen lista över dataanslutningstyper och dataformat som stöds.
För inmatning mellan lager måste datakällor finnas inom samma Microsoft Fabric-arbetsyta. Frågor kan utföras med namngivning i tre delar för källdata.
Anta till exempel att det finns två lager med namnet Inventory and Sales på en arbetsyta. En fråga, till exempel följande, skapar en ny tabell i lagerlagret med innehållet i en tabell i lagerlagret, som är kopplad till en tabell i försäljningslager:
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-instruktionen (Transact-SQL) stöder för närvarande FILformaten PARQUET och CSV. För datakällor stöds för närvarande Azure Data Lake Storage (ADLS) Gen2 och Azure Blob Storage.
Datapipelines och dataflöden stöder en mängd olika datakällor och dataformat. Mer information finns i Datapipelines och Dataflöden.
Bästa praxis
Copy-kommandofunktionen i Warehouse i Microsoft Fabric använder ett enkelt, flexibelt och snabbt gränssnitt för datainmatning med högt dataflöde för SQL-arbetsbelastningar. I den aktuella versionen stöder vi endast inläsning av data från externa lagringskonton.
Du kan också använda TSQL för att skapa en ny tabell och sedan infoga i den och sedan uppdatera och ta bort rader med data. Data kan infogas från valfri databas på Microsoft Fabric-arbetsytan med hjälp av frågor mellan databaser. Om du vill mata in data från en Lakehouse till ett lager kan du göra detta med en fråga mellan databaser. Till exempel:
INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
- Undvik att mata in data med hjälp av singleton INSERT-instruktioner , eftersom detta orsakar dåliga prestanda för frågor och uppdateringar. Om singleton INSERT-instruktioner användes för datainmatning i följd rekommenderar vi att du skapar en ny tabell med hjälp av CREATE TABLE AS SELECT (CTAS) eller INSERT... VÄLJ mönster, ta bort den ursprungliga tabellen och skapa sedan tabellen igen från tabellen som du skapade med hjälp av CREATE TABLE AS SELECT (CTAS).
- Om du släpper din befintliga tabell påverkas din semantiska modell, inklusive eventuella anpassade mått eller anpassningar som du kan ha gjort i semantikmodellen.
- När du arbetar med externa data på filer rekommenderar vi att filerna är minst 4 MB stora.
- För stora komprimerade CSV-filer bör du överväga att dela upp filen i flera filer.
- Azure Data Lake Storage (ADLS) Gen2 ger bättre prestanda än Azure Blob Storage (äldre). Överväg att använda ett ADLS Gen2-konto när det är möjligt.
- För pipelines som körs ofta bör du överväga att isolera ditt Azure-lagringskonto från andra tjänster som kan komma åt samma filer samtidigt.
- Med explicita transaktioner kan du gruppera flera dataändringar så att de bara visas när du läser en eller flera tabeller när transaktionen är helt genomförd. Du kan också återställa transaktionen om någon av ändringarna misslyckas.
- Om en SELECT ligger inom en transaktion och föregås av datainfogningar kan den automatiskt genererade statistiken vara felaktig efter en återställning. Felaktig statistik kan leda till ooptimerade frågeplaner och körningstider. Om du återställer en transaktion med SELECT efter en stor INSERT uppdaterar du statistik för kolumnerna som nämns i SELECT.
Kommentar
Oavsett hur du matar in data i lager kommer parquet-filerna som skapas av datainmatningsuppgiften att optimeras med hjälp av optimering av V-Order-skrivning. V-Order optimerar parquet-filer för att aktivera blixtsnabba läsningar under Microsoft Fabric-beräkningsmotorer som Power BI, SQL, Spark och andra. Lagerfrågor i allmänhet drar nytta av snabbare lästider för frågor med den här optimeringen, vilket fortfarande säkerställer att parquet-filerna är 100 % kompatibla med specifikationen med öppen källkod. Till skillnad från i Fabric Dataingenjör ing är V-Order en global inställning i Fabric Data Warehouse som inte kan inaktiveras. Mer information om V-Order finns i Förstå och hantera V-Order for Warehouse.