我目前使用的是 druid-Incubating-0.16.0 版本。如https://druid.apache.org/docs/latest/tutorials/tutorial-update-data.html教程链接中所述,我们可以使用结合 firehose 来更新和合并数据源的数据。
步骤:1 我使用与初始结构相同的样本数据
┌──────────────────────────┬──────────┬───────┬────────┐
│ __time │ animal │ count │ number │
├──────────────────────────┼──────────┼───────┼────────┤
│ 2018-01-01T01:01:00.000Z │ tiger │ 1 │ 100 │
│ 2018-01-01T03:01:00.000Z │ aardvark │ 1 │ 42 │
│ 2018-01-01T03:01:00.000Z │ giraffe │ 1 │ 14124 │
└──────────────────────────┴──────────┴───────┴────────┘
第 2 步:我用 appendToExisting = false 和 rollUp = true 更新了 Tiger 的数据 {"timestamp":"2018-01-01T01:01:35Z","animal":"tiger", "number":30} 和找到了结果
┌──────────────────────────┬──────────┬───────┬────────┐
│ __time │ animal │ count │ number │
├──────────────────────────┼──────────┼───────┼────────┤
│ 2018-01-01T01:01:00.000Z │ tiger │ 2 │ 130 │
│ 2018-01-01T03:01:00.000Z │ aardvark │ 1 │ 42 │
│ 2018-01-01T03:01:00.000Z │ giraffe │ 1 │ 14124 │
└──────────────────────────┴──────────┴───────┴────────┘
第 3 步:现在我用 appendToExisting = false 和 rollUp = true 更新长颈鹿 {"timestamp":"2018-01-01T03:01:35Z","animal":"giraffe", "number":30} 并得到以下结果
┌──────────────────────────┬──────────┬───────┬────────┐
│ __time │ animal │ count │ number │
├──────────────────────────┼──────────┼───────┼────────┤
│ 2018-01-01T01:01:00.000Z │ tiger │ 1 │ 130 │
│ 2018-01-01T03:01:00.000Z │ aardvark │ 1 │ 42 │
│ 2018-01-01T03:01:00.000Z │ giraffe │ 2 │ 14154 │
└──────────────────────────┴──────────┴───────┴────────┘
我的疑问是,在第 3 步中,老虎的数量减少了 1,但我认为它不应该改变,因为老虎的第 3 步没有变化,也没有数量变化
仅供参考,count 和 number 是 metricSpec,它们分别是 count 和 longSum。请说清楚。
当使用带有初始数据的 ingestSegment firehose 时
┌──────────────────────────┬──────────┬───────┬────────┐
│ __time │ animal │ count │ number │
├──────────────────────────┼──────────┼───────┼────────┤
│ 2018-01-01T00:00:00.000Z │ aardvark │ 1 │ 9999 │
│ 2018-01-01T00:00:00.000Z │ bear │ 1 │ 111 │
│ 2018-01-01T00:00:00.000Z │ lion │ 2 │ 200 │
└──────────────────────────┴──────────┴───────┴────────┘
在添加带有 appendToExisting = true 的新数据 {"timestamp":"2018-01-01T03:01:35Z","animal":"giraffe", "number":30} 时,我得到了
┌──────────────────────────┬──────────┬───────┬────────┐
│ __time │ animal │ count │ number │
├──────────────────────────┼──────────┼───────┼────────┤
│ 2018-01-01T00:00:00.000Z │ aardvark │ 1 │ 9999 │
│ 2018-01-01T00:00:00.000Z │ bear │ 1 │ 111 │
│ 2018-01-01T00:00:00.000Z │ lion │ 2 │ 200 │
│ 2018-01-01T00:00:00.000Z │ aardvark │ 1 │ 9999 │
│ 2018-01-01T00:00:00.000Z │ bear │ 1 │ 111 │
│ 2018-01-01T00:00:00.000Z │ giraffe │ 1 │ 30 │
│ 2018-01-01T00:00:00.000Z │ lion │ 1 │ 200 │
└──────────────────────────┴──────────┴───────┴────────┘
它是正确的和预期的输出吗?为什么汇总没有发生?