Postgresql

將 CSV 文件導入 PostgreSQL 表

  • February 26, 2020

我正在使用 Python 和 pandas 將 CSV 文件導入 Postgres 中的表

import pandas as pd
import psycopg2
from sqlalchemy import create_engine

df = pd.read_csv('products.csv', sep=';', low_memory=False)
engine = create_engine('postgresql://myuser:mypass@server/postgres')
df.to_sql('new_table', con=engine, if_exists='append', index=False, chunksize=20000)

.csv 文件大小約為 10GB。我讓腳本執行了 15 個小時,但離完成還差得很遠。我可以使用什麼更好的方法將數據庫推送到伺服器?

我無法直接從伺服器導入數據庫,因為壓縮文件大小大於允許的大小。

psql正如@a_horse_with_no_name 所建議的那樣,我曾經將 CSV 文件推送到表格中。

psql -h port -d db -U user -c "\copy products from 'products.csv' with delimiter as ',' csv header;"

複製表格只需要幾分鐘,而使用 python 腳本需要 10 多個小時。

引用自:https://dba.stackexchange.com/questions/242978