Läsa in informationslagertabeller
På en grundläggande nivå uppnås inläsning av ett informationslager vanligtvis genom att lägga till nya data från filer i en datasjö i tabeller i informationslagret. Instruktionen COPY
är ett effektivt sätt att utföra den här uppgiften, som du ser i följande exempel:
COPY INTO dbo.StageProducts
(ProductID, ProductName, ProductCategory, Color, Size, ListPrice, Discontinued)
FROM 'https://mydatalake.blob.core.windows.net/data/stagedfiles/products/*.parquet'
WITH
(
FILE_TYPE = 'PARQUET',
MAXERRORS = 0,
IDENTITY_INSERT = 'OFF'
);
Överväganden för att utforma en informationslagerinläsningsprocess
Ett av de vanligaste mönstren för att läsa in ett informationslager är att överföra data från källsystem till filer i en datasjö, mata in fildata i mellanlagringstabeller och sedan använda SQL-instruktioner för att läsa in data från mellanlagringstabellerna till dimensions- och faktatabellerna. Vanligtvis utförs datainläsning som en periodisk batchprocess där infogningar och uppdateringar av informationslagret samordnas för att ske med jämna mellanrum (till exempel dagligen, varje vecka eller varje månad).
I de flesta fall bör du implementera en informationslagerinläsningsprocess som utför uppgifter i följande ordning:
- Mata in de nya data som ska läsas in i en datasjö och tillämpa rensning eller transformeringar före belastning efter behov.
- Läs in data från filer i mellanlagringstabeller i informationslagret för relationer.
- Läs in dimensionstabellerna från dimensionsdata i mellanlagringstabellerna, uppdatera befintliga rader eller infoga nya rader och generera surrogatnyckelvärden efter behov.
- Läs in faktatabellerna från faktadata i mellanlagringstabellerna och leta upp lämpliga surrogatnycklar för relaterade dimensioner.
- Utför optimering efter belastningen genom att uppdatera index och tabelldistributionsstatistik.
När du har använt -instruktionen COPY
för att läsa in data i mellanlagringstabeller kan du använda en kombination av INSERT
CTAS-instruktioner (, UPDATE
MERGE
och CREATE TABLE AS SELECT
) för att läsa in mellanlagrade data i dimensions- och faktatabeller.
Kommentar
Implementering av en effektiv datalagerinläsningslösning kräver noggrant övervägande av hur du hanterar surrogatnycklar, långsamt föränderliga dimensioner och andra komplexiteter som ingår i ett relationsdatalagerschema. Om du vill veta mer om tekniker för att läsa in ett informationslager kan du överväga att slutföra modulen Läsa in data i ett relationsdatalager .