PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

psycopg2 COPY с помощта на cursor.copy_from() замръзва с големи входове

Това е само заобиколно решение, но можете просто да подадете нещо в psql. Използвам тази рецепта понякога, когато ме мързи да разбия psycopg2

import subprocess
def psql_copy_from(filename, tablename, columns = None):
    """Warning, this does not properly quote things"""
    coltxt = ' (%s)' % ', '.join(columns) if columns else ''
    with open(filename) as f:
        subprocess.check_call([
            'psql',
            '-c', 'COPY %s%s FROM STDIN' % (tablename, coltxt),
            '--set=ON_ERROR_STOP=true', # to be safe
            # add your connection args here
        ], stdin=f)

Що се отнася до вашето заключване, използвате ли множество нишки или нещо подобно?

Вашият postgres регистрира ли нещо като затворена връзка или блокиране? Можете ли да видите активността на диска, след като блокира?



  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 enum с JPA и Hibernate

  2. FULL OUTER JOIN за обединяване на таблици с PostgreSQL

  3. Мониторинг на PostgreSQL в хибридна среда

  4. Как да обходите йерархична дървовидна структура назад с помощта на рекурсивни заявки

  5. модели на миграция на производствени данни при непрекъсната доставка