Optimiser lecture base de données (millions de lignes)
Résolu
Bonjour,
Je dois importer 3 fichiers depuis une base de données.
Le premier (95000 lignes) ne pose aucun probleme
Par contre les deux autres font 75 millions de lignes pour respectivement 3 et 4 colonnes et j'ai une erreur de mémoire lorsque je compile.
J'utilise la technique chunksize pour importer par paquet mais cela ne suffit pas ...
voici à quoi ressemble mon code :
Du coup les deux font 75 millions de lignes et impossible d'importer les données sur python (j'utilise PyCharm)
(sachant également que j'ai 8Go de RAM)
Je dois importer 3 fichiers depuis une base de données.
Le premier (95000 lignes) ne pose aucun probleme
Par contre les deux autres font 75 millions de lignes pour respectivement 3 et 4 colonnes et j'ai une erreur de mémoire lorsque je compile.
J'utilise la technique chunksize pour importer par paquet mais cela ne suffit pas ...
voici à quoi ressemble mon code :
query2 = "SELECT [col1], [col2], [col3], [col4] FROM DATA1;" df1 = pd.read_sql(query2, sql_conn, chunksize=100000) dft = pd.concat(df1) query3 = "SELECT [col1], [col2], [col3] FROM DATA2;" df2 = pd.read_sql(query3, sql_conn, chunksize=100000) dfm = pd.concat(df2)
Du coup les deux font 75 millions de lignes et impossible d'importer les données sur python (j'utilise PyCharm)
(sachant également que j'ai 8Go de RAM)
Configuration: Windows / Firefox 87.0
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
dans quoi dois-tu importer?
peux-tu montrer un code complet?-
je ne vois pas bien d'où te viens l'idée d'importer par paquets et d'ensuite rassembler tous les paquets avant d'exporter.
ne te semble-t-il pas plus utile d'exporter les paquets au fur et à mesure?
n'hésite pas, par ailleurs, à nous préciser à quelle ligne tu as une erreur de mémoire. si tu ne peux pas le déterminer, ajoute des instructions print() pour déterminer ce que fait ton programme. -
-
J'importe par paquet parce que j'ai pas assez de mémoire vive, de base j'importais respectivement 2 et 3 colonnes pour les 2 gros jeux de données et ça marchait avec chunksize mais pas sans.
Sauf que hier j'ai ajouté 1 colonne à importer dans chaque jeu de données (donc je passe à 3 et 4 colonnes) et ça plante...
Du coup tu me conseilles d'exporter au fur et à mesure les paquets ? -
-
-