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

时间:2014-07-22 03:23:55

标签: json mongodb amazon-redshift

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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