首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB到AWS红移

问MongoDB到AWS红移
EN

Stack Overflow用户
提问于 2014-10-24 10:43:07
回答 4查看 1.9K关注 0票数 6

我们有一个很大的MongoDB实例,其中包含了切分的集合。它已经达到了依赖MongoDB查询功能(包括聚合框架)来洞察数据的成本越来越高的地步。

我四处寻找使数据可用和更容易使用的选项,并确定了两个有希望的选项:

  1. AWS红移
  2. Hadoop +蜂巢

我们希望能够使用类似SQL的语法来分析我们的数据,并且我们希望接近对数据的实时访问(几分钟的延迟很好,我们只是不想等待整个MongoDB在一夜之间同步)。

据我所知,对于选项2,可以使用这个https://github.com/mongodb/mongo-hadoop将数据从MongoDB转移到Hadoop集群。

我看上去非常低,但我很难找到一个类似的解决方案,让MongoDB进入AWS。从亚马逊的文章来看,正确的方法似乎是使用AWS Kinesis将数据输入Redshift。尽管如此,我找不到类似的例子,我也找不到任何库或连接器将数据从MongoDB转移到Kinase流中。至少没什么看上去有希望的。

有人做过这样的事吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-10-06 10:15:29

最后,我使用NodeJS编写了自己的移动程序代码。我对解释redshift和MongoDB是什么的答案有点恼火,所以我决定花时间来分享我最后要做的事情。

时间戳数据

基本上,我们确保要迁移到红移中的表的所有MongoDB集合都有时间戳,并根据该时间戳进行索引。

插件返回游标

然后,我们为从mongo集合到红移表的每个迁移编写一个插件。每个插件都返回一个游标,游标考虑到上次迁移的日期(从migrator引擎传递给它),并且只返回自上次成功迁移该插件以来更改的数据。

如何使用游标,

然后,migrator引擎使用此游标,并遍历每个记录。它为每个记录调用插件,将文档转换为数组,然后migrator使用该数组创建一个分隔行,并将其流到磁盘上的文件中。我们使用制表符来分隔这个文件,因为我们的数据包含很多逗号和管道。

分隔从S3导出到红移上的表

然后,migrator将分隔的文件上载到S3上,并运行redshift copy命令将文件从S3加载到临时表中,使用插件配置获取名称,并按照约定将其表示为临时表。

例如,如果我的插件配置了一个表名为employees的插件,它将创建一个名为temp_employees的临时表。

现在,我们在这个临时表中得到了数据。这个临时表中的记录从原始的MongoDB集合中获取它们的in。这允许我们对目标表运行delete,在我们的示例中是employees表,其中id存在于temp表中。如果其中任何一个表不存在,则根据插件提供的模式动态创建该表。因此,我们可以将临时表中的所有记录插入目标表中。这既适用于新记录,也适用于更新记录。我们只对数据进行软删除,因此它将使用红移中的is_deleted标志进行更新。

完成整个过程后,migrator引擎将插件的时间戳存储在红移表中,以便跟踪迁移最后一次成功运行的时间。然后,当引擎决定迁移数据时,这个值将传递给插件,从而允许插件使用它需要提供给引擎的游标中的时间戳。

因此,总之,每个插件/迁移都为引擎提供了以下内容:

  • 游标,它可以选择使用从引擎传递给它的最后一个迁移日期,以确保只有三角洲被移动。
  • 转换函数,引擎用于将光标中的每个文档转换为分隔字符串,该字符串被附加到导出文件中。
  • 是一个模式文件,它是一个SQL文件,它包含红移处表的架构。
票数 5
EN

Stack Overflow用户

发布于 2015-01-03 11:50:24

Redshift是一种数据仓库产品,Mongo是一个NoSQL DB。显然,它们并不是彼此的替代品,它们可以共存,并为不同的目的服务.现在,如何在两个地方保存和更新记录。您可以将所有Mongo数据作为一次活动移动到Redshift。红移并不适合实时写入。对于接近实时同步到Redshift,您应该修改程序写到Mongo。让该程序也写入到S3位置。S3定位到红移运动可以在一定的间隔内进行。

票数 2
EN

Stack Overflow用户

发布于 2015-09-25 07:43:49

Mongo是一个文档存储引擎,Apache、弹性搜索可以被认为是可能的替代。但它们不支持SQL类型查询capabilities.They,基本上使用了不同的过滤机制。例如,对于Solr,您可能需要使用Dismax过滤器。

在云上,亚马逊的云搜索/Azure搜索也将是引人注目的尝试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26546364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档