Druid中能否为维度提取函数使用多个维度?
能否为维度提取函数使用多个维度?
当然可以!你给出的示例写法完全是正确的思路,不少OLAP分析引擎(比如Druid)都支持这种多维度传入的提取函数配置。
先来看你提供的标准配置示例:
{ "type": "extraction", "dimension": ["dimension_1", "dimension_2"], "outputName": "new_dimension", "outputType": "STRING", "extractionFn": { "type": "javascript", "function": "function(x, y){ // do sth with both x and y to return the result }" } }
咱们拆解下里面的关键点:
dimension字段支持传入数组,你写的["dimension_1", "dimension_2"]会把这两个维度的对应值按顺序传递给提取函数- 你的JavaScript函数里,参数
x对应dimension_1的值,y对应dimension_2的值,参数顺序和dimension数组的顺序严格匹配,这点要注意别搞反 outputName定义了新生成维度的名称,outputType指定类型为STRING,只要你的函数返回值符合这个类型要求就没问题
另外给你几个实用提醒:
- 要确认你的分析引擎支持JavaScript提取函数,有些引擎默认禁用该功能,可能需要在全局配置中开启
- 如果后续需要用到更多维度,只需要在
dimension数组里添加对应的维度名,同时在函数里增加对应参数即可(比如3个维度就写function(x, y, z){...}) - 记得处理好空值场景,比如某个维度值为空时,函数里要做兼容逻辑,避免出现运行时错误
内容的提问来源于stack exchange,提问作者Elijah
相关产品推荐
相关产品推荐

