Accéder au contenu principal Passer au contenu complémentaire

Chargement de segments de jeu de données en parallèle

Lors du chargement complet, vous pouvez accélérer le chargement de grands jeux de données en divisant le jeu de données en segments, qui seront chargés en parallèle. Les tables peuvent être divisées par plages de données, toutes les partitions, toutes les sous-partitions ou des partitions spécifiques.

Note InformationsSi vous utilisez Data Movement gateway, cette fonctionnalité est supportée à partir de la version 2024.5.35.

Chaque segment de jeu de données est chargé à l'aide d'une sous-tâche distincte. Par conséquent, lorsque vous décidez de la manière de diviser un jeu de données, vous devez toujours tenir compte de la disponibilité des ressources de base de données et réseau. La division d'une table en un trop grand nombre de segments peut avoir un impact sur les performances de la base de données et surcharger la capacité du réseau. Si vous choisissez la méthode de segmentation par Plages de données avec un jeu de données partitionné, la meilleure pratique consiste à configurer les plages de sorte que chaque plage couvre une ou plusieurs partitions complètes. Cela permettra d'accélérer la récupération des données et de minimiser l'impact sur les ressources de traitement de la base de données.

Sources et cibles de données supportées

La tâche de données doit être définie avec une combinaison des connecteurs de source et de cible de données suivants.

  • IBM DB2 pour LUW
  • IBM DB2 pour z/OS

    Note Informations

    La segmentation des tables par partitions ou sous-partitions n'est pas supportée avec le connecteur source IBM DB2 pour z/OS.

  • Microsoft SQL Server (basé sur le journal)
  • MySQL
  • Oracle
  • PostgreSQL

    Note Informations

    La segmentation des tables par partitions ou sous-partitions n'est pas supportée avec le connecteur source PostgreSQL.

  • SAP (Application)
    Note Informations

    Les tables avec le point de terminaison source SAP (Application) dépendent du client par défaut. La colonne MANDT est automatiquement reprise directement du connecteur.

  • SAP HANA (Database)
  • Amazon Redshift
  • Amazon S3
  • Google Cloud BigQuery
  • Google Cloud Storage
  • Microsoft Fabric Data Warehouse
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • Snowflake

Configuration d'un chargement parallèle

Vous pouvez diviser une table en utilisant l'une des deux méthodes suivantes : Plages de données ou Partitions. La méthode Plages de données divise la table par plages de données, tandis que la méthode Partitions divise la table en fonction de partitions.

Utilisation de la méthode par plages de données

Pour définir les limites de segment par plage de données :

  1. Dans l'onglet Jeux de données, cliquez sur le menu Icône Plus à droite du jeu de données et sélectionnez Paramètres.

    La boîte de dialogue Chargement parallèle s'ouvre.

  2. Sélectionnez la méthode de segmentation par Plages de données .

  3. Cliquez sur Sélectionner des colonnes.

    La boîte de dialogue Colonnes de segmentation de la table s'ouvre.

  4. Pour toutes les sources de données supportées, la colonne Index unique est automatiquement sélectionnée. Sélectionnez les colonnes supplémentaires contenant des données que vous souhaitez utiliser pour délimiter les plages, puis cliquez sur OK.

    Note Informations
    • Il est recommandé d'utiliser des colonnes qui n'autorisent pas les valeurs NULL et qui ne sont pas mises à jour lors des opérations normales de la base de données source (par exemple, une colonne de clé primaire ou une colonne de date avec une date fixe). L'utilisation d'une colonne mise à jour lors d'un chargement complet peut entraîner des doublons dans la base de données cible.

    • Il est recommandé d'utiliser des colonnes sources indexées afin d'optimiser les performances de récupération des données.

    • Il est possible de sélectionner jusqu'à dix colonnes.

    • Les enregistrements contenant des valeurs nulles ne seront pas répliqués.

    • Les types de données suivants ne peuvent pas être utilisés pour définir des segments par plages : DOUBLE, FLOAT et LOB (BLOB, CLOB, NCLOB).

  5. Cliquez sur Ajouter une plage de données pour ajouter un segment de plage de données.

    La boîte de dialogue Ajouter une plage de données s'ouvre avec les colonnes sélectionnées.

  6. Pour chaque colonne, saisissez la plage de données supérieure du segment.

    Note Informations

    Les valeurs des colonnes DATE doivent être saisies au format supporté par la source. Par exemple, pour une source Oracle, le format correct est le suivant :

    • ALTER SESSION SET NLS_DATE_FORMAT:

      'YYYY-MM-DD HH24:MI:SS' (la mention uniquement de YYYY-MM-DD est également valide)

    • 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. Cliquez sur OK pour enregistrer vos paramètres et fermer la boîte de dialogue.

    Chacune des colonnes sélectionnées apparaîtra avec sa plage spécifiée.

  8. Répétez les étapes 3 à 6, si nécessaire, pour ajouter des colonnes et des plages de données.
  9. Cliquez sur Valider pour valider le fait que les données que vous avez saisies correspondent au type de données de la colonne source et que tous les segments définis contiennent des valeurs.
Note Informations

Avec la méthode de segmentation par Plages de données, toutes les données de la table sont répliquées, même si des plages de données ne sont pas définies pour toutes les colonnes.

Pour modifier une plage de données :

  1. Cliquez sur le menu Icône Plus à la fin de la ligne et sélectionnez Modifier.
  2. Modifiez la plage de données selon les besoins et cliquez sur OK pour enregistrer vos modifications.

Pour supprimer une plage de données :

  1. Cliquez sur le menu Icône Plus à la fin de la ligne et sélectionnez Supprimer.
  2. À l'invite de confirmation de la suppression, cliquez sur Supprimer.

Exemple d'utilisation

Supposons que les segments suivants soient définis :

Exemple de données de table
Column_1 Column_2 Column_3

10

30

105

20

20

120

100

12

99

Dans ce cas, les clauses WHERE suivantes seront créées pour chaque segment de chargement :

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

Utilisation de la méthode par partitions

Vous pouvez définir des limites de segment en fonction de toutes les partitions de la table, de toutes les sous-partitions de la table (si la source de données supporte les sous-partitions) ou de partitions spécifiques.

Note Informations
  • Cette méthode ne peut être utilisée que si le jeu de données est déjà partitionné.
  • Si vous avez une tâche qui existait avant le lancement de cette fonctionnalité et si vous n'avez pas encore lancé la tâche ou si vous souhaitez charger en parallèle une ou plusieurs des tables à l'aide de cette méthode, vous devez commencer par actualiser les métadonnées, comme décrit à la section Enregistrement de données qui existent déjà sur la plateforme de données (le processus d'actualisation des métadonnées décrit dans cette rubrique est le même pour tous les types de tâche de données).

Utilisation de toutes les partitions

Pour définir les limites de segment en fonction de toutes les partitions ou sous-partitions de la table :

  1. Dans l'onglet Jeux de données, cliquez sur le menu Icône Plus à droite du jeu de données et sélectionnez Paramètres.

    La boîte de dialogue Chargement parallèle s'ouvre.

  2. Sélectionnez la méthode de segmentation par Partitions.

  3. Sélectionnez l'une des options suivantes :

    • Utiliser toutes les partitions principales

    • Utiliser toutes les sous-partitions

      Note Informations

      Cette option sera désactivée si la source de données ne supporte pas les sous-partitions.

  4. Cliquez sur OK.

Utilisation de partitions spécifiques

Pour définir des limites de segment en fonction de partitions spécifiques :

  1. Dans l'onglet Jeux de données, cliquez sur le menu Icône Plus à droite du jeu de données et sélectionnez Paramètres.

    La boîte de dialogue Chargement parallèle s'ouvre.

  2. Sélectionnez la méthode de segmentation par Partitions.

  3. Sélectionnez Spécifier les partitions.

    Note Informations

    Lorsque l'option Spécifier des partitions est sélectionnée, seules les partitions spécifiées sont répliquées.

  4. Cliquez sur Ajouter une partition.

    La boîte de dialogue Ajouter une partition s'ouvre.

  5. Indiquez le nom d'une partition ou d'une sous-partition existante.

    Si vous ajoutez une sous-partition, cochez la case Sous-partition .

  6. Cliquez sur OK pour enregistrer vos paramètres.
  7. Répétez les étapes 4 à 6, si nécessaire, pour ajouter des partitions ou des sous-partitions.

Pour modifier une partition :

  1. Cliquez sur le menu Icône Plus à la fin de la ligne et sélectionnez Modifier.
  2. Modifiez les informations de partition selon les besoins et cliquez sur OK pour enregistrer vos modifications.

Pour supprimer une partition :

  1. Cliquez sur le menu à la fin de la ligne et sélectionnez Supprimer.
  2. À l'invite de confirmation de la suppression, cliquez sur Supprimer.

Ajustement du nombre de segments pouvant être chargés en parallèle

Vous pouvez augmenter ou diminuer le nombre de segments qui seront chargés en parallèle. La valeur est héritée du champ Chargement complet > Adaptation des performances > Nombre maximal de tables à charger en parallèle des paramètres de la tâche de données. La valeur actuelle est affichée dans la chaîne Jusqu'à <n> segments peuvent être chargés en parallèle de la boîte de dialogue Chargement parallèle. L'augmentation du nombre peut améliorer les performances lorsqu'un jeu de données est divisé en un grand nombre de segments, mais elle sollicitera également davantage les ressources de base de données et la capacité réseau.

Note InformationsChaque segment est chargé à l'aide d'une sous-tâche dédiée. Par exemple, si vous sélectionnez l'option Utiliser toutes les partitions principales et si le jeu de données source comporte 20 partitions principales, l'augmentation de la valeur Nombre maximal de tables à charger en parallèle à 15 entraînera le chargement en parallèle de 15 segments (partitions). Lorsque l'exécution des sous-tâches se terminera, elles seront affectées au chargement des 5 partitions restantes.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !