Tömeges másolás vezérlőtáblával rendelkező adatbázisból

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Ahhoz, hogy adatokat másoljon az Oracle Server, Netezza, Teradata vagy SQL Server adattárházából az Azure Synapse Analyticsbe, hatalmas mennyiségű adatot kell betöltenie több táblából. Az adatokat általában particionálással kell elosztani az egyes táblákban, hogy több szálból álló sorokat tölthessenek be párhuzamosan egyetlen táblából. Ez a cikk az ezekben a forgatókönyvekben használható sablonokat ismerteti.

Megjegyzés:

Ha kis számú, viszonylag kis adatmennyiségű táblából szeretne adatokat másolni az Azure Synapse Analyticsbe, hatékonyabb az Azure Data Factory Adatmásolási eszköz használata. A cikkben ismertetett sablon több, mint amennyi az adott forgatókönyvhöz szükséges.

A megoldássablon ismertetése

Ez a sablon lekéri a külső vezérlőtáblából másolandó forrásadatbázis-partíciók listáját. Ezután iterál a forrásadatbázis minden partíciója felett, és átmásolja az adatokat a célhelyre.

A sablon három tevékenységet tartalmaz:

  • A Lookup lekéri a biztos adatbázispartíciók listáját egy külső vezérlőtáblából.
  • A ForEach lekéri a partíciólistát a Keresési tevékenységből, és iterálja az egyes partíciókat a Copy tevékenység.
  • Másolja az egyes partíciókat a forrásadatbázis-tárolóból a céltárolóba.

A sablon a következő paramétereket határozza meg:

  • Control_Table_Name a külső vezérlőtábla, amely a forrásadatbázis partíciólistáját tárolja.
  • Control_Table_Schema_PartitionID az egyes partícióazonosítókat tároló külső vezérlőtáblában lévő oszlopnév neve. Győződjön meg arról, hogy a partícióazonosító egyedi a forrásadatbázis egyes partícióihoz.
  • Control_Table_Schema_SourceTableName a külső vezérlőtábla, amely a forrásadatbázisból tárolja az egyes táblák nevét.
  • Control_Table_Schema_FilterQuery annak az oszlopnak a neve a külső vezérlőtáblában, amely a szűrő lekérdezést tárolja az adatok lekéréséhez a forrásadatbázis egyes partícióiról. Ha például év szerint particionálta az adatokat, az egyes sorokban tárolt lekérdezés hasonló lehet a következőhöz: "select * from datasource where LastModifytime >= ''2015-01-01 00:00:00'' és LastModifytime <= ''2015-12-31 23:59:59.999''.
  • Data_Destination_Folder_Path az az elérési út, ahová az adatok át lesznek másolva a céltárolóba (akkor alkalmazható, ha a választott cél a "Fájlrendszer" vagy az "Azure Data Lake Storage Gen1").
  • Data_Destination_Container a gyökérmappa elérési útja, ahová az adatokat a céltárolóba másolja.
  • Data_Destination_Directory a könyvtár elérési útja a gyökér alatt, ahol az adatok a céltárolóba lesznek másolva.

Az utolsó három paraméter, amely meghatározza a céltároló elérési útját, csak akkor látható, ha a kiválasztott célhely fájlalapú tároló. Ha az "Azure Synapse Analytics" lehetőséget választja céltárolóként, ezek a paraméterek nem szükségesek. Az Azure Synapse Analytics táblaneveinek és sémájának azonban meg kell egyeznie a forrásadatbázisban lévőkkel.

A megoldássablon használata

  1. Hozzon létre egy vezérlőtáblát az SQL Serverben vagy az Azure SQL Database-ben a forrásadatbázis partíciólistájának tömeges másoláshoz való tárolásához. Az alábbi példában öt partíció található a forrásadatbázisban. A datasource_table három partíciót, kettőt pedig a project_table. A LastModifytime oszlop a forrásadatbázisból datasource_table tábla adatainak particionálására szolgál. Az első partíció olvasásához használt lekérdezés a következő: "select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' és LastModifytime <= ''2015-12-31 23:59:59.999'. Hasonló lekérdezéssel adatokat olvashat más partíciókból.

     		Create table ControlTableForTemplate
     		(
     		PartitionID int,
     		SourceTableName  varchar(255),
     		FilterQuery varchar(255)
     		);
    
     		INSERT INTO ControlTableForTemplate
     		(PartitionID, SourceTableName, FilterQuery)
     		VALUES
     		(1, 'datasource_table','select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''),
     		(2, 'datasource_table','select * from datasource_table where LastModifytime >= ''2016-01-01 00:00:00'' and LastModifytime <= ''2016-12-31 23:59:59.999'''),
     		(3, 'datasource_table','select * from datasource_table where LastModifytime >= ''2017-01-01 00:00:00'' and LastModifytime <= ''2017-12-31 23:59:59.999'''),
     		(4, 'project_table','select * from project_table where ID >= 0 and ID < 1000'),
     		(5, 'project_table','select * from project_table where ID >= 1000 and ID < 2000');
    
  2. Nyissa meg a Tömeges másolás adatbázissablonból parancsot. Hozzon létre egy új kapcsolatot az 1. lépésben létrehozott külső vezérlőtáblával.

    Screenshot showing the creation of a new connection to the control table.

  3. Hozzon létre egy új kapcsolatot a forrásadatbázissal, amelyből adatokat másol.

    Screenshot showing the creation of a new connection to the source database.

  4. Hozzon létre egy új kapcsolatot a céladattárhoz, amelybe az adatokat másolja.

    Screenshot showing the creation of a new connection to the destination store.

  5. Kattintson a Sablon használata lehetőségre.

  6. A folyamat az alábbi példában látható módon jelenik meg:

    Screenshot showing the pipeline.

  7. Válassza a Hibakeresés lehetőséget, írja be a paramétereket, majd válassza a Befejezés lehetőséget.

    Screenshot showing the Debug button.

  8. Az alábbi példához hasonló eredmények jelennek meg:

    Screenshot showing the result of the pipeline run.

  9. (Nem kötelező) Ha az "Azure Synapse Analytics" lehetőséget választotta adatcélként, az Azure Synapse Analytics Polybase által előírt módon meg kell adnia egy kapcsolatot az Azure Blob Storage-hoz az előkészítéshez. A sablon automatikusan létrehoz egy tároló elérési útját a Blob Storage számára. Ellenőrizze, hogy a tároló a folyamat futtatása után lett-e létrehozva.

    Screenshot showing the Polybase setting.