我有两组索引,索引A_ *和索引B_ *。我需要在B_ *中创建一个父子结构。 B_ *已包含父文档,A_ *包含子文档。所以,基本上,我需要将子文档从A_ *复制到B_ *,中间有一些逻辑,根据作为唯一键的几个字段的匹配,将子文档与父文档进行匹配。
A_ *包含大约40个文档计数介于100-250万之间的索引。每个索引介于100-500 GB之间。 B_ *包含16个索引,每个索引有1500万个文档,每个文档大小为20 GB。
我试图通过python脚本执行此操作,主要逻辑如下:
doc_chunk = helpers.scan(self.es, index=some_index_from_A, size=4000, scroll='5m')
actions = self.doc_iterator(doc_chunk)
deque(helpers.parallel_bulk(self.es, actions, chunk_size=1000, thread_count=4))
函数doc_iterator滚动helpers.scan返回的迭代器,并根据给定子文档中某些字段的值确定该文档父级的id。对于每个文档,它产生索引操作,索引子文档在B _ *。
中的相应父项下我尝试了几种不同的方法来创建这个父子索引,但似乎没有任何工作:
更多细节:
我需要找到一种方法在尽可能短的几天内完成父子索引。任何解决上述尝试问题的技巧都会有所帮助,也欢迎新的想法。