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
A voir également:
- Optimiser lecture base de données (millions de lignes)
- Fuite données maif - Guide
- Optimiser son pc - Accueil - Utilitaires
- Base de registre - Guide
- Partage de photos en ligne - Guide
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
dans quoi dois-tu importer?
peux-tu montrer un code complet?
dans quoi dois-tu importer?
peux-tu montrer un code complet?
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.
Le code se résume à ça seulement (juste avant je me connecte au serveur SQL avec la variable sql_conn)
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 ?
pourquoi penses-tu qu'il est plus efficace de tout importer avent de commencer à exporter?