哪种方式更好地在 MarkLogic 中对 TDE 进行建模?同一字段的两种不同数据类型或从 OPTIC API 转换数据类型?

Which way is better to model TDE in MarkLogic? Two different data type for the same field or Cast the data type from OPTIC API?

我想知道使用 MarkLogic 对 TDE 进行建模的哪种方法更好。

我们有 XML 个包含许多不同 DateTime 字段的文档。 大多数时候(99.99%),时间戳部分没有任何商业用途。 我想剩下的 0.01% 用例是用于数据问题调查,就像发生这种情况一样。

TDE 可以通过 ODBC 将文档数据公开给外部 BI 工具,非常简洁。 所有列式类型的现代 BI 工具 (Power BI) 都喜欢将日期和时间戳字段与一个日期时间字段分开。这将显着提高 BI 工具的性能。

两个选项可以做到这一点。

  1. 从同一字段在 TDE 中创建两个不同的字段。请参阅下面的屏幕截图。 大多数时候,只使用 Date 类型的 TDE 字段。

  2. 在TDE中只创建一个DateTime字段,在OPTICS中使用类型转换API或SQL(ML版偏爱)

哪种方式更好?

我会说按照您计划使用的方式对数据进行建模。在您的情况下,添加额外的 TDE 字段。几点:

  1. 它应该压缩得很好.. 每个森林每天只有一个唯一值。

  2. MarkLogic 是一个集群数据库。查询按林解析,然后按节点解析,然后在评估器节点上解析。您应该始终小心过滤、排序、加入任何动态值,因为有时要解析项目,必须将更多数据推送到评估器节点。按照您计划使用的方式存储数据通常有助于最大限度地降低次优查询的风险,但在集群数据库上更是如此。