Parallell inläsning av datauppsättningssegment
Vid fullständig laddning kan du påskynda inläsningen av stora datauppsättningar genom att dela upp datauppsättningen i segment som läses in parallellt. Tabeller kan delas upp efter dataintervall, alla partitioner, alla underpartitioner eller specifika partitioner.
Varje datauppsättningssegment laddas med hjälp av en separat deluppgift. När du bestämmer hur du ska dela upp en datauppsättning ska du därför alltid ta hänsyn till tillgången på databas- och nätverksresurser. Om du delar upp en tabell i för många segment kan det påverka databasens prestanda och överbelasta nätverkskapaciteten. Om du väljer segmenteringsmetoden Dataområden med en partitionerad datauppsättning är bästa praxis att ställa in områdena så att varje område täcker en eller flera hela partitioner. Detta kommer att påskynda datahämtning och minimera påverkan på databasens bearbetningsresurser.
Datakällor och mål som stöds
Datauppgiften måste definieras med en kombination av följande kopplingar för datakälla och mål.
Kopplingar till datakällor som stöds
- IBM DB2 för LUW
-
IBM DB2 för z/OS
Anteckning om informationTabellsegmentering med partitioner eller delpartitioner stöds inte med källkopplingen IBM DB2 för z/OS.
- Microsoft SQL Server (loggbaserad)
- MySQL
- Oracle
-
PostgreSQL
Anteckning om informationTabellsegmentering med partitioner eller delpartitioner stöds inte med källkopplingen PostgreSQL.
- SAP (tillämpning)Anteckning om information
Tabeller med källslutpunkten SAP (Application) är klientberoende som standard. MANDT-kolumnen hämtas automatiskt direkt från kopplingen.
- SAP HANA (databas)
Målkopplingar som stöds
- Amazon Redshift
- Amazon S3
- Google Cloud BigQuery
- Google Cloud-lagring
- Microsoft Fabric Data Warehouse
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- Snowflake
Konfigurera parallell belastning
Du kan dela upp en tabell med en av två metoder: Dataintervall eller Partitioner. Metoden Dataintervall delar upp tabellen efter dataintervall medan metoden Partitioner delar upp tabellen efter partitioner.
Använda metoden för dataintervall
För att definiera segmentgränser efter dataintervall:
-
På fliken Datauppsättningar klickar du på menyn
till höger om datauppsättningen och väljer Inställningar.
Dialogrutan Parallel load öppnas.
-
Välj segmenteringsmetod för Dataserier.
-
Klicka på Välj kolumner.
Dialogrutan Kolumner för tabellsegmentering öppnas
-
För alla datakällor som stöds väljs kolumnen Unique Index automatiskt. Välj vilka ytterligare kolumner med data som du vill använda för att avgränsa intervallen och klicka sedan på OK.
Anteckning om information-
Vi rekommenderar att du använder kolumner som inte tillåter NULL-värden och som inte uppdateras under normala källdatabasåtgärder (t.ex. en primärnyckelkolumn eller en datumkolumn med ett fast datum). Om du använder en kolumn som uppdateras vid fullständig laddning kan det orsaka kopior i måldatabasen.
-
Vi rekommenderar att du använder indexerade källkolumner eftersom detta optimerar prestandan vid hämtning av data.
-
Upp till tio kolumner kan väljas
-
Poster med null-värden kommer inte att replikeras
-
Följande datatyper kan inte användas för att definiera segment genom intervall: DOUBLE, FLOAT och LOB (BLOB, CLOB, NCLOB)
-
-
Klicka på Lägg till dataområde för att lägga till ett dataområdessegment.
Dialogrutan Lägg till dataområde öppnas med de valda kolumnerna.
-
Ange den övre intervallgränsen per segment för varje kolumn.
Anteckning om informationVärden i DATE-kolumnerna måste anges i det format som stöds av källan. För en Oracle-källa skulle till exempel det korrekta formatet vara:
-
ALTER SESSION SET NLS_DATE_FORMAT:
'YYYY-MM-DD HH24:MI:SS' (att ange endast YYYY-MM-DD är också giltigt)
-
ALTER SESSION SET NLS_TIMESTAMP_FORMAT:
'YYYY-MM-DD HH24:MI:SS.FF9'
-
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT:
'YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM'
-
-
Klicka på OK för att spara dina inställningar och stänga dialogrutan.
Var och en av de valda kolumnerna kommer att visas med sitt angivna intervall.
- Upprepa steg 3–6 efter behov för att lägga till kolumner och dataintervall.
- Klicka på Validera för att bekräfta att de data du angav motsvarar källkolumnens datatyp och att alla definierade segment innehåller värden.
Med den här segmenteringsmetoden för Dataintervall replikeras alla tabelldata även om dataintervallen inte är definierade för alla kolumner.
Så här redigerar du ett dataintervall:
- Klicka på menyn
i slutet av raden och välj Redigera.
- Ändra dataintervallet efter önskemål och klicka på OK för att spara ändringarna.
Radera ett dataintervall:
- Klicka på menyn
i slutet av raden och välj Ta bort.
- När du ombeds bekräfta åtgärden klickar du på Ta bort.
Användningsexempel
Låt oss anta att följande segment är definierade:
Column_1 | Column_2 | Column_3 |
---|---|---|
10 |
30 |
105 |
20 |
20 |
120 |
100 |
12 |
99 |
Här kommer följande "WHERE"-klausuler att skapas för varje load-segment:
- Segment 1:((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105)))
- Segment 2:NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120)))
- Segment 3:NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 30) AND (COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
- Segment 4:NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
Använda partitionsmetoden
Du kan definiera segmentgränser för alla tabellpartitioner, för alla delpartitioner i tabellen (om datakällan stöder delpartitioner) eller för specifika partitioner.
- Denna metod kan endast användas om datauppsättningen redan är partitionerad.
- Om du har en uppgift som fanns innan den här funktionen släpptes, och du antingen inte har startat uppgiften ännu eller vill göra en parallellinläsning av en eller flera tabeller med den här metoden, måste du först uppdatera metadata enligt beskrivningen på Registrera data som redan finns på dataplattformen(Processen för uppdatering av metadata som beskrivs i det här avsnittet är densamma för alla typer av datauppgifter).
Använda alla partitioner
För att definiera segmentgränser för alla tabellpartitioner eller delpartitioner:
-
På fliken Datauppsättningar klickar du på menyn
till höger om datauppsättningen och väljer Inställningar.
Dialogrutan Parallel load öppnas.
-
Välj segmenteringsmetod för Partitioner.
-
Välj en av följande:
-
Använd alla huvudpartitioner
-
Använd alla delpartitioner
Anteckning om informationDet här alternativet avaktiveras om inte datakällan stöder inte delpartitioner.
-
- Klicka på OK.
Använda specifika partitioner
För att definiera segmentgränser med specifika partitioner:
-
På fliken Datauppsättningar klickar du på menyn
till höger om datauppsättningen och väljer Inställningar.
Dialogrutan Parallel load öppnas.
-
Välj segmenteringsmetod för Partitioner.
-
Välj Ange partitioner.
Anteckning om informationNär Ange partitioner är valt kommer endast de angivna partitionerna att replikeras.
-
Klicka på Lägg till partition.
Dialogrutan Lägg till partition öppnas.
-
Ange namnet på en befintlig partition eller delpartition.
Om du lägger till en delpartition markerar du kryssrutan Delpartition.
- Klicka på OKför att spara dina inställningar.
- Upprepa steg 4–6 efter behov för att lägga till partitioner eller delpartitioner.
Så här redigerar du en partition:
- Klicka på menyn
i slutet av raden och välj Redigera.
- Ändra partionsinformationen efter önskemål och klicka på OK för att spara ändringarna.
Ta bort en partition:
- Klicka på menyn
i slutet av raden och välj Ta bort.
- När du ombeds bekräfta åtgärden klickar du på Ta bort.
Justering av antalet segment som kan läsas in parallellt
Du kan öka eller minska antalet segment som ska läsas in parallellt. Värdet ärvs från fältet Fullständig laddning > Prestandajustering > Maximalt antal tabeller som ska läsas in parallellt i inställningarna för datauppgifter. Det aktuella värdet visas i strängen "Up to <n> segments can be loaded in parallel" i dialogen Parallel load. Att öka antalet kan öka prestandan när en datauppsättning delas upp i många segment, men det kommer också att innebära en större belastning på databasresurser och nätverkskapacitet.