Делать массовую копию списка словарей в postgres, используя sqlalchemy - PullRequest
0 голосов
/ 19 октября 2018

У меня есть список словарей list_dict, как показано ниже:

[{u'default_bhp': False, u'price_period': u'Monthly'},{u'default_bhp': False, u'price_period': u'Yearly'}]

В данный момент я вставляю это в свою базу данных, используя:

conn = engine.connect()
conn.execute(ModelClass.__table__.insert(), list_dict)

Я просто хотелчтобы проверить, есть ли более быстрый способ вставки данных в базу данных, потому что у меня огромный объем данных.

Можем ли мы использовать массив copy или что-то здесь?

Какиспользовать use_batch_mode функциональность ??Примерно так:

 engine = create_engine('postgresql+psycopg2://postgres:postgres@localhost/test_db', use_batch_mode=True)
conn = engine.connect()
    conn.execute_batch(ModelClass.__table__.insert(), list_dict)

1 Ответ

0 голосов
/ 19 октября 2018

Рассмотрите возможность использования bulk_insert_mappings (если вы еще не знаете об этом), это, вероятно, наиболее близко к тому, чего вы хотите достичь.

Но если у вас действительно есть много данных, нетерпеливое распаковывание в список диктов может быть не лучшим способом, поэтому вам может понадобиться управление группировкой / чанком поверх Навального_сервера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...