cloudant dashdb同步问题

时间:2016-10-17 14:19:41

标签: cloudant dashdb

我们在cloudant中创建了一个包含源数据库的仓库, 我们最近在大约40,000条记录上运行了模式发现过程。我们的cloudant数据库包含大约2百万条记录。 现在我们面临的问题是我们在DashDB中的_OVERFLOW表中有很多记录(意味着它们已被拒绝),其错误如“[已发现的模式中不存在列。文档尚未导入。”]

在我看来,问题是cloudant数据库实际上是dbcopy的结果,包含文档中的部分内容,而这些部分内容是由cloudant在内部创建的,只有在创建了部分内容后才能判断为“40000000-5fffffff” “在dd中没有被模式发现过程发现,现在所有具有未发现部分的文档都被cloudant-dashdb同步拒绝。

有没有人知道如何解决它..

2 个答案:

答案 0 :(得分:0)

解决此问题的最佳方法是使用一个简单的技巧:将模式发现算法提供给您想要在dashDB目标中创建的结构的一个文档。

如果您可以提前构建这样的“模板”文档,请让算法发现一个并将其加载到dashDB中。通过从Cloudant到dashDB的连续复制,您可以让dbcopy将实际文档加载到作为cloudant-dashdb同步源的数据库中。

答案 1 :(得分:0)

  

我们最近在大约40,000条记录上运行了模式发现过程。   我们的数据库包含大约2百万条记录

所有这两百万人共享相同的架构吗?我不相信。

  

" [列在发现的架构中不存在。文件尚未导入。]"

这意味着在您最初的40&000; 000记录中,扫描应用程序找不到包含该字段的任何文档。

让我们说您的Cloudant数据库中的文档序列是:

  • 与模式A匹配的500&#39,000个文档
  • 与模式B匹配的800&#39,000个文档
  • 700'与模式C匹配的文档

您的发现过程只检查了40&000; 000。它永远不会出现模式B和C.

我建议重新运行发现过程并处理所有2百万条记录。这需要时间,但会保证发现所有字段。