Есть ли альтернатива массовой вставке (не to_sql), которая позволит мне быстро загружать DataFrame pandas в SQL Server? - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь добавить данные из фрейма данных pandas в существующую таблицу на сервере SQL, используя SQLAlchemy, а to_sql мучительно медленно, поэтому я ищу эффективное масштабируемое решение для ускорения этого процесса.Я видел несколько предложенных решений, хотя многие из них рекомендуют использовать массовую вставку, что возможно, но кадр данных не может храниться локально.Я пробовал другие решения, такие как fast_executemany безрезультатно.Любая помощь приветствуется.

def uploadToSQL(df, tablename, user, if_exists_behavior = 'append'):

try: 
    ## Create connection to SQL
    engine = sqla.create_engine(user)
    print("establishing connection")
    conn = engine.connect()
    print("connection established")

    df.to_sql(tablename, engine, if_exists=if_exists_behavior, 
    index=False, chunksize = 49)
    print("table uploaded")

    ## close SQL connection
    conn.close()
    print("connection closed")

    ## since no failure return nothing
    return None

Эта функция выполняет свою работу, но занимает много времени для кадра данных 16 000 x 6.

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