将CSV从S3加载到AWS RDS Aurora MySQL Serverless
环顾四周之后,我发现了一些关于将CSV从S3读入AWS Aurora MySQL数据库表的文档,但这似乎不适用于无服务器实例。有人知道怎么做吗 这大致是处理非无服务器实例的方式:将CSV从S3加载到AWS RDS Aurora MySQL Serverless,csv,amazon-s3,aws-lambda,aws-aurora-serverless,Csv,Amazon S3,Aws Lambda,Aws Aurora Serverless,环顾四周之后,我发现了一些关于将CSV从S3读入AWS Aurora MySQL数据库表的文档,但这似乎不适用于无服务器实例。有人知道怎么做吗 这大致是处理非无服务器实例的方式: with conn.cursor() as cur: query = """ LOAD DATA FROM S3 'filepath' INTO TABLE table F
with conn.cursor() as cur:
query = """
LOAD DATA FROM S3 'filepath'
INTO TABLE table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
"""
cur.execute(query)
conn.commit()
在无服务器上下文中,这会产生以下错误:
拒绝访问;此操作需要(至少一个)来自S3的加载权限
此错误的所有解决方案都基于非无服务器实例,因此无法在我的用例中复制。
从S3加载在Aurora serverless中不受支持。您现在需要通过SQL层来传输数据。如果这是一次性导入,那么创建一个Aurora配置的集群,从S3加载数据并将备份还原到一个无服务器集群中
在无服务器的aurora中应该可以,只是权限设置不正确。你能在经典Aurora实例中执行此操作吗?是的,在经典Aurora实例中可以执行此操作——在线文档表明在无服务器环境下不可能执行此操作,因此我希望有一种替代方法来加载CSV数据。虽然MySQL无服务器版本无法执行此操作,但PostgreSQL版本也可以执行此操作。您可以使用aws_s3扩展、aws_s3.table_import_from_s3函数和credentials参数(不是IAM角色-无法将该角色分配给无服务器版本的Aurora)来完成此操作。