Postgresql
將 CSV 文件導入 PostgreSQL 表
我正在使用 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 多個小時。