很多时候我们数据库里存储的字段是一段key-value形式的字符串,这串字符里包含了很多我们需要的属性。如下图所示。
把这些属性提取出来变成字段才能方便我们做分析。
有人说用Tableau里的拆分功能就可以了,但是拆分功能的灵活性比较差,用符号拆分很容易拆到我们不想要的东西,需要拆分嵌套拆分才可以,比较麻烦而且容易出错。
其实用Tableau里的正则提取公式就可以了。这个公式就是REGEXP_EXTRACT。
这个公式有两个参数,第一个参数填写你目前key-value串的字段名,第二个参数是用单引号包裹的正则表达式。
正则表达式的内容比较多,这里就不多说了,我只写出来按key提取value的例子。
比如,第一张图片里显示的,我们需要把rechargedId这个key和对应的值提取出来生成一个新的字段,我们先观察一下key-value字符串的形势,是以"key":value, 这么一个形势组合的。那么我们就可以让正则表达式先找到"rechargedID: ",然后在把后边逗号前的部分都提取出来就可以了。
Tableau的REGEXP_EXTRACT的第二个参数中用()表示要提取出来的部分。正则表达式[^,]表示不要逗号,后边的*号表示所有的元素。那么‘rechargeId": ([^,]*)’ 的意思就是找到rechargedId": 为开头的,后边逗号之前的所有东西。那么这样就可以把对应的Value提取出来了。结果如第一张图所示。
希望对大家有帮助。