marklogic - 使用自动编码将 CSV(或 TSV)加载到 MarkLogic 中

标签 marklogic mlcp nosql

我已经使用 MLCP(MarkLogic 内容泵)成功地将一个非常干净(简单的英语,没有花哨的符号或图像)的 CSV 文件加载到 MarkLogic 中,以便它将第一行作为列名称,并且我了解到当我尝试加载一些不干净的东西(即与其他语言和编码混合)时,它会失败。

我从摄取指南 (http://docs.marklogic.com/guide/ingestion/encoding?print=yes) 中了解到,MLCP 无法控制编码,因此我决定尝试一下 Java API 和 xdmp Xquery。

当使用 Java API 时,我得到: 第 1549 行处的 UTF-8 转义序列无效 - 文档不是 UTF-8 编码

如果我尝试使用 xdmp 在查询控制台中或在 Information Studio 上的流程中使用自动编码来加载它,它会毫无问题地加载,但 MarkLogic 不会将第一行作为列名称,而是会接收整个文件作为一个文档,这不是我想要的。

有没有办法加载 CSV 文件而不会出现编码问题,并使其将第一行作为列名称?

提前致谢。

最佳答案

RecordLoader 可以做到这一点:http://marklogic.github.io/recordloader/

CONFIGURATION_CLASSNAME=com.marklogic.recordloader.xcc.DelimitedDataConfiguration
FIELD_DELIMITER=,
RECORD_NAME=my-root-element-name

使用这些属性和您的 CSV 文件运行 recordloader.sh。 RecordLoader 期望第一行是标题列表,并将它们转换为元素名称。调整 my-root-element-name 以适合您自己,并将 INPUT_ENCODING 设置为您需要的任何编码。

查看 https://github.com/marklogic/recordloader/blob/master/src/java/com/marklogic/recordloader/xcc/DelimitedDataConfiguration.java了解更多配置选项。

关于marklogic - 使用自动编码将 CSV(或 TSV)加载到 MarkLogic 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23351114/

相关文章:

xml - MarkLogic:XQuery 从 XML 文档中获取唯一名称?

javascript - 在marklogic中使用Javascript遍历Json节点?

xquery - 如何使用 xdmp :node-replace()? 返回完整文档

marklogic - 通过 gradle 执行时,mlcp 未加载文档

marklogic - 使用 MLCP 插入 MarkLogic DB 时检查空/空白

database - 是否存在可用于所有 JSON 解析器和数据库的安全 JSON 子集

node.js - 如何在 lambda 函数中从 DynamoDb 获取最后插入的数据

javascript - MarkLogic:MarkLogic 数据中心 Content.sjs 中的协调错误

xquery - 使用 mlcp、csv 文件和转换解析日期导入数据

angular - Firebase实时数据库中有 "Multi-Path Push"这样的东西吗?