Gå till huvudinnehåll Gå till ytterligare innehåll

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.

Anteckning om informationOm du använder Data Movement gateway stöds den här funktionen från version 2024.5.35.

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.

  • IBM DB2 för LUW
  • IBM DB2 för z/OS

    Anteckning om information

    Tabellsegmentering 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 information

    Tabellsegmentering 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)
  • 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:

  1. På fliken Datauppsättningar klickar du på menyn Mer-ikontill höger om datauppsättningen och väljer Inställningar.

    Dialogrutan Parallel load öppnas.

  2. Välj segmenteringsmetod för Dataserier.

  3. Klicka på Välj kolumner.

    Dialogrutan Kolumner för tabellsegmentering öppnas

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

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

  6. Ange den övre intervallgränsen per segment för varje kolumn.

    Anteckning om information

    Vä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'

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

  8. Upprepa steg 3–6 efter behov för att lägga till kolumner och dataintervall.
  9. 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.
Anteckning om information

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:

  1. Klicka på menyn Mer-ikon i slutet av raden och välj Redigera.
  2. Ändra dataintervallet efter önskemål och klicka på OK för att spara ändringarna.

Radera ett dataintervall:

  1. Klicka på menyn Mer-ikon i slutet av raden och välj Ta bort.
  2. 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:

Exempel på tabelldata
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.

Anteckning om information
  • 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:

  1. På fliken Datauppsättningar klickar du på menyn Mer-ikontill höger om datauppsättningen och väljer Inställningar.

    Dialogrutan Parallel load öppnas.

  2. Välj segmenteringsmetod för Partitioner.

  3. Välj en av följande:

    • Använd alla huvudpartitioner

    • Använd alla delpartitioner

      Anteckning om information

      Det här alternativet avaktiveras om inte datakällan stöder inte delpartitioner.

  4. Klicka på OK.

Använda specifika partitioner

För att definiera segmentgränser med specifika partitioner:

  1. På fliken Datauppsättningar klickar du på menyn Mer-ikontill höger om datauppsättningen och väljer Inställningar.

    Dialogrutan Parallel load öppnas.

  2. Välj segmenteringsmetod för Partitioner.

  3. Välj Ange partitioner.

    Anteckning om information

    När Ange partitioner är valt kommer endast de angivna partitionerna att replikeras.

  4. Klicka på Lägg till partition.

    Dialogrutan Lägg till partition öppnas.

  5. Ange namnet på en befintlig partition eller delpartition.

    Om du lägger till en delpartition markerar du kryssrutan Delpartition.

  6. Klicka på OKför att spara dina inställningar.
  7. Upprepa steg 4–6 efter behov för att lägga till partitioner eller delpartitioner.

Så här redigerar du en partition:

  1. Klicka på menyn Mer-ikon i slutet av raden och välj Redigera.
  2. Ändra partionsinformationen efter önskemål och klicka på OK för att spara ändringarna.

Ta bort en partition:

  1. Klicka på menyn i slutet av raden och välj Ta bort.
  2. 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.

Anteckning om informationVarje segment läses in med hjälp av en särskild deluppgift, så om du t.ex. väljer alternativet Använd alla huvudpartitioner och källdatauppsättningen har 20 huvudpartitioner, så kommer 15 segment (partitioner) att läsas in parallellt om du ökar värdet Max antal tabeller som kan läsas in parallellt till 15. När deluppgifterna har körts kommer de att tilldelas inläsning av de återstående 5 partitionerna.

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!