使用SQLAlchemy将Python连接到AWS Aurora无服务器MySQL

时间:2019-10-17 22:07:10

标签: python sqlalchemy aws-secrets-manager pandas-to-sql aws-aurora-serverless

是否可以在没有Secrets Manager ARN的情况下指定我与SQLAlchemy到AWS RDS Aurora Serverless MySQL数据库实例的连接?我有数据库用户名,密码,终结点,ARN等,理想情况下,我将初始化一个引擎,然后使用df.to_sql()将DataFrame加载到Aurora实例上的表中。

...
else:
   engine = create_engine([WHAT DO I SPECIFY HERE?])
   with engine.connect() as conn:
      df.to_sql([CODE TO APPEND TO EXISTING TABLE HERE])...

2 个答案:

答案 0 :(得分:1)

根据Alchemy文档-https://docs.sqlalchemy.org/en/13/dialects/mysql.html,这就是连接字符串的样子-create_engine中的参数-对于MySQL

mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]

答案 1 :(得分:1)

我不知道您是否可以在没有秘密ARN的情况下连接到Aurora,但是如果您愿意使用它,可以安装这样的驱动程序:https://github.com/koxudaxi/py-data-api

这将允许您执行以下操作:

def example_driver_for_sqlalchemy():
    from sqlalchemy.engine import create_engine
    engine = create_engine(
        'mysql+pydataapi://',
        connect_args={
            'resource_arn': 'arn:aws:rds:us-east-1:123456789012:cluster:dummy',
            'secret_arn': 'arn:aws:secretsmanager:us-east-1:123456789012:secret:dummy',
            'database': 'test'
        }
    )
    result: ResultProxy = engine.execute("select * from pets")
    print(result.fetchall())