【问题标题】:Druid with Kafka Ingestion: filtering dataDruid with Kafka Ingestion:过滤数据
【发布时间】:2017-03-20 12:38:15
【问题描述】:

在从 Kafka 到 Druid 的摄取过程中,是否可以按维度值过滤数据?

例如考虑维度:version,可能具有值:v1v2v3 我只想加载v2

我意识到可以使用 Spark/Flink/Kafka Streams 来完成,但也许有一个开箱即用的解决方案

【问题讨论】:

  • 我也需要这个功能,但是我见过几次德鲁伊人提到ETL不是德鲁伊的范围。我认为很难实现通用 ETL。

标签: apache-kafka druid data-ingestion


【解决方案1】:

您可以在摄取期间使用transformSpec 执行此操作。
http://druid.io/docs/latest/ingestion/transform-spec.html

根据文档:

转换规范允许 Druid 过滤和转换输入数据 摄取。

任何query filters都可以应用于此。

NOT 过滤器的使用示例:

"transformSpec": {
  "filter": {
    "type": "and",
    "fields": [
      {
        "type": "not",
        "field": {
          "type": "selector",
          "dimension": "my_dimension",
          "value": "filter_me"
        }
      },
      {
        "type": "not",
        "field": {
          "type": "selector",
          "dimension": "my_dimension",
          "value": "filter_me_also"
        }
      }
    ]
  },
  "transforms": []
}

【讨论】:

    【解决方案2】:

    从德鲁伊方面不可能,您需要事先过滤数据。

    【讨论】:

    • 过时的答案。
    • 我还尝试使用任务 (firehose) 进行本地批量摄取。它实际上使用过滤器重新索引现有段。但不适用于 tansformSpec 中的过滤器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-04-27
    • 2020-04-09
    相关资源
    最近更新 更多