Trinnvis innlasting av data fra Data Warehouse til Lakehouse
I denne opplæringen lærer du hvordan du laster inn data trinnvis fra Data Warehouse til Lakehouse.
Oversikt
Her er løsningsdiagrammet på høyt nivå:
Her er de viktige trinnene for å opprette denne løsningen:
Velg vannmerkekolonnen. Velg én kolonne i kildedatatabellen, som kan brukes til å dele opp de nye eller oppdaterte postene for hver kjøring. Vanligvis fortsetter dataene i denne valgte kolonnen (for eksempel last_modify_time eller ID) å øke når rader opprettes eller oppdateres. Maksimumsverdien i denne kolonnen brukes som vannmerke.
Klargjør en tabell for å lagre den siste vannmerkeverdien i datalageret.
Opprett et datasamlebånd med følgende arbeidsflyt:
Datasamlebåndet i denne løsningen har følgende aktiviteter:
- Opprett to oppslagsaktiviteter. Bruk den første oppslagsaktiviteten til å hente den siste vannmerkeverdien. Bruk den andre oppslagsaktiviteten til å hente den nye vannmerkeverdien. Disse vannmerkeverdiene sendes til kopiaktiviteten.
- Opprett en kopiaktivitet som kopierer rader fra kildedatatabellen med verdien for vannmerkekolonnen større enn den gamle vannmerkeverdien og mindre enn den nye vannmerkeverdien. Deretter kopierer den dataene fra Data Warehouse til Lakehouse som en ny fil.
- Opprett en lagret prosedyreaktivitet som oppdaterer den siste vannmerkeverdien for neste datasamlebåndkjøring.
Forutsetning
- Datalager. Du bruker datalageret som kildedatalager. Hvis du ikke har det, kan du se Opprette et datalager for trinn for å opprette et.
- Lakehouse. Du bruker Lakehouse som måldatalager. Hvis du ikke har det, kan du se Opprette en Lakehouse for trinn for å opprette en. Opprett en mappe kalt IncrementalCopy for å lagre de kopierte dataene.
Forbereder kilden
Her er noen tabeller og lagret prosedyre som du må klargjøre i kildedatalageret før du konfigurerer det trinnvise kopiforløpet.
1. Opprette en datakildetabell i datalageret
Kjør følgende SQL-kommando i datalageret for å opprette en tabell med navnet data_source_table som datakildetabellen. I denne opplæringen bruker du den som eksempeldata for å utføre den trinnvise kopien.
create table data_source_table
(
PersonID int,
Name varchar(255),
LastModifytime DATETIME2(6)
);
INSERT INTO data_source_table
(PersonID, Name, LastModifytime)
VALUES
(1, 'aaaa','9/1/2017 12:56:00 AM'),
(2, 'bbbb','9/2/2017 5:23:00 AM'),
(3, 'cccc','9/3/2017 2:36:00 AM'),
(4, 'dddd','9/4/2017 3:21:00 AM'),
(5, 'eeee','9/5/2017 8:06:00 AM');
Dataene i datakildetabellen vises nedenfor:
PersonID | Name | LastModifytime
-------- | ---- | --------------
1 | aaaa | 2017-09-01 00:56:00.000
2 | bbbb | 2017-09-02 05:23:00.000
3 | cccc | 2017-09-03 02:36:00.000
4 | dddd | 2017-09-04 03:21:00.000
5 | eeee | 2017-09-05 08:06:00.000
I denne opplæringen bruker du LastModifytime som vannmerkekolonne.
2. Opprett en ny tabell i datalageret for å lagre den siste vannmerkeverdien
Kjør følgende SQL-kommando i datalageret for å opprette en tabell med navnet vannmerke for å lagre den siste vannmerkeverdien:
create table watermarktable ( TableName varchar(255), WatermarkValue DATETIME2(6), );
Angi standardverdien for det siste vannmerket med tabellnavnet for kildedatatabellen. I denne opplæringen er tabellnavnet data_source_table, og standardverdien er
1/1/2010 12:00:00 AM
.INSERT INTO watermarktable VALUES ('data_source_table','1/1/2010 12:00:00 AM')
Se gjennom dataene i tabellens vannmerke.
Select * from watermarktable
Utdata:
TableName | WatermarkValue ---------- | -------------- data_source_table | 2010-01-01 00:00:00.000
3. Opprette en lagret prosedyre i datalageret
Kjør følgende kommando for å opprette en lagret prosedyre i datalageret. Denne lagrede prosedyren brukes til å oppdatere den siste vannmerkeverdien etter siste datasamlebåndkjøring.
CREATE PROCEDURE usp_write_watermark @LastModifiedtime datetime, @TableName varchar(50)
AS
BEGIN
UPDATE watermarktable
SET [WatermarkValue] = @LastModifiedtime
WHERE [TableName] = @TableName
END
Konfigurere et datasamlebånd for trinnvis kopi
Trinn 1: Opprette et datasamlebånd
Gå til Power BI.
Velg Power BI-ikonet nederst til venstre på skjermen, og velg deretter Datafabrikk for å åpne hjemmesiden til Data Factory.
Gå til Microsoft Fabric-arbeidsområdet.
Velg Dataforløp , og skriv deretter inn et datasamlebåndnavn for å opprette et nytt datasamlebånd.
Trinn 2: Legge til en oppslagsaktivitet for det siste vannmerket
I dette trinnet oppretter du en oppslagsaktivitet for å hente den siste vannmerkeverdien. Standardverdien 1/1/2010 12:00:00 AM
angitt før, hentes.
Velg Legg til datasamlebåndaktivitet , og velg Oppslag fra rullegardinlisten.
Gi denne aktiviteten nytt navn til LookupOldWaterMarkActivity under Generelt-fanen.
Under Innstillinger-fanen utfører du følgende konfigurasjon:
- Datalagertype: Velg arbeidsområde.
- Datalagertype for arbeidsområde: Velg datalager.
- Datalager: Velg datalageret.
- Bruk spørring: Velg tabell.
- Tabell: Velg dbo.watermarktable.
- Bare første rad: Valgt.
Trinn 3: Legge til en oppslagsaktivitet for det nye vannmerket
I dette trinnet oppretter du en oppslagsaktivitet for å hente den nye vannmerkeverdien. Du bruker en spørring til å hente det nye vannmerket fra kildedatatabellen. Maksimumsverdien i LastModifytime-kolonnen i data_source_table hentes.
Velg Oppslag under Aktiviteter-fanen på den øverste linjen for å legge til den andre oppslagsaktiviteten.
Gi denne aktiviteten nytt navn til LookupNewWaterMarkActivity under Generelt-fanen.
Under Innstillinger-fanen utfører du følgende konfigurasjon:
Datalagertype: Velg arbeidsområde.
Datalagertype for arbeidsområde: Velg datalager.
Datalager: Velg datalageret.
Bruk spørring: Velg spørring.
Spørring: Skriv inn følgende spørring for å velge maksimalt sist endret tid som nytt vannmerke:
select MAX(LastModifytime) as NewWatermarkvalue from data_source_table
Bare første rad: Valgt.
Trinn 4: Legge til kopiaktiviteten for å kopiere trinnvise data
I dette trinnet legger du til en kopiaktivitet for å kopiere de trinnvise dataene mellom det siste vannmerket og det nye vannmerket fra Data Warehouse til Lakehouse.
Velg Aktiviteter på den øverste linjen, og velg Kopier data –> Legg til i lerret for å hente kopiaktiviteten.
Gi denne aktiviteten nytt navn til IncrementalCopyActivity under Generelt-fanen.
Koble begge oppslagsaktivitetene til kopieringsaktiviteten ved å dra den grønne knappen (Ved vellykket) knyttet til oppslagsaktivitetene til kopiaktiviteten. Slipp museknappen når du ser kantlinjefargen på kopiaktiviteten endres til grønn.
Under Kilde-fanen utfører du følgende konfigurasjon:
Datalagertype: Velg arbeidsområde.
Datalagertype for arbeidsområde: Velg datalager.
Datalager: Velg datalageret.
Bruk spørring: Velg spørring.
Spørring: Skriv inn følgende spørring for å kopiere trinnvise data mellom siste vannmerke og nytt vannmerke.
select * from data_source_table where LastModifytime > '@{activity('LookupOldWaterMarkActivity').output.firstRow.WatermarkValue}' and LastModifytime <= '@{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}'
Under Mål-fanen utfører du følgende konfigurasjon:
- Datalagertype: Velg arbeidsområde.
- Datalagertype for arbeidsområde: Velg Lakehouse.
- Lakehouse: Velg lakehouse.
- Rotmappe: Velg filer.
-
Filbane: Angi mappen du vil lagre de kopierte dataene. Velg Bla gjennom for å velge mappen. Åpne Legg til dynamisk innhold for filnavnet, og skriv inn
@CONCAT('Incremental-', pipeline().RunId, '.txt')
i det åpne vinduet for å opprette filnavn for den kopierte datafilen i Lakehouse. - Filformat: Velg formattypen for dataene.
Trinn 5:Legge til en lagret prosedyreaktivitet
I dette trinnet legger du til en lagret prosedyreaktivitet for å oppdatere den siste vannmerkeverdien for neste datasamlebåndkjøring.
Velg Aktiviteter på den øverste linjen, og velg Lagret prosedyre for å legge til en lagret prosedyreaktivitet.
Gi denne aktiviteten nytt navn til StoredProceduretoWriteWatermarkActivity under Generelt-fanen.
Koble de grønne (ved vellykket) utdataene for kopieringsaktiviteten til den lagrede prosedyreaktiviteten.
Under Innstillinger-fanen utfører du følgende konfigurasjon:
Datalagertype: Velg arbeidsområde.
Datalager: Velg datalageret.
Navn på lagret prosedyre: Angi den lagrede prosedyren du opprettet i datalageret: [dbo].[ usp_write_watermark].
Utvid parametere for lagret prosedyre. Hvis du vil angi verdier for de lagrede prosedyreparameterne, velger du Importer og angir følgende verdier for parameterne:
Navn Type Verdi LastModifiedtime DateTime @{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue} TableName Streng @{activity('LookupOldWaterMarkActivity').output.firstRow.TableName}
Trinn 6:Kjør datasamlebåndet og overvåk resultatet
Velg Kjør under Hjem-fanen på den øverste linjen. Velg deretter Lagre og kjør. Datasamlebåndet starter, og du kan overvåke datasamlebåndet under Utdata-fanen .
Gå til Lakehouse, du finner datafilen er under mappen du har angitt, og du kan velge filen for å forhåndsvise de kopierte dataene.
Legge til flere data for å se resultatene for trinnvis kopi
Når du er ferdig med den første datasamlebåndkjøringen, kan vi prøve å legge til flere data i datakildetabellen for datalageret for å se om dette datasamlebåndet kan kopiere de trinnvise dataene.
Trinn 1: Legge til flere data i kilde
Sett inn nye data i datalageret ved å kjøre følgende spørring:
INSERT INTO data_source_table
VALUES (6, 'newdata','9/6/2017 2:23:00 AM')
INSERT INTO data_source_table
VALUES (7, 'newdata','9/7/2017 9:01:00 AM')
De oppdaterte dataene for data_source_table er:
PersonID | Name | LastModifytime
-------- | ---- | --------------
1 | aaaa | 2017-09-01 00:56:00.000
2 | bbbb | 2017-09-02 05:23:00.000
3 | cccc | 2017-09-03 02:36:00.000
4 | dddd | 2017-09-04 03:21:00.000
5 | eeee | 2017-09-05 08:06:00.000
6 | newdata | 2017-09-06 02:23:00.000
7 | newdata | 2017-09-07 09:01:00.000
Trinn 2:Utløse en annen datasamlebåndkjøring og overvåke resultatet
Gå tilbake til datasamlebåndsiden. Velg Kjør under Hjem-fanen på den øverste linjen på nytt. Datasamlebåndet starter, og du kan overvåke datasamlebåndet under Utdata.
Gå til Lakehouse, du finner den nye kopierte datafilen under mappen du har angitt, og du kan velge filen for å forhåndsvise de kopierte dataene. Du ser at de trinnvise dataene vises i denne filen.
Relatert innhold
Deretter kan du gå videre for å lære mer om kopiering fra Azure Blob Storage til Lakehouse.