6

有没有办法指定我与 SQLAlchemy 的连接到没有 Secrets Manager ARN 的 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])...
4

2 回答 2

3

我不知道你是否可以在没有秘密 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())
于 2019-11-20T19:54:58.077 回答
3

从 Alchemy 文档 - https://docs.sqlalchemy.org/en/13/dialects/mysql.html,这就是 MySQL 的连接字符串应该是什么样的 - create_engine 中的参数

mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
于 2019-10-21T01:20:04.750 回答