我们正在对Druid进行POC,以检查其是否适合我们的用例。尽管我们能够提取数据,但不确定以下内容:
我查看了文档,但没有获得关于这两种用例的实质性概述。
答案 0 :(得分:0)
对于问题1 ,我将所有内容都提取为字符串,并稍后进行查找。应该可以将druid中的字符串列查询为数字
获取在https://github.com/apache/incubator-druid/issues/4888
中解释的可能的行为考虑的值为零,请勿尝试解析字符串值。似乎这是当前的行为。
尝试解析字符串值,如果它们不可解析,则认为它们为零,或者为null或多值
当前的一个不一致性是使用基于表达式的列选择器(通过Parser / Expr进行的任何操作)的行为是(2)。请参阅IdentifierExpr +如何处理被视为数字的字符串。但是对于直接列选择器,其行为是(1)。特别是这意味着即使longSum聚合器的“ fieldName”:“ x”与“ expression”:“ x”相比,其行为也会有所不同,即使您可能认为它们的行为也应相同。
您可以在此处关注整个讨论:https://github.com/apache/incubator-druid/issues/4888
对于问题2 ,它认为有必要对数据进行重新索引 -http://druid.io/docs/latest/ingestion/update-existing-data.html -http://druid.io/docs/latest/ingestion/schema-changes.html
我希望这对您有帮助
答案 1 :(得分:0)
1)在这种情况下,您不需要在druid摄取规范中指定任何维度列,并且druid会将所有非时间戳记的列都视为维度。
有关这种方法的更多详细信息,可以在这里找到: Druid Schema less Ingestion
2)对于第二个问题,您可以更改架构,并且druid将创建具有新数据类型的新段,而您的旧段仍将使用旧数据类型。
在某些情况下,如果要将所有细分保持为新的数据类型,则可以为所有细分重新索引。请查看此链接,以获取有关为所有段重新编制索引的进一步说明。 http://druid.io/docs/latest/ingestion/update-existing-data.html
有关架构更改的其他信息,可以在这里找到: http://druid.io/docs/latest/ingestion/schema-changes.html