Python 使用 SQLAlchemy 连接到 AWS Aurora Serverless MySQL
Python Connect to AWS Aurora Serverless MySQL Using SQLAlchemy
有没有办法在没有 Secrets Manager ARN 的情况下将我与 SQLAlchemy 的连接指定到 AWS RDS Aurora Serverless MySQL 数据库实例?我有数据库用户名、密码、端点、ARN 等,理想情况下我会初始化引擎,然后使用 df.to_sql()
将 DataFrame 加载到 Aurora 实例上的 table 中。
...
else:
engine = create_engine([WHAT DO I SPECIFY HERE?])
with engine.connect() as conn:
df.to_sql([CODE TO APPEND TO EXISTING TABLE HERE])...
来自 Alchemy 文档 - https://docs.sqlalchemy.org/en/13/dialects/mysql.html,这是连接字符串的样子 - create_engine 中的参数 - MySQL
mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
我不知道你是否可以在没有秘密 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())
有没有办法在没有 Secrets Manager ARN 的情况下将我与 SQLAlchemy 的连接指定到 AWS RDS Aurora Serverless MySQL 数据库实例?我有数据库用户名、密码、端点、ARN 等,理想情况下我会初始化引擎,然后使用 df.to_sql()
将 DataFrame 加载到 Aurora 实例上的 table 中。
...
else:
engine = create_engine([WHAT DO I SPECIFY HERE?])
with engine.connect() as conn:
df.to_sql([CODE TO APPEND TO EXISTING TABLE HERE])...
来自 Alchemy 文档 - https://docs.sqlalchemy.org/en/13/dialects/mysql.html,这是连接字符串的样子 - create_engine 中的参数 - MySQL
mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
我不知道你是否可以在没有秘密 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())