分享好友 最新动态首页 最新动态分类 切换频道
规则引擎在数据治理平台的实践
2024-12-27 09:14

在数据治理时,经常会遇到个性化统计分析的场景:基于数据的某些属性进行组合筛选,只有符合条件的数据才进行统计分析。

传统的实现方式是:业务人员提供筛选条件,数据开发人员在ETL任务直接开发。这种方式主要有两个痛点

  • 需求上线周期长
    开发人员须对ETL任务进行开发调试、发布上线,按天、周、月排期都有可能。
  • 统计口径不直观
    筛选条件都在ETL任务中,业务人员无法直观判断数据是否符合预期,往往在数据量波动比较明显的时候才会发现异常。

为了解决这些问题,数据治理平台提供了给数据打标签的功能:业务人员在数据治理平台上快速批量对数据打上个性化标签,数据开发人员只须筛选打上特定标签的数据,而无须直接对数据进行过滤筛选。通过这种方式,可以解决需求上线周期长、统计口径不直观的问题。

  • 数据开发人员只须一次性开发ETL任务,基于标签进行数据筛选即可,具体的数据筛选交由业务人员在数据治理平台上操作。
  • 业务人员在数据治理平台上面可以直观查看须统计的数据,可视化管理数据统计口径。

随着数据量的不断增长,单靠业务人员人工管理标签的工作会变得越来越繁琐:给10条数据打标签业务人员还可以接受,但要给成千上万条数据打标签时,正常人都会抗拒这种操作了。

所以基于规则自动给数据打标签的需求,自然就会提上议程。当业务人员需要的筛选条件简单时,数据治理平台可以快速开发功能进行支持,但随着业务的发展,筛选条件会变得越来越复杂。
为了支持这些条件,平台功能会变得越来越臃肿,而且还需要投入开发人力排期开发,无法快速满足日新月异的业务需求。

因此,经过调研之后,决定引入规则引擎,平台基于规则引擎提供可视化配置功能,由业务人员进行自定义配置,平台根据业务配置自动匹配符合条件的数据,打上对应的标签。

本文不涉及规则引擎的调研过程,相关规则引擎的优劣对比不在本文讨论范围。本文主要介绍规则引擎的基础语法,以及在数据治理中的使用实践。

2.1 简介

Aviator是一个高性能、轻量级的java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。

官方地址:https://github.com/killme2008/aviatorscript

用户手册:https://www.yuque.com/boyan-avfmj/aviatorscript/cpow90

2.2 关键函数介绍

这里主要介绍关键函数

字符串函数
函数名称说明string.contains(s1,s2)判断 s1 是否包含 s2,返回 Boolean
Sequence 函数(集合处理
函数名称说明seq.set(p1, p2, p3, …)创建一个 java.util.HashSet 实例,添加参数到这个集合并返回。seq.contains_key(map, key)当 map 中存在 key 的时候(可能为 null,返回 true。对于数组和链表,key 可以是 index,当 index 在有效范围[0…len-1],返回 true,否则返回 falseinclude(seq,element)判断 element 是否在集合 seq 中,返回 boolean 值,对于 java.uitl.Set 是 O(1) 时间复杂度,其他为 O(n)seq.every(seq, fun)fun 接收集合的每个元素作为唯一参数,返回 true 或 false。当集合里的每个元素调用 fun 后都返回 true 的时候,整个调用结果为 true,否则为 false。seq.not_any(seq, fun)fun 接收集合的每个元素作为唯一参数,返回 true 或 false。当集合里的每个元素调用 fun 后都返回 false 的时候,整个调用结果为 true,否则为 false。seq.some(seq, fun)fun 接收集合的每个元素作为唯一参数,返回 true 或 false。当集合里的只要有一个元素调用 fun 后返回 true 的时候,整个调用结果立即为该元素,否则为 nil。

示例

 
 

3.1 数据匹配

目前业务侧暂只需要对数据进行匹配,不涉及数据计算。
因此基于常见的用户场景,数据治理平台抽象出两种运算符:比较运算符、范围运算符。

  • 比较运算符

定义如何比较字段取值与预期值。平台目前提供了三种比较方式,。

  • 范围运算符

由于字段取值与预期值都可能是多个,统一以数组形式存储数据,通过得到每个字段值与预期值的比较结果后,须通过定义多个比较结果如何进行组合运算,得到最终结果。平台目前提供了三个运算符,。

示例

字段取值比较运算符范围运算符预期值匹配结果说明等于任意符合true只要字段取值任意一个在预期值当中,即为true。在预期值中,所以为true。等于全部符合false当且仅当字段取值全部在预期值当中,才为true。不在预期值中,所以为false。等于完全不符合false当且仅当字段取值全部不在预期值当中,才为true。在预期值中,所以为false。不等于任意符合true只要字段取值任意一个不在预期值当中,即为true。不在预期值中,所以为true。不等于全部符合false当且仅当字段取值全部不在预期值当中,才为true。在预期值中,所以为false。不等于完全不符合false当且仅当字段取值全部都在预期值当中,才为true。不在预期值中,所以为false。包含任意符合true只要字段取值任意一个包含所有的预期值,即为true。第一个字段取值包含了所有预期值,所以为true。包含全部符合false当且仅当所有的字段取值都包含所有的预期值,即为true。第二个字段取值不包含预期值,所以为false。包含完全不符合false当且仅当所有字段取值都不包含所有的预期值,即为true。第一个字段取值包含了所有预期值,所以为false。

3.2 业务逻辑

数据匹配只能针对单个字段,业务往往需要针对多个字段进行组合排列,根据多个字段的匹配结果进行取舍。
因此数据治理平台提供了逻辑运算符,对多个字段的匹配结果进行与或运算。

  • 逻辑运算符

定义如何将多个字段的匹配结果进行与或运算,得到最终匹配结果。平台提供了两个运算符,。

3.3 规则参数

基于数据匹配与业务逻辑,数据治理平台抽象出以下数据结构,方便业务进行个性化配置

 

示例
假设有2条数据如下

名称状态分类厂商飞天销售中酱香型茅台五粮液销售中浓香型五粮液

需要筛选状态为,并且分类为的数据,生成的数据结构如下

 

3.4 表达式转换

基于3.3节的数据结构,参考2.2节的示例,生成表达式

 

3.5 数据转换

规则引擎需要将数据转换为类型,作为输入参数。

 

3.6 规则匹配

 
 

基于规则引擎开发的自定义规则功能,既能让业务直接进行个性化规则配置,快速对匹配的数据打标签,也极大解放了平台开发的人力,从重复乏味的定制化功能开发抽身出来,为业务实现更有价值的功能。

最新文章
高清美女写真生成AI:最佳工具推荐及详细操作指南
在这个科技飞速发展的时代,AI绘画技术的崛起让每个人都能轻松创造出令人惊艳的美女写真。想象一下,打开电脑,输入几个简单的关键词,就能看到一位风格独特的虚拟美女在眼前闪现,是不是很酷呢?这篇文章将为您介绍几款市面上流行的美女写
逆袭后高考
  “距高考倒计38天;  距理想实现56天。  2016.4.30年”  塑料白板上的三行正楷体字,一笔一划,一丝不苟,就如印刷体一样的标准,其中“高考”“理想”四个字比其他字更大一些,让原本中规中矩显得有点呆板的排版变得生动有趣。
社群运营粉丝裂变的方式与策略
随着互联网的发展,社交媒体成为了品牌和用户沟通的桥梁,而社群运营更是实现品牌粉丝裂变式增长的重要方式。粉丝裂变指的是在社群内,通过有效的运营策略,使得品牌粉丝的数量得以快速增加和扩散,从而实现用户的快速增长和社交关系的良性
茅台云商如何推售给人,怎么推销酒水怎样让客人下次点名让你服务
先认清谁是主角,谁买单,第一次酒水消费适可而止,不要让他尴尬,记得留下他的电话号码,隔一两天发给他信息,帮他预定,最重要的给足他面子,能够在第二次见面时,很大声的叫出它的称谓!目前市场不怎么好做了 1 :可以的话找个团队一起
沉浸式环幕轨道影院 动感影院 元宇宙影院
环幕轨道影院是将一个空间通过投影机或者LED等成像介质,通过融合系统和播控系统将特别制作的沉浸式影片映射到空间内,加之动感系统、风雨雷电效果的完美配合,从而使包裹在虚拟空间中的体。环幕轨道影院分为舱内和舱外,体验者乘坐轨道车
暴风影音5电脑版
暴风影音破解版是一款破解了VIP的暴风影音客户端,暴风影音具有强悍的解码能力,可以播放任何格式的视频,并且暴风影音破解版还没有广告,可以开启VIP功能,是很多用户喜欢的一款版本,有需要的朋友不要错过哦。一、左眼技术。采用左眼专利
杨姓股民向退市中昌发起索赔 罗建欣律师接受咨询
  12月11日消息,新浪股民维权平台今日收到杨姓股民针对退市中昌的维权申请,目前该维权咨询已被罗建欣律师接受。新浪股民维权平台将关注该股民的索赔进程,相关维权持续征集中。  新浪股民维权平台目前有4名专业律师可代理该公司维权
考研英语一难度趋势分析
一、文章选材方面21年分别涉及了三大母题,政策与民生(英国铁路涨价、印尼CCT与环保、英国粮食问题)、企业与社会(宽带商中立问题、员工再培训、巨头吞并小公司)和社会科学与科技反思(维多利亚人不笑的原因、直觉的威力),以及英语一
抖音小视频怎么去水印
方法一:古月水印助手(小程序)古月水印助手是一款专门针对抖音视频去水印的小程序,用户只需简单几步,就能轻松去除视频中的水印。在抖音平台上,很多用户喜欢将自己喜欢的短视频保存下来,然而,这些视频常常带有水印,影响了观看体验或后
首个AI程序员Devin全面开放:可独立开发/排除bug,月费500美元
12 月 12 日消息,全球首个“AI 程序员”Devin 于 12 月 11 日全面开放,距离其初次亮相尚不到一年。其开发商 Cognition Labs 宣布,个人开发者和工程团队可以每月 500 美元(备注:当前约 3635 元人民币)获得完整访问权限,订阅还包括 Sl
相关文章
推荐文章
发表评论
0评