J'ai été déçu quand j'ai vu que cela n'avait pas de réponse... J'ai rencontré exactement le même problème l'autre jour :Essayer d'insérer en bloc environ des millions de lignes dans une instance RDS Postgres en utilisant CORE. Cela prenait heures .
Pour contourner le problème, j'ai fini par écrire mon propre script d'insertion en bloc qui a généré le sql brut lui-même :
bulk_insert_str = []
for entry in entry_list:
val_str = "('{}', '{}', ...)".format(entry["column1"], entry["column2"], ...)
bulk_insert_str.append(val_str)
engine.execute(
"""
INSERT INTO my_table (column1, column2 ...)
VALUES {}
""".format(",".join(bulk_insert_str))
)
Bien que moche, cela m'a donné les performances dont nous avions besoin (~ 500 000 lignes/minute)
Avez-vous trouvé une solution basée sur CORE ? Sinon, j'espère que cela vous aidera !
MISE À JOUR :J'ai fini par déplacer mon ancien script dans une instance EC2 de rechange que nous n'utilisions pas, ce qui a en fait résolu le problème de ralentissement des performances. Vous ne savez pas quelle est votre configuration, mais apparemment, il y a une surcharge réseau lors de la communication avec RDS à partir d'une connexion externe (non AWS).