dataCompare核心功能之数据探针

简介: dataCompare核心功能之数据探针

1.数据探针产生的背景:

数据开发和接入的过程中,数据开发人员接到一个需求或者一条新的业务线可能需要搭建数仓,做数据处理,然后提供一些指标数据给到需求方,如果是你这边会怎么开始呢?

直接开干?抽表,清洗,分层,建模?

然后发现做完之后,怎么数据各种不对,取不到想要的数据,比如说:业务上说明明一个字段为空比例非常少(1%以内),但是加工出来的数据问题非常多?比如说:空值占比接近30%,然后报表显示的结果就各种问题,然后又往上排查发现,原来是别人提供的数据,或者采集的数据有问题

所以一上来开干,这就是瞎搞。啥也不知道不了解的情况下,对数据源一无所知的情况下,是谁给你勇气直接开干的?干完之后返工成本更大

2.正常的数据开发流程:

接到新的数据需求或者任务的时候,最开始应该需要做一下数据调研,即数据探查(也就是标题上提的数据探针),发现数据潜在的问题。

那数据探针到底要探测哪些内容呢?

3.现状

大多数数据开发人员的处理方法:写大量的sql

比如:

总行数据:select count(*) from table_name;

枚举值:select table_column,count(*) as cnt from table_name group by table_column

等等

4.数据探针

(1)低代码、少量配置即可实现探查任务

(2)将数据探测标准化,避免不同的数据开发人员采用不同的探测标准,做标准统一

(3)快速完成数据探测:30秒完成探测任务配置,2分钟出探测结果

5.功能演示

探测任务配置

探测结果详情

探测代码模板

//主键探测模板
public static final String mainTemplateSql = "select count(distinct column) as distinct_cnt," +
            "count(*) as cnt" +
            " from tableName filter";
//空值探测模板
    public static final String emptyTemplateSql = "select count(*) as cnt,column_dict from (\n" +
            "select *,\n" +
            "case when column is null then 0\n" +
            "else 1\n" +
            "end as column_dict\n" +
            "from tableName\n" +
            "filter\n" +
            ")t group by column_dict;";
//枚举值探测模板
    public static final String enumTemplateSql = "select * from (\n" +
            "select count(*) as cnt,column\n" +
            "from tableName\n" +
            "filter\n" +
            "group by column\n" +
            ")t order by cnt desc limit 50;";
//字段长度探测模板
    public static final String lengthTemplateSql = "select len,count(*) as cnt from (\n" +
            "select *,length(column) as len from tableName filter\n" +
            ")t group by len;";
//探测信息配置
String tableName = "";
String mainField = "";
String emptyFields = "";
String enumFields = "";
String lengthFields = "";
String filter = "";


相关文章
|
1月前
|
存储 数据库
Public CMS二次开发过程,如何使用多个数据源
Public CMS二次开发过程,如何使用多个数据源
20 2
|
存储 编解码 监控
VOS3000作用与功能
VOS3000是一套VoIP 运营支撑系统,系统拥有强大的功能集合及可靠的安全保障,可支撑 5000 路并发,适用于话务转发,企业终端,APP 业务,大型呼叫中心调度等多种业务形态,满足了大部分高并发大容量 VoIP 业务的需求。
1271 0
|
1月前
基于若依ruoyi-nbcio支持flowable流程角色,同时修改流转用户为username,流程启动做大调整(一)
基于若依ruoyi-nbcio支持flowable流程角色,同时修改流转用户为username,流程启动做大调整(一)
40 1
|
1月前
基于若依ruoyi-nbcio支持flowable流程角色,同时修改流转用户为username,流程启动做大调整(三)
基于若依ruoyi-nbcio支持flowable流程角色,同时修改流转用户为username,流程启动做大调整(三)
34 1
|
1月前
基于若依ruoyi-nbcio支持flowable流程角色,同时修改流转用户为username,流程启动做大调整(二)
基于若依ruoyi-nbcio支持flowable流程角色,同时修改流转用户为username,流程启动做大调整(二)
26 0
|
5天前
|
监控 前端开发 Java
SSMP整合案例第七步 前后端业务异常消息统一处理
SSMP整合案例第七步 前后端业务异常消息统一处理
10 1
|
5天前
|
设计模式 JSON 前端开发
SSMP整合案例第四步 表现层controller开发及用Result进行统一消息处理
SSMP整合案例第四步 表现层controller开发及用Result进行统一消息处理
17 2
|
26天前
|
数据采集 前端开发 JavaScript
Symfony Panther在网络数据采集中的应用
Symfony Panther在网络数据采集中的应用
Symfony Panther在网络数据采集中的应用
|
9月前
|
缓存 测试技术 BI
SAP Gateway 在开发系统和生产系统上的缓存控制
SAP Gateway 在开发系统和生产系统上的缓存控制
|
1月前
|
存储 运维 监控
日志服务 Scan 功能工作机制与最佳实践
大数据快速增长的需要泛日志(Log/Trace/Metric)是大数据的重要组成,伴随着每一年业务峰值的新脉冲,日志数据量在快速增长。同时,业务数字化运营、软件可观测性等浪潮又在对日志的存储、计算提出更高的要求。从时效性角度看日志计算引擎:数仓覆盖 T + 1 日志处理,准实时系统(搜索引擎、OLA...
87 0
日志服务 Scan 功能工作机制与最佳实践