实时数据处理规则有什么作用

在大数据中的实时数据采集、ETL批量数据传输过程中很多数据处理过程以及数据质量都希望实时进行处理和检测并把不符合要求的脏数据过滤掉或者进行实时的数据质量告警等。

在数据仓库建设过程中,每家企业的数据处理过程中肯定会有一些自身的数据处理特点如学号的处理、车牌号的处理、身份证号码的处理、SKU编码的处理、订单号的处理等等,各行各业都有自已的数据处理和运算方式,而ETL平台本身只是内置了一些通用的数据处理规则,企业所需要的这些个性化的运算规则就可以通过ETL的自定义规则来实现了。

怎么自定义数据处理规则?

首先进入ETL平台的一个应用,只有应用中才可以新增自定义规则,因为规则必须属于某一个应用。

注意:新增一个规则的分类才可以新增自定义规则

进入应用配置中新增一个规则分类

有了分类后再进入到自定义规则中就可以新增规则了,点击新增规则后给规则一个名称如:发动机号校验规则、订单号合法性校验规则等等,class path不用填系统会自动生成。

自定义数据处理规则的注意事项

规则新增成功后就可以给规则进行代码逻辑的编写了

系统会自动生成一个规则运算的代码模板出来,只需要根据模板中的提示进行逻辑修改即可

平台运算规则使用的是标准的Java语法,不是JavaScript之类的,所以不用担心运算规则的执行效率,经过我们测试处理100W的数据使用Java规则只需要几秒钟即可完成,而如果用JavaScript语法的规则需要几分钟才能完成,所以RestCloud ETL在性能上是很有优势的。

规则代码编写完成后可以点击编译并保存按扭即可,如果提示成功则表示代码没有问题,如果提示失败可以根据提示信息进行代码修改,如果在Web IDE中编辑不是很方便也可以把代码copy到idea/eclipse中进行编辑,编辑完成后再copy进来即可。

使用参数提升数据处理规则的复用率

如果规则都是固定算法不需要在系统执行时传入参数就不需要定义参数,但是有时我们为了能提升规则的复用性就必须得用到规则参数的功能了如:自定义一个格式化时间的规则,而格式化时间会有: yyyy-MM-dd、yyyy年MM月dd日、yyyy-MM-dd HH:mm:ss等等,根本不知道用户想格式化成什么样,光是一个时间格式如果不用参数我们就得定义一大堆规则才可以实现上面的功能,最好的方式是时间的格式是由绑定规则时指定的一个参数,这样我们在开发规则的时修只需要一个规则即可完成。

在新建规则时可以指定一个规则参数,这样在用户选择这个规则时就会提醒用户设定参数

这样用户可以在绑定规则时指定一个参数,这个参数会传入到规则的方法中

系统通过一个{参数id:参数值}的json传入,我们转为map对象后再获取参数值即可在代码中使用。

怎么使用规则进行数据质量的检查或过滤

规则定义好后我们就可以在ETL的流程中使用这些规则来进行数据质量的检查,数据清洗过滤等操作,如下面这个流程就可以把不符合要求的电话号码的用户给过滤掉同时发送告警通知给用户

自定义规则调用第三方jar包

规则中可以使用import 引入自已开发的jar包或者第三方jar包的class进入,这样就可以利用第三方jar包中的运算能力(如:spark、sm4加密算法、逻辑回归算法等)来实现很多复杂业务的处理和数据运算。

规则中可以执行SQL吗?

规则中可以很方便的执行SQL语句,系统已经封装了ETLRdbUtil这样工具类(还有其他很多数据库的工具类如:Redis,MongoDB,ES,Kafka等)如下代码即可执行SQL并返回数据

String sql=”select * from tablename where id<10”;

List docs=ETLRdbUtil.listDocs(ETLRdbUtil.getConnection("数据源id"), sql);

for(Document doc:docs) {

PrintUtil.o(doc.getString("userId"));

}

ETLRdbUtil工具类有很多方便访问数据库的工具,一般只需要几行代码就能读取、写入、修改数据,后面我们会专门介绍ETLRdbUtil工具类的使用。

使用RestCloud ETL强大的自定义规则实现自定义数据处理算法的更多相关文章

  1. jQquery.validate自定义规则的使用案例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Dotfuscator自定义规则中的元素选择

    Dotfuscator是专业的.NET程序代码保护软件.是支持规则自定义的,你可以对重命名.程序控制流.字符串加密等等功能自定义规则.在进行规则自定义过程中,可以通过元素的不同选择,满足自己的程序需要 ...

  3. js将对象数组按照自定义规则排序

    javascript对一个对象数组进行自定义规则排序,对象中有两个字段. 按照对象中一个字段a的值从小到大规则排序, 效果如下: 排序前: [0]:a=9,b=3 [1]:a=33,b=7 [2]:a ...

  4. .NetCore实践爬虫系统(二)自定义规则

    回顾 上篇文章NetCore实践爬虫系统(一)解析网页内容 我们讲了利用HtmlAgilityPack,输入XPath路径,识别网页节点,获取我们需要的内容.评论中也得到了大家的一些支持与建议.下面继 ...

  5. vee-validate 中文配置报错及自定义规则 报错.updateDictionary/.addlocale is not a function

    原因由于vee-validate版本更新的问题导致的. 1. 原因分析: a 新版vee-validate的语言配置方法变化了, Validator.localize('zh_CN', zh_CN) ...

  6. java编程排序之内置引用类型的排序规则实现,和自定义规则实现+冒泡排序运用

    第一种排序:[冒泡排序]基本数据类型的排序. [1]最简易的冒泡排序.效率低.因为比较的次数和趟数最多. /** * 最原始的冒泡排序. * 效率低. * 因为趟数和次数最多.都是按最大化的循环次数进 ...

  7. ss user-rule自定义规则并硬连接到OneDrive进行自动同步

    最近又换回Edge没了Switchy Omega用,仅仅使用GFWList感觉不够用,一些境内没服务器的网站直连还是挺慢的,于是就研究了一下PAC自定义规则. 简单说,平时用的规则就只有三种: 对于没 ...

  8. Nice Jquery Validator 自定义规则

    规则定义方式 (1). 正则 适用于使用单个正则能搞定的验证. // 使用数组包裹正则和错误消息,规则不通过时提示该消息 mobile: [/^1[3458]\d{9}$/, '请检查手机号格式'] ...

  9. SonarQube 自定义规则开发

    SonarQube 自定义规则开发 满足一些特定需求的时候,需要自己开发代码规则. 环境 和前文的演示环境一致. 步骤 开发步骤见 Writing Custom Java Rules 101,这是官方 ...

  10. 微服务实战系列(八)-网关springcloud gateway自定义规则

    1. 场景描述 先说明下项目中使用的网关是:springcloud gateway, 因需要给各个网关服务系统提供自定义配置路由规则,实时生效,不用重启网关(重启风险大),目前已实现:动态加载自定义路 ...

随机推荐

  1. hadoop部署安装(一)环境准备

    1. 环境准备 1.1防火墙 sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config setenfo ...

  2. servlet 作用域

    作用域总结 HttpServletRequest:一次请求,请求响应之前有效 HttpSession:一次会话开始,浏览器不关闭或不超时之前有效 ServletContext:服务器启动开始,服务器停 ...

  3. Jmeter+Ant+Jenkins接口自动化测试(三)_Ant配置及Jenkins持续集成

    前言: 本来想多分几部分,但是都是抽时间总结的,也就不润色了,直接三板斧,结束. 特别提示: 知识是用来分享的,但是也要尊重作者的权益,转载请注明出处,未经本人允许不可用于商业目的. Ant构建文件配 ...

  4. “Pocket Flow,一个仅用 100 行代码实现的 LLM 框架”

    PocketFlow介绍 PocketFlow是我最近在探索的一个LLM 框架,我觉得很有意思,因此推荐给大家. 这个框架最大的特点就是:"Pocket Flow,一个仅用 100 行代码实 ...

  5. ASP.NET Core MiniAPI中 EndPoint相关

    1.状态码返回之演化之路 1.1最基本的就是用Results或者TypedResults返回带有状态码的响应(可选Json响应体) app.MapGet("/fruit/{id}" ...

  6. Jupyter notebook添加Anaconda中的虚拟环境

    1.创建虚拟环境 conda create -n your_virtual_env python=3.6 2.激活新创建的环境 activate your_virtual_env 3.安装nb_con ...

  7. 安装Scikit-learn 0.24.2版本

    安装Scikit-learn 0.24.2版本 Anaconda 安装scikit-learn是0.19版本,目前最新版本是0.24.2,之前的版本与现在的版本之间差距还是比较大,因此有必要对scik ...

  8. XSSpecter - Blind XSS 检测与管理工具

    XSSpecter 是一个模块化的盲测跨站脚本(XSS)漏洞管理工具包,包含服务端回调处理和客户端自动化测试工具. 项目概述 XSSpecter 提供两大核心组件: 服务端 - 处理XSS回调.数据持 ...

  9. .NET 10 进展之 CoreCLR Interpreter

    我们从前一阵子 Maui 几个被离职的Mono 工具链相关的微软员工来说起,通过现象看本质,这意味着.NET 10 将完成对Mono的完全替代..NET 10 特性中有一个 @dotnet/runti ...

  10. Linux常用命令介绍-文件管理

    MV命令 - 移动或改名文件 mv命令来自英文单词move的缩写,中文译为"移动",其功能与英文含义相同,能够对文件进行剪切和重命名操作.这是一个被高频使用的文件管理命令,需要留意 ...