我们在cloudant中创建了一个包含源数据库的仓库, 我们最近在大约40,000条记录上运行了模式发现过程。我们的cloudant数据库包含大约2百万条记录。 现在我们面临的问题是我们在DashDB中的_OVERFLOW表中有很多记录(意味着它们已被拒绝),其错误如“[已发现的模式中不存在列。文档尚未导入。”]
在我看来,问题是cloudant数据库实际上是dbcopy的结果,包含文档中的部分内容,而这些部分内容是由cloudant在内部创建的,只有在创建了部分内容后才能判断为“40000000-5fffffff” “在dd中没有被模式发现过程发现,现在所有具有未发现部分的文档都被cloudant-dashdb同步拒绝。
有没有人知道如何解决它..
答案 0 :(得分:0)
解决此问题的最佳方法是使用一个简单的技巧:将模式发现算法提供给您想要在dashDB目标中创建的结构的一个文档。
如果您可以提前构建这样的“模板”文档,请让算法发现一个并将其加载到dashDB中。通过从Cloudant到dashDB的连续复制,您可以让dbcopy将实际文档加载到作为cloudant-dashdb同步源的数据库中。
答案 1 :(得分:0)
我们最近在大约40,000条记录上运行了模式发现过程。 我们的数据库包含大约2百万条记录
所有这两百万人共享相同的架构吗?我不相信。
" [列在发现的架构中不存在。文件尚未导入。]"
这意味着在您最初的40&000; 000记录中,扫描应用程序找不到包含该字段的任何文档。
让我们说您的Cloudant数据库中的文档序列是:
您的发现过程只检查了40&000; 000。它永远不会出现模式B和C.
我建议重新运行发现过程并处理所有2百万条记录。这需要时间,但会保证发现所有字段。