返回公众号历史文章目录

文章 / 公众号历史文章

​「Sqlserver」数据分析师有理由爱Sqlserver之五-数据库环境使用正则表达式不再是梦

在数据分析师群体中,使用正则表达式清洗数据源是一个非常刚需的需求,谁也不能期望自己拿到手的数据源是多么干净整齐的,特别是在网络世界中抓取回来的数据。字符串的处理能力再强,没有正则表达式,许多场景也是无能为力。 在Excel催化剂插件上,让Excel用户可以在Excel环境上使用正则表达式,在Sqls

在数据分析师群体中,使用正则表达式清洗数据源是一个非常刚需的需求,谁也不能期望自己拿到手的数据源是多么干净整齐的,特别是在网络世界中抓取回来的数据。字符串的处理能力再强,没有正则表达式,许多场景也是无能为力。
在Excel催化剂插件上,让Excel用户可以在Excel环境上使用正则表达式,在Sqlserver数据库环境下,更能使用,性能更佳,此篇带大家进入数据库存的正则表达式。

背景介绍

关于正则表达式如何使用,网上上也是铺天盖地的学习资料,这里不作展开分享。

对于数据分析师来说,正则表达式的掌握,是一项投入产出比非常高的技能,陪伴一生都能使用上。

在数据库级别,可以使用正则表达式,目前据我有限知识范围可知,只有Oracle和MySQL提供原生性支持,但Sqlserver却一直都没有。

听到这样的消息,貌似给自家所爱的Sqlserver泼了冷水一般,但Sqlsever提供了CLR程序集的扩展支持,正则表达式在.NET环境下,也是完美地支持。将.NET的能力迁移到Sqlserver上,就如Excel催化剂将.NET的能力嫁接到Excel上一般,无限地扩展,只差想象力罢了。

上述提及Oracle、MySQL已经支持正则表达式了,但支持不代表全部支持,就如国产的金蝶、用友也叫ERP软件,但和人家SAP比起来,差个十万八千里,数据分析师是以数据说话,就Oracle、MySQL所支持的能力,还不如我一个三流开发都写几句.NET程序封装出来的正则表达式强,特别是MySQL,更是弱鸡得不行,只支持一个类似RegexMatch的逻辑匹配功能。

安装Sqlserver的正则表达式程序集扩展

对大部分数据分析师而言,他们只需要使用工具,至于开发过程、原理,估计没几个人有兴趣,当然有兴趣者,网络上也是大量的学习资料,也可以自行学习,此处就提供一个简单的安装教程,直接一分钟完事,立马使用上。

因Sqlserver正则表达式的封装和Excel催化剂的正则表达式封装原代码一模一样(bug和性能也一样,若有更佳的,欢迎也提供一起交流,Excel催化剂正则函数已经开源了),故具体的正则函数的学习教程,建议翻阅Excel催化剂的推文。

安装过程

总共两个sql脚本文件,区别于网络上的复杂安装教程,笔者提供了原dll文件安装以外的直接二进制文件写入sql脚本中的方式,对于服务器上的安装更加方便(无需复制dll到目标服务器等操作)。

双击sql文件后,默认会以SSMS打开,在Sqlserver上,可以将自定义函数安装在不同的数据库中,甚至安装在master数据库也是可以,一般情况下,只会按需求安装在指定的数据库中即可,先进行数据库选定。

公众号文章插图

定位正则函数安装数据库

在版本如Sqlserver2017上,需要额外增加这个clr strict security开关的开启,如果低版本执行时,可能会报错,但不影响安装(微软为了安全性也是不断地迭代产品,这个开关,对于安装外来dll程序集是一种保护,让数据库更安全)。

公众号文章插图

直接F5或点击执行按钮执行即可

最后可以在可编程性标量值函数这里找到部署成功的正则函数,使用时和普通函数的使用无异,按要求传入其参数即可,参数具体的定义参照Excel催化剂自定义函数的介绍。

第39波-DotNet版的正则处理函数 https://www.jianshu.com/p/9450c6610f1f

公众号文章插图

部署成功的正则函数位置

最终的调用效果,传入了包含ch字母的匹配条件,即可计算出匹配的结果,1为真,0为假。

公众号文章插图

正则函数调用方法

上述提及的sql文件,可后台留言或加笔者微信免费获取。

结语

通过CLR程序集功能的扩展,让Sqlserver手上.NET的翅膀,可以无限地扩展Sqlserver的能力范畴,特别是对数据分析师十分刚需的正则表达式功能,简单几步,即可实现完美的.NET版本的正则表达式,远远甩开MySQL的正则能力,对比Oracle原生的正则也不输,这就是Sqlserver的魅力。

在写好的SQL查询包含正则表达式的字符串清理,可以下放到一般的普通用户去消费,无需任务代码级的开发和数据驱动的安装,用Sqlserver做数据分发就是这么爽。

CLR函数扩展另还有一个非常刚需的函数为字符串聚合函数,将在下一篇中给予介绍,敬请关注。

笔者未来聚焦在数据领域的分享,不限于Excel,会分享更多Sqlserver、dotNET、Azure、PowerBI等话题,升级数据分析的能力,欢迎继续关注。

相关阅读

「Sqlserver」数据分析师有理由爱Sqlserver之一-好用的插件工具推荐
「Sqlserver」数据分析师有理由爱Sqlserver之二-像使用Excel一般地使用Sqlserver
「Sqlserver」数据分析师有理由爱Sqlserver之三-最值得使有低投入高产出的Sqlsever

「Sqlserver」数据分析师有理由爱Sqlserver之四-七大数据库产品测评Sqlserver完美胜出

关于Excel催化剂

Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!

Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!

Excel催化剂插件下载链接:https://pan.baidu.com/s/1Iz2\_NZJ8v7C9eqhNjdnP3Q

公众号文章插图

联系作者

公众号文章插图

公众号

取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!

关于Excel催化剂作者

姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)

技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。

擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。

2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。

和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。