Jaa


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:

Kaavio, joka näyttää lisäävästi ladattavan tietologiikan.

Voit luoda tämän ratkaisun seuraavasti:

  1. 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.

  2. Valmistele taulukko viimeisen vesileima-arvon tallentamiseksi tietovarastoon.

  3. 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.

  1. Suorita seuraava SQL-komento Tietovarastossa, kun haluat luoda taulukon nimeltä vesileimataulukko viimeisen vesileima-arvon tallentamiseksi:

    create table watermarktable
    (
    TableName varchar(255),
    WatermarkValue DATETIME2(6),
    );
    
  2. 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')    
    
  3. 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

  1. Siirry Power BI:hin.

  2. Valitse Power BI -kuvake näytön vasemmasta alakulmasta ja valitse sitten Tietotehdas , jolloin Data Factoryn aloitussivu avautuu.

  3. Siirry Microsoft Fabric -työtilaan.

  4. Valitse Tietoputki ja luo uusi putki syöttämällä putken nimi.

    Näyttökuva, jossa näkyy uusi tietoputki-painike juuri luodussa työtilassa.

    Näyttökuva, jossa näkyy uuden putken luomisen 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.

  1. Valitse Lisää jakson aktiviteetti ja valitse avattavasta luettelosta Haku .

  2. Anna Yleiset-välilehdessä tämän aktiviteetin nimeksi LookupOldWaterMarkActivity.

  3. 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.

    Näyttökuvassa näkyy haku vanha vesileima.

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.

  1. Lisää toinen hakutoiminto valitsemalla yläpalkista HakuAktiviteetit-välilehdessä.

  2. Anna Yleiset-välilehdessä tämän aktiviteetin nimeksi LookupNewWaterMarkActivity.

  3. 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.

    Näyttökuvassa näkyy haku uusi vesileima.

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.

  1. Valitse Yläpalkista Aktiviteetit ja valitse Kopioi tiedot –>Lisää pohjaan , jotta saat kopiointitoiminnon.

  2. Vaihda Yleiset-välilehdessä tämän aktiviteetin nimeksi IncrementalCopyActivity.

  3. 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.

    Näyttökuvassa näkyy yhteyden muodostaminen haku- ja kopiointitoiminnoista.

  4. 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}'
      

    Näyttökuva, jossa näkyy kopioi lähdemääritys.

  5. 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.

    Näyttökuvassa on kopiointikohteen määritys.

Vaihe 5: Lisää tallennettu toimintosarja

Tässä vaiheessa lisäät tallennetun toimintosarjan toiminnon, joka päivittää viimeisimmän vesileima-arvon seuraavaa jaksoa varten.

  1. Valitse Yläpalkista Aktiviteetit ja lisää tallennettu toimintosarja valitsemalla Tallennettu toimintosarja .

  2. Anna Yleiset-välilehdessä tämän toiminnon nimeksi StoredProceduretoWriteWatermarkActivity.

  3. Yhdistä kopiointitoiminnon vihreä tulos (onnistumisen yhteydessä) tallennettuun toimintosarjatoimintoon.

  4. 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}

    Näyttökuvassa on tallennettujen toimintosarjojen toimintojen määritys.

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ä .

Näyttökuvassa näkyvät putken suoritustulokset.

Siirry Lakehouse-tallennustilaan, niin löydät tiedoston määrittämästäsi kansiosta ja voit valita tiedoston kopioitujen tietojen esikatselua varten.

Näyttökuva, jossa näkyvät Lakehousen tiedot ensimmäisessä putken ajossa.

Näyttökuva, jossa näkyy Lakehousen tietojen esikatselu ensimmäisessä putkessa.

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.

Näyttökuva, jossa näkyvät Lakehousen tiedot toiselle putken suoritusjaksolle.

Näyttökuva, jossa näkyy Lakehousen tietojen esikatselu toista jaksoa varten.

Siirry seuraavaksi oppimaan lisää kopiosta Azure Blob -tallennuksesta Lakehouseen.