首页 > 解决方案 > 使用 Python 将表加载到 AWS RDS Postgres 需要很长时间

问题描述

我正在从 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')

标签: pythonpython-3.xpandas

解决方案


我相信免费层 RDS 选项仅限于 5/秒的 R/W 容量,这会限制你。


推荐阅读