sql >> Databasteknik >  >> RDS >> PostgreSQL

SQLAlchemy, Psychopg2 och Postgresql COPY

accepterat svar är korrekt men om du vill att mer än bara EoghanM:s kommentar ska gå vidare så fungerade följande för mig när jag kopierade en tabell till CSV...

from sqlalchemy import sessionmaker, create_engine

eng = create_engine("postgresql://user:[email protected]:5432/db")
ses = sessionmaker(bind=engine)

dbcopy_f = open('/tmp/some_table_copy.csv','wb')

copy_sql = 'COPY some_table TO STDOUT WITH CSV HEADER'

fake_conn = eng.raw_connection()
fake_cur = fake_conn.cursor()
fake_cur.copy_expert(copy_sql, dbcopy_f)

sessionmaker är inte nödvändigt men om du har för vana att skapa motorn och sessionen samtidigt för att använda raw_connection du behöver separera dem (såvida det inte finns något sätt att komma åt motorn via sessionsobjektet som jag inte känner till). SQL-strängen som tillhandahålls till copy_expert är inte heller det enda sättet till det, det finns en grundläggande copy_to funktion som du kan använda med en delmängd av parametrarna som du kan klistra in till en normal COPY ATT fråga. Övergripande prestanda för kommandot verkar snabb för mig, kopiering ut en tabell med ~20000 rader.

http://initd.org/psycopg/docs/cursor.html#cursor.copy_tohttp://docs.sqlalchemy.org/en/latest/core/connections.html#sqlalchemy.engine.Engine.raw_connection



  1. Oracle Database TLS1.2 / SSL-anslutning med JDBC thin och JKS

  2. Hur ändrar jag standardschemat i sql-utvecklare?

  3. PCI-kompatibilitet för MySQL &MariaDB med ClusterControl

  4. Lär känna din SQL Server-arbetsbelastning