导出JSON数据并加载到关系数据库中

最后发布: 2014-07-22 03:23:55


问题

有没有一种标准的方法将JSON数据转换为具有多个表的关系数据库? 我们需要从MongoDB实例导出数据并将它们导入Redshift集群。 唯一的问题是一些MongoDB字段包含对象和数组。 Redshift群集接受CSV,因此我认为每个新表的输出至少为一个CSV文件。

我不需要具体实施。 我只是想知道如何有效地将JSON / NoSQL数据转换为关系格式的概念。

json mongodb amazon-redshift
回答

我们有用于存储JSON数据的mongo DB。 我们希望将数据迁移到Redshift以进行某些查询。

我们使用mongoexport csv从mongo表创建csv并将其上传到S3。 我们在Redshift中创建了相应的关系模式,并使用复制命令将这些csv数据从s3加载到redshift。

我们可以使用java apis来查询mongo并创建csv并将其上传到s3。 同样可以加载到红移。

真正的问题是因为我们使用mongo(json)或NoSQL,我们可能有不同数量的列属于同一个表(就像我们JSON一样),但在Redshift中我们每个表都有固定的列数所以在这种情况下你需要创建所有可能的列并加载数据。 对于那些没有所有列的对象,我们可以为它们填充空值。