使用Python将表加载到AWS RDS Postgres需要花费很多时间

时间:2019-04-08 01:24:34

标签: python python-3.x pandas

我正在从url读取数据并将其加载到AWS RDS Postgres。我正在使用免费套餐。数据大约有150万条记录,当我将其加载到本地Postgres时,它只花费了不到10分钟的时间,但是当加载到AWS Postgres中时,仅一个查询就需要花费永久时间(超过15小时)。我该如何提高性能或加快代码速度,以下是我正在使用的方法,请向我建议一些好的方法:

import pandas as pd
from sqlalchemy import create_engine
import zipfile
import os
from urllib.request import urlopen 
import urllib.request
import io
from io import BytesIO, StringIO



 pg_engine=create_engine('postgresql://user:password@host.amazonaws.com:5432/database')

 zf1 = zipfile.ZipFile(BytesIO(urllib.request.urlopen('http://wireless.fcc.gov/uls/data/complete/l_market.zip').read()))


df6_mk = pd.read_csv(zf1.open('MC.dat'),header=None,delimiter='|', index_col=0, names=['record_type', 'unique_system_identifier', 'uls_file_number','ebf_number','call_sign',
                        'undefined_partitioned_area_id','partition_sequence_number','partition_lat_degrees','partition_lat_minutes',
                        'partition_lat_seconds','partition_lat_direction','partition_long_degrees','partition_long_minutes','partition_long_seconds',
                        'partition_long_direction','undefined_partitioned_area'])

df6_mk.to_sql('mc_mk',pg_engine,if_exists='replace')

1 个答案:

答案 0 :(得分:1)

我相信免费RDS选项限于R / W容量5 /秒,这会限制您的速度。