0

是否有任何工具可以快速将 DB2 表行转换为我们可以加载到 Marklogic 的 XML 文档集合?

4

3 回答 3

1

DB2 支持 SQL:2003 中引入的 SQL/XML 发布扩展。这些函数包括 XMLSERIALIZE、XMLELEMENT、XMLATTRIBUTE 和 XMLFOREST,并且可以很容易地添加到 SQL SELECT 语句中,以便为结果集中的每一行生成一个简单、格式良好的 XML 文档。通过编写从 DB2 的目录视图中检索表名和列布局的查询,可以自动为大量表创建 XML 发布 SELECT 语句。

于 2012-01-12T17:57:56.037 回答
0

您需要从 DB2流式传输到 MarkLogic 吗?或者您可以暂时将所有文档转储到中间文件系统然后读入吗?如果您可以转储,那么只需使用一些 DB2 工具(如上面@Fred 的答案)将行导出到文件系统中的一堆 XML 文档,并使用多种方法之一将充满 XML 文件的目录读入 MarkLogic(如Information Studio(UI 或 api)、RecordLoader 等)。

如果您不想将它们作为中介存储在文件系统中,那么您可以为 MarkLogic 编写一个 InformationStudio 插件,该插件将提取每一行并将文档插入 MarkLogic。您需要插件可以调用的一些 Web 服务或休息端点,以从 DB2 中提取文档数据。

或者,我怀疑您可以使用 DB2 工具(由@Fred 描述),它可以让您在表的每一行中执行一些代码。如果您可以在 Java(或 .Net)中做到这一点,那么请使用 MarkLogic XCC API,这将使您能够将文档写入 MarkLogic。

于 2012-01-13T00:03:59.093 回答
0

一种方法是使用 MLSQL 工具包 ( http://developer.marklogic.com/code/mlsql )。它允许从 MarkLogic 中的 XQuery 代码中访问关系数据库。不确定返回的数据实际上是什么样子,但应该很容易在 XQuery 中处理它,并将您的数据作为 XML 插入 MarkLogic。

只要确保不要尝试在一个语句中加载一百万条记录,而是尝试一次生成一批批,比如说 1000 条记录。生成也将允许使用多个线程来处理它,因此也应该更快..

于 2012-01-12T10:10:02.237 回答