测试文档(产品帮助文档专用)

SQL脚本@

SQL脚本用于执行SQL检查数据:满足企业复杂数据质检需求,应对标准化规则难以覆盖的定制化、多源关联校验场景。依托 SQL 的灵活查询与计算能力,支持用户自定义脚本,实现个性化业务逻辑校验,填补通用规则局限,保障复杂场景下的数据质量。

检查规则:支持SQL语句、存储过程两种类型的检查方式,如果质量模型启用的Spark引擎,则无法选择存储过程类型。

SQL:通过输入自定义的sql来检查数据,sql内容需要满足一定条件规范。

select

  BBQ as PERIOD,--数据期字段指定,如果没有则配置’00000000’

  UPID as DATACLASS,--数据级次字段指定,如果没有则配置’vroot’

  GUID_ AS KEY_GUID_--关键字字段指定,必填字段,存在多个的话则都需要配置

from

  <#=TABLENAME#>--检查表的宏表达式,也支持直接输入实际的数据库表名代替

where

  e4 > '200'

  and substr(BBQ, 1, 6) = '<#=PERIOD#>'--查询条件,如果涉及需要根据数据级次或数据期过了,则也可以通过宏表达式来代替

存储过程:通过存储过程对质检主题表数据进行检查之前,需要先在对应数据库连接池内自定义存储过程。规则执行时系统调用存储过程,传递数据期,数据级次相关参数,由存储过程返回临时表。示例如下:

1.创建临时表

CREATE TABLE SQLCHECKTABLE2(
DATACLASS VARCHAR(50),
CHECKSTATE INTEGER ,
SYS_XDATA_ROWID VARCHAR(50),
FIELDVALUES VARCHAR(50),
FIELDVALUEDESC VARCHAR(50))

//以上临时表sql中除了 SYS_XDATA_ROWID是关键字字段外,其余是固定写法

2.创建存储过程

CREATE OR REPLACE PROCEDURE SQLCHECK_TEST2(
PERIOD IN VARCHAR,//定义数据期参数
DATACLASS IN VARCHAR,//定义数据级次参数
TMPTABLE OUT VARCHAR) AS
BEGIN
DELETE SQLCHECKTABLE2;//清空临时表SQLCHECKTABLE2
COMMIT;
EXECUTE IMMEDIATE 'INSERT INTO SQLCHECKTABLE2(DATACLASS,CHECKSTATE,SYS_XDATA_ROWID)//将数据插入临时表SQLCHECKTABLE2
(SELECT UPIDC18 AS DATACLASS, (CASE WHEN A.E15C2 is null THEN 0 ELSE 1 END) AS CHECKSTATE,A.SYS_XDATA_ROWID FROM F_XXB3_COPY A WHERE A.BBQC11 ='''||PERIOD||''')';//UPIDC18为数据级次字段,BBQC11为数据期字段,F_XXB3_COPY为质检主题表对应库表名称,SYS_XDATA_ROWID为关键字字段
COMMIT;
TMPTABLE := 'SQLCHECKTABLE2';
END SQLCHECK_TEST2;

3.新建sql规则,主题表选择F_XXB3_COPY,存储过程选择SQLCHECK_TEST2,然后保存规则。

附件列表

0

文档内容仅供参考
如果您需要解决具体问题,还可以登录亿信社区
在提问求助板块提问,30分钟内帮您解决问题

如果您认为本词条还有待完善,请编辑

上一篇平衡性检查@

下一篇数据集检查@

请先登录