gpt4 book ai didi

javascript - 从Elasticsearch下载300,000+行作为.csv文件

转载 作者:行者123 更新时间:2023-12-02 23:44:05 24 4
gpt4 key购买 nike

您好,我在nodejs中有一个网站,在Elasticsearch中有一个数据库。索引“bigData *”有366,844行,每行有25个项目,每个项目都有一个不同的字符串,大小不同,最大约为100个字符。我正在将此索引查询到页面上显示的数据表中,我使用滚动逐步将元素加载到表中并将其显示在页面上。数据表具有“全部下载”选项,但它只会下载页面上加载的内容。我正在尝试实现真正的“全部下载”,该功能将提取所有366,844行,将其编译为文件(csv),然后从网页下载。
我尝试使用滚动,就像它如何加载数据一样,反复调用数据库10,000行。每次花费30秒,因此总共需要20分钟。
我知道类似这样的事情可能会花费一些时间,我不希望即时解决方案。但是我的方法也使chrome非常缓慢且缓慢,甚至几乎崩溃了一点。有人建议下载这么多数据吗?甚至我项目的npm软件包或库都可以在后台准备好下载。
谢谢

最佳答案

这里有几件事:

  • 当显示很多行时,您可能需要使用virtual scrolling,它将DOM元素(<tr><td>,...)的数量保持在合理的水平,并防止滚动变慢和变乱。您在使用vanillaJS还是某些框架?那里有一堆虚拟滚动库。
  • 如果10,000行需要30秒,请分批查询(〜200-500)。当您的用户向下滚动时,另一个批查询将已经解决并且可以呈现。
  • 听起来您将始终希望下载所有366,844行-未应用过滤器。如果是这样,在上面的顶部,我会以合理的间隔执行S3 bucket csv 'dumps'(可能是同一个文件被每个备份覆盖),并在表的上方直接在<a href="..." target="_blank" >中链接最新的文件。这样,您的网站将保持整洁,客户端可以在自己方便的时候下载CSV。
  • 关于javascript - 从Elasticsearch下载300,000+行作为.csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62651804/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com