Druid如何在将实时摄取的数据移交到深度存储之前进行持久化?
在文档中,Druid有关于intermedatepersistperiod的配置,并且maxpendingpersists持久化。但它并没有太多地说明什么是中间持久化,它是如何工作的。
从字面上看,我假设它周期性地将实时数据保存在内存中。给定以小时/天为单位的数据段粒度,如果在数据段时间结束之前没有机制来持久化数据,则会产生可用性和可靠性问题。
发布于 2019-09-14 09:54:36
问得好!持久化调用是在Appenderator接口中定义的,该接口提供了有关如何索引数据、如何将数据推送到深度存储以及如何在摄取期间持久化数据的API。"Appenderator.persistAll()“reads方法的注释
Persist any in-memory indexed data to durable storage. This may be only somewhat durable, e.g. the machine's local disk.默认情况下,该函数在AppenderatorImpl.java中定义,persistAll()最终调用writeCommit()进行持久化,持久化最终只是将值写入一个名为commit.json的json文件。
因此,为了回答你的问题,默认情况下,德鲁伊只需写入Peon的磁盘,就可以保持实时摄取的数据。
https://stackoverflow.com/questions/57923060
复制相似问题