Segmenten van gegevensverzamelingen parallel laden
Tijdens de volledige lading kunt u het laden van grote gegevensverzamelingen versnellen door de gegevensverzameling op te splitsen in segmenten, die parallel geladen worden. Tabellen kunnen worden gesplitst op gegevensbereik, alle partities, alle subpartities of specifieke partities.
Elk segment van de gegevensverzameling wordt geladen met een aparte subtaak. Daarom moet u bij het beslissen hoe u een gegevensverzameling opsplitst, altijd rekening houden met de beschikbaarheid van database- en netwerkbronnen. Het opsplitsen van een tabel in te veel segmenten kan de databaseprestaties beïnvloeden en de netwerkcapaciteit overbelasten. Als u de segmentatiemethode Gegevensbereiken kiest met een gepartitioneerde gegevensverzameling, is de beste werkwijze om de bereiken zo in te stellen dat elk bereik één of meer volledige partities omvat. Dit versnelt het ophalen van gegevens en minimaliseert de impact op de databaseverwerkingsbronnen.
Ondersteunde gegevensbronnen en doelen
De gegevenstaak moet worden gedefinieerd met een combinatie van de volgende connectoren voor gegevensbronnen en doelen.
Ondersteunde connectoren voor gegevensbronnen
- IBM DB2 for LUW
-
IBM DB2 for z/OS
InformatieTabelsegmentatie door partities of subpartities wordt niet ondersteund met de IBM DB2 for z/OS-bronconnector.
- Microsoft SQL Server (op basis van logboek)
- MySQL
- Oracle
-
PostgreSQL
InformatieTabelsegmentatie door partities of subpartities wordt niet ondersteund met de PostgreSQL-bronconnector.
- SAP (toepassing)Informatie
Tabellen met het SAP (Application) broneindpunt zijn standaard clientafhankelijk. De kolom MANDT wordt automatisch rechtstreeks uit de connector gehaald.
- SAP HANA (database)
Ondersteunde doelconnectoren
- Amazon Redshift
- Amazon S3
- Google Cloud BigQuery
- Google-cloudopslag
- Microsoft Fabric Data Warehouse
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- Snowflake
Parallel laden instellen
U kunt een tabel op twee manieren opsplitsen: Gegevensbereiken of Partities. De methode Gegevensbereik splitst de tabel op volgens gegevensbereiken, terwijl de methode Partities de tabel splitst op basis van partities.
De gegevensbereikmethode gebruiken
Segmentgrenzen definiëren per gegevensbereik:
-
Klik op het tabblad Gegevensverzamelingen op het menu
rechts van de gegevensverzameling en selecteer Instellingen.
Het dialoogvenster Parallel laden wordt geopend.
-
Selecteer de segmentatiemethode Gegevensbereiken.
-
Klik op Kolommen selecteren.
Het dialoogvenster Segmentatiekolommen tabel wordt geopend
-
Voor alle ondersteunde gegevensbronnen wordt de kolom Unieke index automatisch geselecteerd. Selecteer welke extra kolommen met gegevens u wilt gebruiken om de bereiken af te bakenen, en klik vervolgens op OK.
Informatie-
Het wordt aanbevolen om kolommen te gebruiken die geen NULL's toestaan en die niet worden bijgewerkt tijdens normale bewerkingen van de brondatabase (bijvoorbeeld een primaire sleutelkolom of een datumkolom met een vaste datum). Het gebruik van een kolom die tijdens volledige lading wordt bijgewerkt, kan duplicaten veroorzaken in de doeldatabase.
-
Het wordt aanbevolen om geïndexeerde bronkolommen te gebruiken, omdat dit de prestaties bij het ophalen van gegevens optimaliseert.
-
Er kunnen maximaal tien kolommen worden geselecteerd
-
Records met nullwaarden worden niet gerepliceerd
-
De volgende gegevenstypen kunnen niet worden gebruikt om segmenten met bereiken te definiëren: DUBBEL, FLOAT en LOB (BLOB, CLOB, NCLOB).
-
-
Klik op Gegevensbereik toevoegen om een gegevensbereiksegment toe te voegen.
Het dialoogvenster Gegevensbereik toevoegen wordt geopend met uw geselecteerde kolommen.
-
Voer voor elke kolom het bovenste gegevensbereik van het segment in.
InformatieDe waarden in de kolommen DATE moeten worden ingevoerd in het formaat dat door de bron wordt ondersteund. Voor een Oracle-bron zou de juiste indeling bijvoorbeeld zijn:
-
ALTER SESSION SET NLS_DATE_FORMAT:
'YYYY-MM-DD HH24:MI:SS' (alleen YYYY-MM-DD specificeren is ook geldig)
-
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'
-
-
Klik op OK om uw instellingen op te slaan en het dialoogvenster te sluiten.
Elk van de geselecteerde kolommen verschijnt met het opgegeven bereik.
- Herhaal stap 3-6 indien nodig om kolommen en gegevensbereiken toe te voegen.
- Klik op Valideren om te valideren dat de ingevoerde gegevens overeenkomen met het gegevenstype van de bronkolom en dat alle gedefinieerde segmenten waarden bevatten.
Met de segmentatiemethode Gegevensbereiken worden alle tabelgegevens gerepliceerd, zelfs als gegevensbereiken niet voor alle kolommen zijn gedefinieerd.
Om een gegevensbereik te bewerken:
- Klik op het menu
aan het einde van een rij en selecteer Bewerken.
- Bewerk het gegevensbereik naar wens en klik op OK om uw wijzigingen op te slaan.
Om een gegevensbereik te verwijderen:
- Klik op het menu
aan het einde van een rij en selecteer Verwijderen.
- Wanneer u wordt gevraagd om de actie te verwijderen, klikt u op Verwijderen.
Gebruiksvoorbeeld
Laten we aannemen dat de volgende segmenten gedefinieerd zijn:
Column_1 | Column_2 | Column_3 |
---|---|---|
10 |
30 |
105 |
20 |
20 |
120 |
100 |
12 |
99 |
In dit geval worden de volgende "WHERE"-clausules gemaakt voor elk laadsegment:
- 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)))
De partitiemethode gebruiken
U kunt segmentgrenzen definiëren voor alle partities van de tabel, alle subpartities van de tabel (als de gegevensbron subpartities ondersteunt) of voor specifieke partities.
- Deze methode kan alleen worden gebruikt als de gegevensverzameling al gepartitioneerd is.
- Als u een taak hebt die al bestond voordat deze functie werd uitgebracht, en u hebt de taak nog niet gestart of u wilt een of meer van de tabellen parallel opnieuw laden met deze methode, dan moet u eerst de metagegevens vernieuwen, zoals beschreven in Gegevens registreren die al op het gegevensplatform bestaan(Het proces voor het vernieuwen van metagegevens dat in dit onderwerp wordt beschreven, is hetzelfde voor alle soorten gegevenstaken).
Alle partities gebruiken
Segmentgrenzen definiëren door alle tabelsegmenten of subsegmenten:
-
Klik op het tabblad Gegevensverzamelingen op het menu
rechts van de gegevensverzameling en selecteer Instellingen.
Het dialoogvenster Parallel laden wordt geopend.
-
Selecteer de segmentatiemethode Partities.
-
Selecteer een van de volgende:
-
Alle hoofdpartities gebruiken
-
Alle subpartities gebruiken
InformatieDeze optie wordt uitgeschaeld als de gegevensbron geen ondersteuning voor subpartities biedt.
-
- Klik op OK.
Specifieke partities gebruiken
Segmentgrenzen definiëren met specifieke partities:
-
Klik op het tabblad Gegevensverzamelingen op het menu
rechts van de gegevensverzameling en selecteer Instellingen.
Het dialoogvenster Parallel laden wordt geopend.
-
Selecteer de segmentatiemethode Partities.
-
Selecteer Partities opgeven.
InformatieAls Partities opgeven is geselecteerd, worden alleen de opgegeven partities gerepliceerd.
-
Klik op Partitie toevoegen.
Het dialoogvenster Partitie toevoegen wordt geopend.
-
Geef de naam van een bestaande partitie of subpartitie op.
Als u een subpartitie toevoegt, schakelt u het selectievakje Subpartitie in.
- Klik op OK om uw instellingen op te slaan.
- Herhaal stap 4 t/m 6 indien nodig om partities of subpartities toe te voegen.
Een partitie bewerken:
- Klik op het menu
aan het einde van een rij en selecteer Bewerken.
- Bewerk de partitiegegevens naar wens en klik op OK om uw wijzigingen op te slaan.
Om een partitie te verwijderen:
- Klik op het menu
aan het einde van een rij en selecteer Verwijderen.
- Wanneer u wordt gevraagd om de actie te verwijderen, klikt u op Verwijderen.
Het aantal segmenten aanpassen dat parallel kan worden geladen
U kunt het aantal segmenten dat parallel wordt geladen verhogen of verlagen. De waarde wordt overgenomen van het veld Volledige lading > Prestaties afstemmen > Maximumaantal tabellen dat parallel wordt geladen in de gegevenstaakinstellingen. De huidige waarde wordt weergegeven in de tekenreeks "Er kunnen maximaal <n> segmenten parallel worden geladen" in het dialoogvenster Parallel laden. Het aantal verhogen kan de prestaties verbeteren wanneer een gegevensverzameling in veel segmenten wordt opgesplitst, maar zal ook een grotere druk leggen op databasebronnen en netwerkcapaciteit.