sql >> Database >  >> RDS >> PostgreSQL

SQLAlchemy Core bulk invoegen traag

Ik baalde toen ik zag dat dit geen antwoord had... Ik kwam onlangs exact hetzelfde probleem tegen:ik probeerde ongeveer miljoenen rijen in bulk in te voegen in een Postgres RDS-instantie met behulp van CORE. Het duurde uren .

Als tijdelijke oplossing heb ik uiteindelijk mijn eigen bulk-insert-script geschreven dat de onbewerkte sql zelf genereerde:

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))
)

Hoewel lelijk, gaf dit me de prestaties die we nodig hadden (~500.000 rijen/minuut)

Heb je een op CORE gebaseerde oplossing gevonden? Zo niet, hoop dat dit helpt!

UPDATE:Uiteindelijk heb ik mijn oude script verplaatst naar een reserve EC2-instantie die we niet gebruikten, waardoor het probleem met de trage prestaties daadwerkelijk werd opgelost. Ik weet niet zeker wat je opstelling is, maar blijkbaar is er een netwerkoverhead bij het communiceren met RDS vanaf een externe (niet-AWS) verbinding.



  1. Mysql werkt een rij bij met een andere rijwaarde in dezelfde tabel

  2. PLS-00201 - identifier moet worden gedeclareerd

  3. Hoe de Oracle-opgeslagen procedure aan te roepen in Codeigniter

  4. CTE-recursie om boomhiërarchie te krijgen