Tietojen lisäävä lataaminen tietovarastosta Lakehouseen
Tässä opetusohjelmassa opit lataamaan tietoja lisäävästi Data Warehousesta Lakehouseen.
Yleiskuvaus
Tässä on korkean tason ratkaisukaavio:
Voit luoda tämän ratkaisun seuraavasti:
Valitse vesileimasarake. Valitse lähdetietotaulukosta yksi sarake, jonka avulla voidaan osittaa uudet tai päivitetyt tietueet jokaista suoritusta varten. Yleensä tämän valitun sarakkeen tiedot (esimerkiksi last_modify_time tai tunnus) kasvavat, kun rivejä luodaan tai päivitetään. Tämän sarakkeen enimmäisarvoa käytetään vesileimana.
Valmistele taulukko viimeisen vesileima-arvon tallentamiseksi tietovarastoon.
Luo putki, jossa on seuraava työnkulku:
Tämän ratkaisun jaksossa on seuraavat toimet:
- Luo kaksi hakutoimintoa. Nouda viimeinen vesileima-arvo ensimmäisen hakutoiminnon avulla. Nouda uusi vesileima-arvo toisen hakutoiminnon avulla. Nämä vesileima-arvot välitetään kopiointitoimintoon.
- Luo kopiointitoiminto, joka kopioi lähdetietotaulukosta rivejä, joiden vesileimasarakkeen arvo on suurempi kuin vanha vesileima-arvo ja pienempi kuin uusi vesileima-arvo. Sitten se kopioi tiedot tietovarastosta Lakehouseen uutena tiedostona.
- Luo tallennettu toimintosarja, joka päivittää seuraavan jakson viimeisen vesileima-arvon.
Edellytykset
- Tietovarasto. Tietovarastoa käytetään lähteen tietosäilönä. Jos sinulla ei ole sitä, ohjeet sellaisen luomiseen on kohdassa Tietovaraston luominen.
- Lakehousessa, tässä on Lakehouse. Voit käyttää Lakehousea kohteena olevana tietosäilönä. Jos sinulla ei ole sitä, katso vaiheita sellaisen luomiseksi kohdasta Lakehousen luominen. Luo kansio nimeltä LisääKopio kopioitujen tietojen tallentamiseksi.
Lähteen valmisteleminen
Seuraavassa on joitakin taulukoita ja tallennettuja toimintosarjoja, jotka sinun on valmisteltava lähdetietovarastossa ennen lisäävän kopioputken määrittämistä.
1. Luo tietolähdetaulukko tietovarastoon
Luo seuraava SQL-komento Tietovarastossa ja luo taulukko nimeltä data_source_table tietolähdetaulukoksi. Tässä opetusohjelmassa käytät sitä lisäävän kopion tekemiseen mallitietoina.
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');
Tietolähdetaulukon tiedot näkyvät alla:
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
Tässä opetusohjelmassa käytetään LastModifytime-toimintoa vesileimasarakkeena.
2. Luo toinen taulukko tietovarastoon viimeisen vesileima-arvon tallentamiseksi.
Suorita seuraava SQL-komento Tietovarastossa, kun haluat luoda taulukon nimeltä vesileimataulukko viimeisen vesileima-arvon tallentamiseksi:
create table watermarktable ( TableName varchar(255), WatermarkValue DATETIME2(6), );
Määritä viimeisen vesileiman oletusarvo lähdetietotaulukon taulukon nimellä. Tässä opetusohjelmassa taulukon nimi on data_source_table ja oletusarvo on
1/1/2010 12:00:00 AM
.INSERT INTO watermarktable VALUES ('data_source_table','1/1/2010 12:00:00 AM')
Tarkista taulukon vesileimataulukon tiedot.
Select * from watermarktable
Tuloste:
TableName | WatermarkValue ---------- | -------------- data_source_table | 2010-01-01 00:00:00.000
3. Luo tallennettu toimintosarja tietovarastoon
Luo tallennettu toimintosarja Tietovarastoon suorittamalla seuraava komento. Tämän tallennetun toimintosarjan avulla voidaan päivittää viimeisin vesileima-arvo edellisen jakson suorittamisen jälkeen.
CREATE PROCEDURE usp_write_watermark @LastModifiedtime datetime, @TableName varchar(50)
AS
BEGIN
UPDATE watermarktable
SET [WatermarkValue] = @LastModifiedtime
WHERE [TableName] = @TableName
END
Putken määrittäminen lisäävälle kopiolle
Vaihe 1: Putken luominen
Siirry Power BI:hin.
Valitse Power BI -kuvake näytön vasemmasta alakulmasta ja valitse sitten Tietotehdas , jolloin Data Factoryn aloitussivu avautuu.
Siirry Microsoft Fabric -työtilaan.
Valitse Tietoputki ja luo uusi putki syöttämällä putken nimi.
Vaihe 2: Viimeisen vesileiman hakuaktiviteetin lisääminen
Tässä vaiheessa luot hakuaktiviteetin, jonka avulla saat viimeisimmän vesileima-arvon. Tämä on oletusarvo, 1/1/2010 12:00:00 AM
asetettua ennen hankkimista.
Valitse Lisää jakson aktiviteetti ja valitse avattavasta luettelosta Haku .
Anna Yleiset-välilehdessä tämän aktiviteetin nimeksi LookupOldWaterMarkActivity.
Suorita Asetukset-välilehdessä seuraavat määritykset:
- Tietosäilön tyyppi: Valitse Työtila.
- Työtilan tietosäilön tyyppi: Valitse Tietovarasto.
- Tietovarasto: Valitse tietovarasto.
- Käytä kyselyä: Valitse taulukko.
- Taulukko: Valitse dbo.watermarktable.
- Vain ensimmäinen rivi: valittuna.
Vaihe 3: Uuden vesileiman hakuaktiviteetin lisääminen
Tässä vaiheessa luot hakuaktiviteetin uuden vesileima-arvon noutamiseksi. Kyselyn avulla saat uuden vesileiman lähdetietotaulukosta. LastModifyTime-sarakkeen enimmäisarvo data_source_table sarake saadaan.
Lisää toinen hakutoiminto valitsemalla yläpalkista HakuAktiviteetit-välilehdessä.
Anna Yleiset-välilehdessä tämän aktiviteetin nimeksi LookupNewWaterMarkActivity.
Suorita Asetukset-välilehdessä seuraavat määritykset:
Tietosäilön tyyppi: Valitse Työtila.
Työtilan tietosäilön tyyppi: Valitse Tietovarasto.
Tietovarasto: Valitse tietovarasto.
Käytä kyselyä: Valitse kysely.
Kysely: Kirjoita seuraava kysely, jos haluat valita viimeisimmän muokatun enimmäisajan uutena vesileimana:
select MAX(LastModifytime) as NewWatermarkvalue from data_source_table
Vain ensimmäinen rivi: valittuna.
Vaihe 4: Lisää kopiointitoiminto lisääviä tietoja varten
Tässä vaiheessa lisäät kopiointitoiminnon, joka kopioi lisäävät tiedot viimeisimmän vesileiman ja uuden vesileiman välillä Tietovarastosta Lakehouseen.
Valitse Yläpalkista Aktiviteetit ja valitse Kopioi tiedot –>Lisää pohjaan , jotta saat kopiointitoiminnon.
Vaihda Yleiset-välilehdessä tämän aktiviteetin nimeksi IncrementalCopyActivity.
Yhdistä molemmat hakutoiminnot kopiointiaktiviteetteihin vetämällä hakutoimintoon liitettyä vihreää painiketta (onnistumisen yhteydessä). Vapauta hiiren painike, kun näet kopiointitoiminnon reunan värin muuttuessa vihreäksi.
Suorita Seuraavat määritykset Lähde-välilehdellä :
Tietosäilön tyyppi: Valitse Työtila.
Työtilan tietosäilön tyyppi: Valitse Tietovarasto.
Tietovarasto: Valitse tietovarasto.
Käytä kyselyä: Valitse kysely.
Kysely: Kirjoita seuraava kysely, jos haluat kopioida lisääviä tietoja viimeisimmän vesileiman ja uuden vesileiman välillä.
select * from data_source_table where LastModifytime > '@{activity('LookupOldWaterMarkActivity').output.firstRow.WatermarkValue}' and LastModifytime <= '@{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}'
Suorita Kohde-välilehdessä seuraavat määritykset:
- Tietosäilön tyyppi: Valitse Työtila.
- Työtilan tietosäilön tyyppi: Valitse Lakehouse.
- Lakehouse: Valitse Lakehousesi.
- Pääkansio: Valitse tiedostot.
-
Tiedostopolku: Määritä kansio, johon haluat tallentaa kopioidut tiedot. Valitse kansiosi valitsemalla Selaa . Avaa tiedostonimelle Lisää dynaaminen sisältö ja kirjoita
@CONCAT('Incremental-', pipeline().RunId, '.txt')
avattuun ikkunaan, niin voit luoda kopioidun datatiedoston tiedostonimet Lakehousessa. - Tiedostomuoto: Valitse tietoihisi haluamasi muotoilutyyppi.
Vaihe 5: Lisää tallennettu toimintosarja
Tässä vaiheessa lisäät tallennetun toimintosarjan toiminnon, joka päivittää viimeisimmän vesileima-arvon seuraavaa jaksoa varten.
Valitse Yläpalkista Aktiviteetit ja lisää tallennettu toimintosarja valitsemalla Tallennettu toimintosarja .
Anna Yleiset-välilehdessä tämän toiminnon nimeksi StoredProceduretoWriteWatermarkActivity.
Yhdistä kopiointitoiminnon vihreä tulos (onnistumisen yhteydessä) tallennettuun toimintosarjatoimintoon.
Suorita Asetukset-välilehdessä seuraavat määritykset:
Tietosäilön tyyppi: Valitse Työtila.
Tietovarasto: Valitse tietovarasto.
Tallennetun toimintosarjan nimi: Määritä tietovarastossa luomasi tallennettu toimintosarja: [dbo].[ usp_write_watermark].
Laajenna Tallennetun toimintosarjan parametrit. Jos haluat määrittää tallennetun toimintosarjan parametrien arvot, valitse Tuo ja anna seuraavat arvot parametreille:
Nimi Tyyppi Arvo LastModifiedtime DateTime @{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue} TableName Merkkijono @{activity('LookupOldWaterMarkActivity').output.firstRow.TableName}
Vaihe 6: Suorita putki ja seuraa tulosta
Valitse yläpalkissa SuoritaAloitus-välilehdessä . Valitse sitten Tallenna ja suorita. Putki käynnistyy ja voit seurata jaksoa Tuloste-välilehdessä .
Siirry Lakehouse-tallennustilaan, niin löydät tiedoston määrittämästäsi kansiosta ja voit valita tiedoston kopioitujen tietojen esikatselua varten.
Lisää tietoja nähdäksesi lisäävän kopion tulokset
Kun olet suorittanut ensimmäisen jakson, yritetään lisätä tietoja Tietovaraston lähde -taulukkoon ja katsotaan, voiko tämä putki kopioida lisääviä tietoja.
Vaihe 1: Lisää tietoja lähteeseen
Lisää uusia tietoja tietovarastoon suorittamalla seuraava kysely:
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')
data_source_table päivitetyt tiedot ovat seuraavat:
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
Vaihe 2: Käynnistä toinen putken suoritus ja valvo tulosta
Siirry takaisin putkisivulle. Valitse yläosan palkista Suorita aloitusvälilehden alla uudelleen. Putki käynnistyy ja voit seurata putkea kohdassa Tuloste.
Siirry Lakehouseen, löydät uuden kopioidun datatiedoston määrittämästäsi kansiosta ja voit valita tiedoston kopioitujen tietojen esikatselua varten. Näet, että lisäävät tietosi näkyvät tässä tiedostossa.
Liittyvä sisältö
Siirry seuraavaksi oppimaan lisää kopiosta Azure Blob -tallennuksesta Lakehouseen.