Byl jsem naštvaný, když jsem viděl, že to nemá odpověď... Onehdy jsem narazil na úplně stejný problém:Pokusil jsem se hromadně vložit asi miliony řádků do instance Postgres RDS pomocí CORE. Trvalo to hodiny .
Jako řešení jsem nakonec napsal svůj vlastní skript hromadného vložení, který vygeneroval samotný nezpracovaný 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))
)
I když to bylo ošklivé, poskytlo mi to výkon, který jsme potřebovali (~500 000 řádků/minutu)
Našli jste řešení založené na CORE? Pokud ne, doufáme, že to pomůže!
AKTUALIZACE:Nakonec jsem přesunul svůj starý skript do náhradní instance EC2, kterou jsme nepoužívali, což ve skutečnosti vyřešilo problém s pomalým výkonem. Nejste si jisti, jaké je vaše nastavení, ale zjevně existuje síťová režie při komunikaci s RDS z externího připojení (bez AWS).