我可以使用时间作为维度创建德鲁伊查找吗?

时间:2018-04-11 14:14:41

标签: lookup druid

我可以构建像

这样的查找
  {
"type":"lookup",
"dimension":"type",
"outputName":"type_name",
"outputType": "STRING",
"retainMissingValue":true,
"lookup":{"type": "map", "map":
{"0": "Unknown",
"1": "Mobile(Other)",
"2": "Desktop/Notebook", 
"3": "Connected/Smart TV", 
"4": "Mobile Phone"}, 
"isOneToOne":true}
}

但是,我想用一天中的时间作为输入变量创建一个。有没有办法这样做而不必将数据源添加小时作为维度?例如,上午5点到9点的时间应该映射到早上等等。我正在运行德鲁伊12。

1 个答案:

答案 0 :(得分:1)

这个有效!您还可以添加一个时区,如果您的数据与我们的数据类似,那么这个时区非常重要。

{
  "type": "extraction",
  "dimension": "__time",
  "outputName": "hourOfDay",
  "extractionFn": {
    "type": "cascade",
    "extractionFns": [
      {
        "type": "timeFormat",
        "format": "H",
        "locale": "en"
      },
      {
        "type": "lookup",
        "lookup": {
          "type": "map",
          "map": {
            "0": "early_morning",
            "1": "early_morning",
            "2": "early_morning",
            "3": "early_morning",
            "4": "early_morning",
            "5": "early_morning",
            "6": "morning",
            "7": "morning",
            "8": "morning",
            "9": "morning",
            "10": "morning",
            "11": "morning",
            "12": "afternoon",
            "13": "afternoon",
            "14": "afternoon",
            "15": "afternoon",
            "16": "afternoon",
            "17": "evening",
            "18": "evening",
            "19": "evening",
            "20": "evening",
            "21": "night",
            "22": "night",
            "23": "night"
          }
        },
        "retainMissingValue": true,
        "injective": true
      }
    ]
  }