PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

SQLAlchemy, Psycopg2 और Postgresql COPY

स्वीकृत उत्तर सही है, लेकिन यदि आप चाहते हैं कि निम्नलिखित पर जाने के लिए केवल EoghanM की टिप्पणी से अधिक मेरे लिए 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 आवश्यक नहीं है, लेकिन यदि आप इंजन और सत्र को एक ही समय में raw_connection का उपयोग करने के लिए बनाने की आदत में हैं आपको उन्हें अलग करने की आवश्यकता होगी (जब तक कि सत्र ऑब्जेक्ट के माध्यम से इंजन तक पहुंचने का कोई तरीका न हो जो मुझे नहीं पता)। copy_expert . को प्रदान किया गया sql स्ट्रिंग इसका एकमात्र तरीका भी नहीं है, एक बुनियादी copy_to . है फ़ंक्शन जिसे आप उन पैरामीटरों के सबसेट के साथ उपयोग कर सकते हैं जिन्हें आप सामान्य COPY . पर चिपका सकते हैं पूछताछ करने के लिए। ~20000 पंक्तियों की एक तालिका की नकल करते हुए, कमांड का समग्र प्रदर्शन मेरे लिए तेज़ लगता है।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql संग्रहीत प्रक्रियाओं को कैसे डिबग करें?

  2. कैसे Statement_timestamp () PostgreSQL में काम करता है

  3. एक सम्मिलित तालिका में एक कॉलम द्वारा धीमी क्वेरी ऑर्डरिंग

  4. तालिका विदेशी कुंजियों को कैसे सूचीबद्ध करें

  5. पोस्टग्रेएसक्यूएल आईएफ स्टेटमेंट