我什么时候应该使用 MarkLogic 9 的 Optic API?

问题描述 投票:0回答:1

Optic API 的用途与 xdmp:sql 有一些重叠。对于何时应该使用 Optic 和 SQL,是否有任何指导原则?

marklogic marklogic-optic-api
1个回答
4
投票

Optic 为作为 SQL 和 SPARQL 以及 Optic 基础的 MarkLogic 引擎的功能提供了惯用的语言集成接口。 (Optic 不会生成 SQL 或 SPARQL。)

MarkLogic 惯用操作的示例包括

  • 加入文件
  • 聚合序列
  • 在使用 MarkLogic 内置函数(例如
    fn.reverse()
  • )的列上编写表达式

语言集成方面与 SQL Alchemy 或 JOOQ 类似。在 SQL 中,除了参数化文字之外,程序员还必须通过字符串连接来工作。除了字符串拼接带来的不便之外,还需要开发者格外小心,防止注入攻击。

相比之下,在 Optic 中,您可以捕获在变量中构建计划的中间阶段,将计划传递到添加操作并返回修改后的计划的函数中,等等。

您可以通过链接操作来更自然地工作,这些操作以预期的操作顺序表达您需要执行的计划(与 SQL 语法的命令式句子约束相反)。 Jooq 领导有一篇关于这个问题的有趣的博客文章:

https://blog.jooq.org/2016/12/09/a-beginners-guide-to-the-true-order-of-sql-operations/

也就是说,如果一个团队精通 SQL 并且不需要惯用的功能或看到 Optic 提供的语言集成的价值,他们应该毫不犹豫地使用 SQL。

换句话说,选择使用哪个接口(SQL 或 Optic)可能是每个团队或项目的决定,而不是每个查询的决定。

© www.soinside.com 2019 - 2024. All rights reserved.