当前位置: 首页 > 面试题库 >

有效地将XML引入Elasticsearch

田英卓
2023-03-14
问题内容

目前,我正在使用scrapy将来自ftp服务器的大型XML文件解析为elasticsearch。它可以工作,但似乎是一个沉重的解决方案,它也占用大量内存。

我想知道我是否最好为ES编写插件。我知道logstash可以做到,但是我不能这样做。

A)如果我为ES编写了一个实际的插件,我认为必须使用Java才能插入数据。这种方法有什么优势吗?或者我可以编写一个单独的Python脚本来推送数据。是否有明确的理由选择一种方法而不是另一种方法(假设我不懂Java或Python)

这归结为:

  • 使用实际的ES插件是否可以更好地进行内存管理
  • Java是否比Python更适合处理XML?

问题答案:

将XML转换为JSON是理解XML实际数据的问题,因为将其转换为JSON并非那么容易,并且通常需要其他逻辑。因此,没有防错XML> JSON转换器。

如果你决定使用Python这样做,看一看eTreelxmlxmltodict。JSON支持本身在pythonstdlib中。

如果您决定从ES方面尝试一些运气,请参阅elasticsearch- xml。如果XML保持一致,它可能会满足您的需求。

谈论性能pythonjava性能进行解析-
如果性能对您来说很关键,则可以利用一些已经在底层进行了优化的库,但是通常,良好的Java代码应具有更好的性能。



 类似资料:
  • 问题内容: 我想从Elasticsearch集群中的完全匹配查询中获取所有结果。我不在乎结果是否是最新的,我不在乎订单,我只想稳定地浏览所有结果,然后从头开始。滚动和扫描最适合此操作,似乎不需要我拍摄快照就很受欢迎。我将要处理数以千万计的文档。 问题答案: 某种程度上与Elasticsearch查询重复,以返回所有记录。但是我们可以添加更多细节来解决开销问题。(即,“拍摄不需要的快照似乎有点受欢迎

  • 问题内容: 我目前在一个项目中,需要执行一些步骤,以处理旧版Matlab代码(使用Matlab引擎),其余部分则使用Python(numpy)进行处理。 我注意到,将结果从Matlab转换为numpy的速度似乎非常慢。 这是一些示例代码,用于从另一个ndarray,列表和mlarray创建具有1000个元素的ndarray: 这需要以下时间: 转换所需时间约为列表转换的100倍。 有什么办法可以加

  • 问题内容: 假设我有2个矩阵M和N(都具有> 1列)。我也有一个包含2列的索引矩阵I- M代表1列,N代表1列。N的索引是唯一的,但是M的索引可能会出现多次。我要执行的操作是 除了for循环以外,还有其他更有效的方法吗? 问题答案: 为了完整起见,在numpy> = 1.8中,您还可以使用的方法: 除了明显的性能劣势外,它还有两个优点: 将其权重转换为双精度浮点数,将与数组的本机类型一起使用。这使

  • 我一直在关注Oracle的JLayeredPane教程,但它们的布局方式让我感到困惑,也没有理解我想要做什么。 我有一个应用程序,到目前为止还没有层的概念。所有东西都在JFrame中的一个单层中布局。

  • 将输入值绑定到ng模型时,如下所示: 如何将输入文本绑定为数组?所以如果我输入,得到的模型将是。 现在我就是这样做到的: 在我的控制器里: 它工作正常,但我不认为这是最佳实践,因为我正在制作一个变量,然后硬编码目标数组。 是否可以将输入的模型设置到数组中,然后让输入在绑定到作用域之前通过函数?

  • 我这里有一个清单: 对不起,我不应该解析整数,所以代码应该是这样的: