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 = "";


相关文章
|
存储 安全 API
什么是API Token?
API令牌是一种用于访问和验证API(应用程序编程接口)的安全凭证。它是一个字符串,用于识别和授权应用程序或用户访问特定的API服务或资源。==API令牌可以是访问令牌(Access Token)或密钥(API Key)==。
3632 0
|
13天前
|
人工智能 Linux API
OpenClaw Skill 标准开发模板:10个实用Skill源码+阿里云/本地部署与大模型API配置教程
OpenClaw作为轻量化AI智能体平台,其核心扩展能力来自自定义Skill开发,对于新手而言,掌握标准化Skill结构、可直接运行的实用源码、系统的调试避坑方法,就能快速开发出满足文件操作、办公自动化、开发辅助等场景的专属技能。本文提供统一通用的OpenClaw Skill标准模板,包含10个可直接复制使用的新手Skill源码,覆盖文件处理、日常办公、开发辅助三大高频场景,同时完整补充2026年阿里云服务器部署、MacOS/Linux/Windows11本地部署流程,以及阿里云千问大模型API与免费Coding Plan API的配置方法,搭配全场景常见问题解决方案,让零基础用户也能稳定开发
387 1
|
JavaScript 前端开发
uniapp获取时间年月日
uniapp获取时间年月日
600 0
|
存储 缓存 人工智能
工作中,Redis的15种使用场景
Redis 在现代应用中扮演着至关重要的角色,涵盖缓存加速、分布式锁、实时排行榜、计数器、消息队列等15种常见场景。它通过高效的数据结构和原子操作,大幅提升系统性能和响应速度,广泛应用于会话管理、签到系统、限流控制、购物车、抽奖活动、全页缓存、发布订阅、地理位置服务、分布式ID生成及数据过期处理等领域。灵活运用这些特性,可显著优化开发效率和用户体验。
2214 156
工作中,Redis的15种使用场景
|
数据采集 存储 分布式计算
ClickHouse大规模数据导入优化:批处理与并行处理
【10月更文挑战第27天】在数据驱动的时代,高效的数据导入和处理能力是企业竞争力的重要组成部分。作为一位数据工程师,我在实际工作中经常遇到需要将大量数据导入ClickHouse的需求。ClickHouse是一款高性能的列式数据库系统,非常适合进行大规模数据的分析和查询。然而,如何优化ClickHouse的数据导入过程,提高导入的效率和速度,是我们面临的一个重要挑战。本文将从我个人的角度出发,详细介绍如何通过批处理、并行处理和数据预处理等技术优化ClickHouse的数据导入过程。
1649 0
|
网络协议 数据库连接 数据库
长连接与短连接的区别以及使用场景
这篇文章讨论了长连接与短连接的区别、各自的优缺点以及使用场景,指出短连接适用于浏览器访问服务器等场景,而长连接适用于操作频繁且连接数不多的情况,如数据库连接,选择长连接或短连接应根据实际需求和网络环境来决定。
长连接与短连接的区别以及使用场景
|
移动开发 运维 网络协议
运维必备 | Linux netstat命令详解
运维必备 | Linux netstat命令详解
655 8
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
727 11
|
数据挖掘 算法
灰色关联分析(Grey Relation Analysis,GRA)中国经济社会发展指标
灰色关联分析(Grey Relation Analysis,GRA)中国经济社会发展指标
灰色关联分析(Grey Relation Analysis,GRA)中国经济社会发展指标
|
存储 自然语言处理 关系型数据库
Elasticsearch创建一个索引怎么也这么复杂
Elasticsearch创建一个索引怎么也这么复杂
288 0