【发布时间】:2020-06-30 15:15:21
【问题描述】:
我想将大约 200 万行从 csv 插入 postgersql。 有2种方式。
- 在 python 中使用数据框
- 或直接在 PostgreSQL 中使用 Import csv
python方式:
engine = create_engine("postgresql+psycopg2://postgres:passwd@127.0.0.1/postgres")
con = engine.connect()
df = pd.read_csv(r"C:\2million.csv",delimiter=',',names=['x','y'],skiprows=1)
df.to_sql(name='tablename',con=con,schema='timeseries',if_exists='append',index=False)
print("stored")
插入需要 800 秒。 在 PostgreSQL 中直接导入的方式只需要 10 秒。
我认为,对于插入 200 万行,timescaledb 的插入时间比 800 秒快得多。
或者我试图插入行的方式只是限制因素?
【问题讨论】:
-
方法不止两种。您可以在不使用数据框的情况下使用 python。例如,请参阅 copy_expert。
标签: python pandas postgresql csv insert