【问题标题】:ElasticSearch dump full index to a csv fileElasticSearch 将完整索引转储到 csv 文件
【发布时间】:2023-03-11 14:18:01
【问题描述】:

是否可以在.csv 文件中轻松地export whole index(所有存储的字段)弹性搜索集群(可能开箱即用)?

我能想到的替代方法是查询整个索引,然后转换结果...但我真的不喜欢解析一个巨大的 json 的想法,因为它包含数百万个文档!

有没有其他方法或想法来实现导出?

【问题讨论】:

  • @KonstantinV.Salikhov 看起来不错!我希望不涉及第三方插件,但这似乎满足了我的需求!
  • 这个其实我没试过,可能会有一些性能问题
  • elasticsearch-csv 在我看来不是产品解决方案。
  • github.com/taraslayshchuk/es2csv(来自@taraslayshchuk 的已删除答案)

标签: elasticsearch export-to-csv


【解决方案1】:

您可以使用Scan and Scroll API。这样您就不需要解析庞大的 JSON 文件了——您可以分批进行解析。

【讨论】:

【解决方案2】:

免责声明:我是 estab 的作者。


estab 将弹性搜索字段导出为制表符分隔值。如果您没有太多字段,则可以轻松地将它们全部显式导出。 estab 在内部使用扫描和滚动 API。

例子:

假设您的索引包含以下文档:

{
    "name": "Kiwi",
    "genus": "Apteryx",
    "populations": [
        {"location": "North Island", "size": 2500},
        {"location": "Little Barrier Island", "size": 2000}
    ]
}

然后您可以通过以下方式导出整个索引:

$ estab -f 'name genus populations.location populations.size'
Kiwi    Apteryx North Island|Little Barrier Island  2500|2000

请注意,嵌套字段不容易映射到表格形式。 estab 默认使用| 分隔多个值,您可以通过通常的点表示法引用嵌套字段。

【讨论】:

    猜你喜欢
    • 2012-11-18
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2013-04-02
    • 2019-06-03
    • 1970-01-01
    • 2018-04-02
    • 2015-08-12
    相关资源
    最近更新 更多