druid - 我们可以在 Druid 中更改维度后摄取的数据类型吗

标签 druid

我们正在对 Druid 进行 POC,以检查它是否适合我们的用例。虽然我们能够摄取数据但不确定以下内容:

  1. druid 如何支持无模式输入:假设输入维度由最终用户自行决定。然后这里没有定义的模式。因此,应用程序有责任识别新维度、识别数据类型和摄取。有什么办法可以做到这一点?
  2. druid 如何支持数据类型更改:假设在类(class)中(比如在摄取 100GB 数据后),需要将维度的数据类型从字符串更改为长整型或从长整型更改为字符串(或其他)。在不妨碍持续摄入的情况下推荐的方法是什么?

我查看了文档,但无法获得关于这两个用例的实质性概述。

最佳答案

对于问题 1,我会将所有内容都作为字符串提取并稍后解决。应该可以将德鲁伊中的字符串列查询为数字

获取解释的可能行为:https://github.com/apache/incubator-druid/issues/4888

  1. 考虑值为零,不要尝试解析字符串值。似乎这是当前的行为。

  2. 尝试解析字符串值,如果它们不可解析、为空或多值,则将值视为零

One current inconsistency is that with expression-based column selectors (anything that goes through Parser/Expr) the behavior is (2). See IdentifierExpr + how it handles strings that are treated as numbers. But with direct column selectors the behavior is (1). In particular this means that e.g. a longSum aggregator behaves differently if it's "fieldName" : "x" vs. "expression" : "x" even though you might think they should behave the same.

您可以在此处关注整个讨论: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

希望对你有帮助

关于druid - 我们可以在 Druid 中更改维度后摄取的数据类型吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54284940/

相关文章:

hadoop - 德鲁伊能替代hadoop吗?

java - 从 PostgreSQL 提取数据到 Druid 时出现类型转换错误

java - Apache 德鲁伊 没有已知的服务器

hadoop - TSV文件应如何以DRUID格式设置?

group-by - Apache Druid GroupBy 虚拟列

druid - Apache Druid 中的中间持久化是什么?

hadoop - 无法从 Hive 外部表上的 Druid 数据源查询数据

hadoop - Druid/Hadoop批处理索引/Map Reduce/YARN/无远程,仅本地

scala - 我们可以在德鲁伊中进行转换吗

druid - 从java应用程序查询druid