首页 > 解决方案 > 如何将 csv 文件作为一个 JSON 文件而不是单个文件加载到 MarkLogic 中?

问题描述

我有一个带有 | 的 CSV 文件 分隔符。我想使用 mlcp 将其加载到 MarkLogic 中,并将所有数据加载为一个 JSON 文档而不是多个 JSON(每行一个 JSON)。

CSV:

Name | age | gender
Steve | 30 | M
Rogers | 28 | M

JSON期望:

{
  "Name":"Steve",
  "age":30,
  "gender":"M"
},
{
  "Name":"Rogers",
  "age":30,
  "gender":"M"
}

标签: jsonshellcsvmarklogicmlcp

解决方案


在大多数情况下,如果每一行都是一个单独的文档,而不是将表的所有行放在一个文档中,MarkLogic 效果最好。

通过在文档上设置一个集合,可以很容易地从读取的行文档中重建一个表。

您在获取行子集方面具有更大的灵活性。

协调查询(例如“查找名称为“Rogers”且年龄为“30”的所有行文档)效率更高,因为您不必从大文档中投影行并且可以解决来自没有误报风险的索引(例如,其中一行中的属性名称为“Rogers”而另一行中的属性名称为“30”的文档)。

简而言之,考虑该要求是否会被证明是长期的最佳方法。

综上所述,我相信像 jackson-csv 这样的客户端库可以将 CSV 转换为一个大型 JSON 文档,然后您可以使用 mlcp 或 MarkLogic Java API 编写该文档。

但是,再一次,这种方法很可能在未来被证明是有问题的。


推荐阅读