客户提了大量正则匹配需求,且这部分需求有共通性,下图是需求的样例,查找符合域名,且匹配上第二部分的用户
我们对域名是小红书的需求,匹配url中复合有效id的用户,观察需求正则部分,看着是有一定的共通性,查找底层数据观察
下图是原始数据截取前面部分的样例:
通过观察发现,可以提前通过正则提取关键id字段
regexp_extract(http_url,'([^/]+)([?])')
提取/到?之间的
1040g2sg313cfp0qsg4705n6d5t0lni70onhv92g---截取出来的
1040g0083129e75s0526g5oalqhg0ksb7q8o3jb8---客户提供的
我们可以将31个省份,先根据域名做正则提取id,存放一张表里面,这样可以将客户的需求,从正则变成等值匹配,大大减少开销,提高处理性能,大量的正则匹配效率低下
原先处理10w的正则匹配需要跑一天,变成提取id再等值匹配后,仅耗时3小时,提前交付客户