dataCompare大数据对比之异源数据对比

news2025/1/12 23:05:40

在从0到1介绍一下开源大数据比对平台dataCompare

已经详细介绍了dataCompare 的功能,目前dataCompare 已经实现同源数据的对比

一、dataCompare 现有核心功能如下:

(1)数量级对比

(2)一致性对比

(3)差异case 自动发现

(4)定时调度自动对比数据

二、背景

但是上述功能目前只是针对于同源数据的对比,首先来介绍一下文中提到的同源和异源的概念

同源数据定义:

(1)相同的数据存储(比如说:mysql 和mysql,Hive 和Hive、Doris和Doris),因此只适用相同的数据存储

(2)同库或者同集群,比如说:Hive 和Hive 数据对比,要保证数据能在通一个集群进行运行,通常是利用集群来进行大批量数据的对比校验

因此,能够非常明显的看到目前大数据对比平台功能只适用于数据迁移中的对比,而不适用于数据架构升级,比如说:本来Hive 存储的数据由于架构升级需要迁移到Iceberg 或者Doris 等等数据存储中。

自从代码开源之后,获取了不少关注着,它们都提出了异源对比的要求。那么何为异源数据呢?

(1)不同的数据存储,比如说:Hive 和Doris、Hive和Iceberg 等等

(2)相同的数据存储,但是可能会跨库跨集群,也就是没办法把两边的数据在一个集群里面运行对比(如果能在一个集群里面获取到两边的数据还是认为同源的)

三、遇到的问题

那么针对异源数据的对比,有没有什么办法呢,又会遇到哪些问题呢?

目前异源数据对比存在如下问题:

(1)跨存储,不同的存储导致所支持的sql 不同,比如说Hive和ClickHouse,明显支持的sql 就有差异

(2)数据量大,没办法直接在内存里面进行对比,同源数据都是利用集群的方式进行对比的

四、解决方案

为了解决异源数据对比,目前提出了如下两种解决方案

(1)最简单的方案,把数据弄到一起,也就是转成同源数据对比,但是这样明显很浪费时间,需要数据同步,同时也浪费存储

(2)利用一些技巧来实现异源数据的对比

本文主要介绍如何利用一些数据的技巧来实现异源数据的对比

比如说:由于数据架构升级,之前的Hive(user_info_hive) 数据 升级到用Doris(user_info_doris) 进行存储(要求:表结构不变,只是数据存储升级)

(1)分别计算user_info_hive、user_info_doris 的pv和uv,分别记录为pv_hive,pv_doris,uv_hive,uv_doris

(2)采用hash的方式,a.对于user_info_hive、user_info_doris 的主键 user_id 进行hash,分别统计;b.对于user_info_hive、user_info_doris 所有字段拼接构建md5分别hash 统计

(3)一致性校验:选择user_info_hive、user_info_doris 其中主键user_id hash值相同的1w 条数据进行对比,看有多少条数据两边同时都能找到

因此通过上述的数据技巧,来进行对比数据也是非常合理的,同样能够达到数据对比的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/145769.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【个人解答版】笔试题-2023禾赛-FPGA

题目背景 笔试时间:2022.06.22应聘岗位:FPGA开发工程师 题目评价 难易程度:★★☆☆☆知识覆盖:★☆☆☆☆超纲范围:☆☆☆☆☆值得一刷:★☆☆☆☆ 文章目录1. 使用最少的电路实现二分频,给出…

《机器学习实战》chap1 机器学习概览

《机器学习实战》chap1 机器学习概览 Chap1 The Machine Learning Landscape 这本书第三版也已经出版了:https://github.com/ageron/handson-ml3 Hands-on Machine Learning with Scikit-Learn,Keras & TensorFlow 引入 很早的应用:光学字符识别(OCR&#xff0…

远程办公之怎样在外网登录在线答题网站

很多学校或企业因为教学、测试需要,为学生或员工提供了在线答题平台网站,但弊端是这种在线答题平台只能在校内或在企业内网访问使用,在外网是无法登录访问的。在无公网Ip服务器上部署的web,默认情况下只能内网访问,公网…

TLE4943C/CH505C轮速传感器芯片的输出协议介绍

Infineon公司的TLE4943是一款集成式有源磁场传感器,适用于基于霍尔技术的车轮速度应用。它的基本功能是测量磁极轮或铁磁齿轮的速度。它具有使用AK协议进行通信的两线电流接口。该协议除了提供速度信号外,还提供其他信息,如车轮旋转方向和气隙…

java安装教程-windows

检查是否已经安装过jav打开cmd命令窗口 输入 java -v下载java安装包网址:https://www.oracle.com/java/technologies/downloads/安装java双击运行程序jdk-19_windows-x64_bin.exe,点击下一步进行安装可以更改安装路径,注意安装路径不能有中文…

【TypeScript】TS类型守卫(六)

🐱个人主页:不叫猫先生 🙋‍♂️作者简介:前端领域新星创作者、华为云享专家、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏&#xff…

独立开发变现周刊(第86期):月收入4000美元的日程规划器

分享独立开发、产品变现相关内容,每周五发布。目录1、NotionReads: 在Notion中管理你的阅读书籍2、Zaap.ai: 面向创作者的一站式工具3、microfeed: 开源的可自我托管的轻量级内容管理系统(CMS)4、Reactive Resume:一个免费的开源简历生成器5、一个月收入…

2019年1月政企终端安全态势分析报告

声明 本文是学习2019年1月政企终端安全态势分析报告. 下载地址 http://github5.com/view/55037而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 漏洞利用病毒攻击政企分析 奇安信终端安全实验室监测数据显示,2019年4月,有6.7%的…

JavaScript中的元编程

紧接上回,伴随着Reflect,Proxy降世,为js带来了更便捷的元编程! 什么是元编程?这词第一次听,有点懵,好像有点高级,这不得学一下装…进自己的知识库 概念 元编程是一种编程技术&…

【数据结构与算法】Collection接口迭代器

Java合集框架 数据结构是以某种形式将数据组织在一起的合集(collection)。数据结构不仅存储数据,还支持访问和处理数据的操作 在面向对象的思想里,一种数据结构也被认为是一个容器(container)或者容器对象…

【MySQL】MySQL表的七大约束

序号系列文章1【MySQL】MySQL介绍及安装2【MySQL】MySQL基本操作详解3【MySQL】MySQL基本数据类型4【MySQL】MySQL表的七大约束文章目录MySQL表的约束1,默认约束2,非空约束3,唯一约束4,主键约束5,自增约束6&#xff0c…

详细分析单调栈,及正确性证明

什么是单调栈 对于一个数组,需要对每个位置生成,左右两边离它最近的,比它小(或比它大)的位置在哪 例如: 如果对每个位置都遍历下左右两边,找到第一个比它小的位置,就是O(N ^ 2)的…

IPv6 时代如何防御 DDoS 攻击?

在互联网世界,每台联网的设备都被分配了一个用于标识和位置定义的 IP 地址。20 世纪 90 年代以来互联网的快速发展,联网设备所需的地址远远多于可用 IPv4 地址的数量,导致了 IPv4 地址耗尽。因此,协议 IPv6 的开发和部署已经刻不容…

从第三方平台导出大数据量本地Excel怎么解决性能问题?

对于日常需要做分析的我们来说,周期性需要从第三方系统导出数据,日积月累数据量越来愈大,由开始的几百条数据慢慢增至十几万甚至百万级的数据量,在本地Excel直接做分析汇总老是卡顿等半天,效率日益低下,每天…

连续四年发布科技趋势预测,他们在探索中国科技的“主干道”

,*本文配图由百度飞桨文心一格提供AI绘画技术支持。古希腊流传着一句谚语:智慧不仅是能够明察眼前,更要能够预测未来。身处科技界,一到年底年初我们就会看到各种各样的趋势预测。这些预测五花八门,神奇多变。但大多数科…

JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来3 —— 本地缓存变身分布式集群缓存,打破本地缓存天花板

大家好,又见面了。 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。 上一篇文章中,我们知晓了如何在项目中通过不同的…

【Python】Numpy处理多项式类Polynomial

文章目录构造函数求导和积分求根和反演采样与拟合其他方法构造函数 Numpy中提供了多项式模块,里面封装了一些用以快速解决多项式问题的类和函数,其中最重要类的自然是Polynomial,其构造函数为 class numpy.polynomial.polynomial.Polynomia…

list容器的底层结构(详述insert()与erase())

目录 一、带头结点的双向循环链表(list) 二、贯穿list容器的insert与erase接口​编辑 一、带头结点的双向循环链表(list) 二、贯穿list容器的insert与erase接口 通过在指定位置的元素之前插入新元素来扩展容器。 这有效地增加了…

520页(17万字)集团大数据平台整体解决方案-v1.0

【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容: 1.1.1 系统总体逻辑结构 4-14系…

Golang 面试题总结

一.基础部分 go语言的值类型和引用类型? 值类型:int、float、bool、string和数组这些类型都属于值类型。 值类型的变量直接指向存在内存中的值,值类型的变量的值存储在栈中。当使用 将一个变量的值赋给另一个变量时,如 j i ,实…