Python Подключение к AWS Aurora Serverless MySQL с помощью SQLAlchemy
Есть ли способ указать мое соединение с SQLAlchemy с экземпляром бессерверной базы данных MySQL AWS RDS Aurora без Secrets Manager ARN? У меня есть имя пользователя базы данных, пароль, конечная точка, 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 ответа
Решение
Из документации Alchemy - https://docs.sqlalchemy.org/en/13/dialects/mysql.html, вот как должна выглядеть строка подключения - параметр в create_engine - для MySQL
mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
Я не знаю, сможете ли вы подключиться к Aurora без секретного ARN, но если вы хотите его использовать, вы можете установить такой драйвер: 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())