Byłem zdumiony, gdy zobaczyłem, że nie ma odpowiedzi... Niedawno natknąłem się na dokładnie ten sam problem:próba zbiorczego wstawienia około milionów wierszy do wystąpienia Postgres RDS za pomocą CORE. Zajęło to godziny .
Jako obejście, napisałem własny skrypt do zbiorczego wstawiania, który generował sam surowy sql:
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))
)
Choć brzydkie, dało mi to wydajność, której potrzebowaliśmy (~500 000 wierszy na minutę)
Czy znalazłeś rozwiązanie oparte na CORE? Jeśli nie, miej nadzieję, że to pomoże!
AKTUALIZACJA:Skończyło się na przeniesieniu mojego starego skryptu do wolnej instancji EC2, której nie używaliśmy, co faktycznie naprawiło problem z niską wydajnością. Nie masz pewności, jaka jest twoja konfiguracja, ale najwyraźniej istnieje obciążenie sieci podczas komunikacji z RDS z połączenia zewnętrznego (nie AWS).