【问题标题】:data hub hamonization schema not found未找到数据中心协调架构
【发布时间】:2019-01-11 16:13:22
【问题描述】:

使用 MarkLogic DHF,我试图从我的协调流程中调用一个 json 验证函数。除了验证函数没有找到架构外,其余的流程都运行良好。协调文件最终所在的 *-FINAL DB 关联了我的 *-SCHEMAS db,并且我的模式文件存储在该 *-SCHEMAS db 中的简单 URI 下。如何确定 DHF 协调流程在哪里寻找架构?

更新:通过反复试验,我确定在将我的 json 模式加载到我的服务器的基本“模式”数据库后,协调流程能够为 jsonValidate() 函数找到它。但我不明白为什么它在最终模式数据库中找不到它,这是构建加载模式的地方。

更新 2.0:使用下面的@grtjn 建议,我确定协调流的当前数据库不是最终数据库,而是暂存数据库。因此,当我在暂存模式数据库中手动加载模式时(具有适当的权限),流程会找到它。所以现在我只需要弄清楚如何让 gradle deploy 将架构放入暂存架构数据库而不是最终架构数据库。

【问题讨论】:

  • Schemas db 通常由内容数据库确定(它是其属性之一)。确认您的代码是否确实在针对预期的内容数据库(例如xdmp.log(xdmp.databaseName()))运行,然后验证该内容数据库是否已正确配置为使用您期望的模式数据库。

标签: json marklogic marklogic-dhf


【解决方案1】:

在 DHF 4.1.0 或更高版本中,您应该能够将架构放置在 ml-gradle 声明的位置中:https://github.com/marklogic-community/ml-gradle/wiki/Loading-schemas

在这种情况下,您可能希望将其放置在您的 staging schemas 数据库名称下的 ml-config/databases 目录中。

虽然将数据写入最终数据库确实具有一定的逻辑意义,但操作必须在读取暂存数据时进行。此外,您为最终数据库定义的架构(例如验证最终实体或 TDE 以将数据公开为行/列)可能希望与原始/暂存数据分开。

如果您认为我们需要更好的文档,或者您有其他建议以使其更易于使用,请在我们的 github (https://github.com/marklogic/marklogic-data-hub/issues) 上记录问题。

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2017-05-18
    相关资源
    最近更新 更多