将关系型数据库数据迁移至S3时,表间关联关系是否会保留?
AWS提供了多种方案支持将关系型数据库的DB快照迁移至S3。但S3属于对象存储,仅存储文件(例如parquet格式文件)。请问关系型数据库中表与表之间的关联关系(比如键约束)是否会同步迁移到S3?能否直接对S3中存储的文件执行查询,实现多表join操作?
键约束/表关联关系不会同步迁移到S3
- S3作为对象存储仅负责存储导出的表数据文件本身,原关系型数据库中的主键、外键约束、表关联逻辑等属于数据库引擎管理的Schema元数据,不会被写入S3的导出文件中,因此不存在同步迁移的情况。
可以实现S3文件的多表Join查询,但需要配套计算服务支撑
- S3本身没有SQL计算能力,不能直接对存储的文件执行查询操作,但可以对接AWS的各类计算服务实现多表关联查询。
- 常用的实现方式是通过Athena、Redshift Spectrum、EMR上的Spark/Presto等服务,提前在对应的元数据目录中定义好每个S3数据文件对应的表结构,之后直接编写包含多表Join逻辑的SQL语句,就可以直接读取S3中的文件完成关联计算,不需要提前把数据导入到专用数据库中。
内容的提问来源于stack exchange,提问作者Cybernetic
相关产品推荐
相关产品推荐

