Tranquility lowercasing field name in hyperUnique aggregator

Hi - I’m sending events to Druid 0.7.0 via Tranquility. The event objects have a field named userId, and I’ve included this aggregator:

new HyperUniquesAggregatorFactory(“userIdHll”, “userId”)

However in the spec json received by the indexing task I see this:

{“type”: “hyperUnique”,“name”: “userIdHll”,“fieldName”: “userid”}

The field name has been lowercased to userid. I think this messes up hyperUnique queries, which always return results of zero, because the field in the events is userId.

Is this expected functionality of Tranquility, or a bug? Or am I doing something wrong?

I also included userId as a dimension, and cardinality queries on this dimension do work as expected.



Hi Zach,

This is happening because tranquility is still built against druid 0.6, which generally lowercased things in an effort to be case-insensitive. Druid 0.7 is case-sensitive and this lowercasing behavior has been removed. I expect to be publishing a Druid 0.7-based tranquility soon, which I’ll announce in the list. If you don’t want to wait for that, you could work around it by using lowercase column names.

Sorry for the inconvenience.