2016-10-31 1 views
0

J'ai 4 millions d'enregistrements qui ont besoin de la charge quotidienne de données de la source à la cible et nous faisons tronquer tous les jours. Cela prend environ 9 heures car il y a 10 tables qui chargent 4 millions de données chaque jour. Pourriez-vous s'il vous plaît me dire comment améliorer la performance. MerciJe veux améliorer pentaho performace pour le chargement de données

+0

Qu'est-ce que SGBDR utilisez-vous? – Nikhil

+0

Ma source est Oracle et la destination est MySQL –

+0

Je connais cette solution et a déjà mis en œuvre mais pas d'utilisation et j'ai même augmenté le nombre de copies à 4. –

Répondre

0

Vous avez deux options:

  1. Utilisez le MON gros SQL étape de chargement disponible en IPD. Cela va certainement accélérer le chargement des données.
  2. La vitesse peut être augmentée en utilisant un simple paramètre de connexion JDBC.

    useServerPrepStmts=false 
    rewriteBatchedStatements=true 
    useCompression=true 
    

Ces options doivent être insérées dans IPD à la connexion. Double-cliquez sur la connexion allez à Options et définissez ces valeurs.

Utilisées ensemble, useServerPrepStmts=false et rewriteBatchedStatements=true vont "fausser" les insertions par lots sur le client. Plus précisément, les instructions d'insertion:

INSERT INTO t (c1,c2) VALUES ('One',1); 
INSERT INTO t (c1,c2) VALUES ('Two',2); 
INSERT INTO t (c1,c2) VALUES ('Three',3); 

seront réécrites dans:

`INSERT INTO t (c1,c2) VALUES ('One',1),('Two',2),('Three',3`); 

La troisième option useCompression=true comprime le trafic entre le client et le serveur MySQL.

Enfin, vous pouvez augmenter le nombre de copies de l'étape de sortie à 2 afin qu'il y ait deux unités d'insertion dans la base de données.

J'espère que ça aide!

Référence (option 2): https://anonymousbi.wordpress.com