有没有办法可以通过http将历史数据推送到德鲁伊?

时间:2018-03-15 04:44:00

标签: druid

我有一个物联网项目,并希望将德鲁伊用作时间序列DBMS。有时IOT设备可能会丢失网络,并在重新连接到服务器时重新传输历史数据和实时数据。我知道德鲁伊可以通过http push / pull和http pull或KIS上的历史数据来摄取实时数据,但是我找不到关于通过http push输入历史数据的文档。

有没有办法可以通过http推送将历史数据发送到德鲁伊?

2 个答案:

答案 0 :(得分:0)

我在这里看到几个选项:

  1. 继续将历史数据推送到相同的kafka主题(或其他流媒体源),并根据德鲁伊内部的消息时间戳进行拒绝。这简化了您的应用程序架构,让德鲁伊处理过期事件拒绝
  2. 对历史数据使用批量提取。您将历史数据推送到另一个Kafka主题,运行spark / gobblin /任何其他索引作业以将数据传输到HDFS。然后批量摄入德鲁伊。但请记住,德鲁伊会使用指定windowPeriod的批处理段覆盖任何实时段。因此,如果历史数据未完成,则会导致数据丢失。为了防止这种情况,您可以随时将实时数据泵入hadoop,并定期对HDFS数据进行重复数据删除并摄取到Druid中。如您所见,这是一个复杂的架构,但这可以减少数据丢失。
  3. 如果我是你,我会简化并将所有数据发送到像Kafka这样的流媒体源。我会根据我的消息的时间戳而不是当前时间(这是我相信的默认值)在德鲁伊中索引段。

答案 1 :(得分:0)

最近发布的kafka索引服务确保一次摄取。

请参阅以下链接 - http://druid.io/docs/latest/development/extensions-core/kafka-ingestion.html

如果你仍想通过http摄取,你可以结账宁静服务器。它有一些内置的机制来处理重复项。