数据同步技术

article/2025/9/11 23:05:48

    

本次旨在分享数据同步技术的相关知识点,包括数据同步概述、数据同步工具、数据库、数据同步到大数据平台。

首先来介绍一下数据同步的概念:

        数据同步是为保持数据源目的地数据一致性而进行的数据传输、处理的过程。

数据同步的场景:

        1、主数据库与备份数据库之间的数据备份。

        2、主系统与子系统间的数据更新。

        3、属于同类型不同集群数据库间的数据同步。

        4、不同区域、不同数据库类型间的数据传输交换。

        5、大数据系统中数据从业务系统同步进入数据仓库、数据从数据仓库同步进入数据服务或者数据应用。


数据源数据类型包括:

        1、源于关系型数据库的结构化数据。(如MySQL、Oracle、DB2、SQL Server等);

        2、源于非关系型数据库的非结构化数据(如HBase、MongoDB等);

        3、源于文件系统的结构化或非结构化数据(如阿里云对象存储OSS、为文件存储NAS等);


        数据同步需要针对不同的数据类型及业务场景,选择不同的同步方式。

数据同步方式:

        1、直连同步

        2、数据文件同步

        3、数据库日志解析同步

①直连同步:直连同步是通过定义好的规范接口API和基于动态链接库的方式直接连接业务库。

 优点:配置简单,实现容易,比较适合操作型业务系统的数据同步。

缺点:对源系统的性能影响较大,当执行大批量数据同步时会降低业务系统的性能。


②数据文件同步:是指通过约定好的文件编码、大小、格式等,直接从源系统生成数据的文本文件。由专门的文件服务器,加载到目标数据库系统中,当数据源包含多个异构的数据库系统时,这种方式比较简单、适用。


③数据库日志解析同步:数据库日志解析同步是指通过解析日志文件获取发生变更的数据,从而满足在增量数据同步的需求。

优点:性能好,效率高,实现了实时与准实时同步的能力。

缺点:投入较大,需要在源数据库与目标数据库之间部署一个系统实施抽取数据,数据漂移和遗漏。


        根据数据同步时延性要求的不同,数据同步可以分为离线批量数据同步和实时数据同步。

        离线数据同步通常是针对结构化、半结构化批量数据进行同步。而实时数据通常是针对数据流进行同步处理。


下面来介绍一下常用的数据同步工具。

离线数据同步工具

Sqoop:是一款开源的工具,主要用于在Hadoop与传统的关系数据库间进行数据同步。

Kettle:开源的ETL工具,数据抽取高效稳定。

DataX:阿里云数据同步产品,是一个异构数据源离线同步工具,提供各种数据存储的读写插件,多线程执行,适用简单。致力于实现各种异构数据源间的稳定高效的数据源同步功能。

实时数据同步工具有OGG、Debezium、DTS等

OGG:OGG是跨平台异构数据库之间的数据同步工具。

Debezium:是监控是数据库的日志变化,通过对行级日志的处理来达到数据同步。

DTS:是阿里云数据同步产品,实现数据源之间的数据实时同步。


数据库数据同步到大数据平台

        将关系型数据库同步到大数据平台的整体逻辑就是,从MySQL或者Oracle等关系型数据库使用数据同步工具,将数据同步到Hadoop或者阿里云,MaxCompute这样的大数据平台。

        在这里Sqoop工具的含义是将“SQL到Hadoop和Hadoop到SQL”,是Hadoop和关系型数据库之间数据迁移的工具,可以使用Sqoop将数据从关系型数据库导入到Hadoop的HDFS、Hive HBase等。或者反过来,将数据从HDFS、Hive、HBase导出到MySQL、Oracle等关系型数据库中。

 Sqoop import数据导入参数

         通过参数connect、username、password等设置源数据库的连接方式,通过table、where、columns、query等参数设置数据来源,通过target-dir、fields-terminated-by等参数设置目标文件。通过num-mappers等参数设置执行过程。

        我们来举个例子,假如将MySQL数据库中的emp表中的数据导入到Hadoop集群HDFS文件中,在此操作过程中,将emp表中满足条件的所有数据导入到Hadoop的HDFS文件中,emp表中每一行数据对应hdfs文件中的每一行数据,文件之中数据字段用特定的分隔符分隔开。(默认为逗号)

 也可以通过fields-terminated-by参数指定分隔。

        默认情况下数据导入是全量的,即将关系型数据库中所有满足条件的数据到导入到HDFS中,但在生产环境中系统可能会定期从与业务相关的关系型数据库,向Hadoop导入数据,导入后进行后续离线分析,此时不可能再将所有数据重新导入一遍,而是采用另一种导入模式,即增量导入。

        增量导入分为两种,一种是基于序列值增量导入,第二种是基于时间戳的增量导入。进行增量导入之前,需要先进行一次全量导入,后续的增量导入可以大于指定序列值对应的数据或指定时间戳之后的数据。

总结

(分享日常学习内容,在这个平台当作自己的学习笔记。后续会一直更新,有兴趣的同学欢迎一起学习。)(如有错误欢迎各位技术大佬指正。)(如有意问欢迎私信,看到会第一时间回复的)


http://chatgpt.dhexx.cn/article/hMla5E2D.shtml

相关文章

几种常见的数据同步方式

数据仓库的特性之一是集成,即首先把未经过加工处理的、不同来源的、不同形式的数据同步到ODS层,一般情况下,这些ODS层数据包括日志数据和业务DB数据。对于业务DB数据而言(比如存储在MySQL中),将数据采集并导入到数仓中(通常是Hive…

内网穿透frpc ,frps的使用

情况是这样的,公司内网中一个设备接了路由器下发的地址,内网地址是192.168.1.100,可以访问我的台式机,但我的台式机访问192.168.1.100是无法连通的 这种情况下,在我机器上运行frps.exe,frps.ini如下 [com…

Frp内网穿透——frps服务端部署

由于现在IPv4地址的短缺,在国内不可能每个设备都会分配到一个公网IP,因此从公网中访问自己的私有设备向来是一件难事儿。本次带大家了解一下frp内网穿透的服务端教学,让你也能够部署一个内网穿透服务。 frp简介 通俗的说,frp是一…

记一次使用frpc/frps进行内网穿透

1. 前提条件: 有一个公网ip,这里用x.x.x.x代替 2. 配置 【服务器端】 S_NUMBER是一个端口号 #服务端口 bind_port S_NUMBER #监听地址 bind_addr 0.0.0.0 #认证token token xxxx【客户端】(也就是需要被内网穿透的服务器) C_NUMBER是一个端口号 …

内网穿透神器Frps一键安装脚本及设置教程

frps 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。 *因为frps是go语言写的,所以在路由器上使用的时候&#…

frpc和frps 内网穿透越狱插件

内网穿透、frp、frpc、frps https://zhaoboy9692.github.io/repo 越狱源 https://zhaoboy9692.github.io/repo 苦于在ios越狱下没有frp穿透使用 特地开发了的越狱插件 基于最新frp0.48编译 ios14.6测试没问题 有问题及时反馈

使用frps和frpc实现内网穿透

内网穿透的作用包括跨网段访问一个局域网中的一台主机。 如上图,假设我们想要通过主机A访问主机C,但是主机A和主机C绑定的都是私有ip地址,所以它们之间是无法直接进行通信的。要想使得A和C能够进行通信,就需要用到内网穿透的技术。…

frp服务端(frps) 安装及使用

FRP官方文档 https://gofrp.org/docs/ 服务端安装 环境 ubuntu 22.04 下载 Github 的 Release 中下载到最新版本的客户端和服务端二进制文件 可以指定你的目录,这里用 /usr/local/frp cd /usr/local/frp wget https://github.com/fatedier/frp/releases/dow…

CentOS Frp内网穿透:Frps+Nginx反向代理

目录 服务器使用配置 一、Nginx安装 二、Frps安装 三、frpc安装 服务器使用配置 CentOS 7.6 CPU: 2核 内存: 4GB 一、Nginx安装 参考《Centos配置Nginxtomcat》,这里就不做过多阐述 二、Frps安装 这里使用的是阿里源 #下载脚本 wget https://code.aliyun.com…

nginx反向代理frps frpc穿透

frps 和 nginx 在同一台机器,假设ip192.168.166.17 1. frps服务器端配置 测试时,frps服务器跟nginx在同一台机器(192.168.166.17),理论上可以不在同一台机器,nginx可以代理http请求,发给frps服务端。 frps.ini # fr…

利用空闲服务器搭建frps服务端-实现穿透代理

利用frps代理Tcp或者udp或其它类型的连接 1、什么是frps/frpc frps是代理的服务端、frpc是代理的客户端,使用方数据传输到服务端,服务端再将数据传输到提供方,从而达到相互访问的目的。 2、什么是穿透 穿透就是客户端A和客户端B都没有公网…

利用frps进行内网穿透

这里使用的是传统穿透方法,需要一个有公网ip的中转节点去告知 看最下面,用最新版的frps 1、注意 服务器和客户机之间的数据传输全部经过中转服务器,传输速度将受制于中转服务器的上下行带宽。 2、穿透原理 其实就是客户端A绑定端口发送数…

使用frps建立内网穿透从而实现外界连接内网电脑的全教程

1. 说明 我有台服务器,但它在内网里,我需要通过ssh方式访问它,目前可以采用:向日葵等商业软件,RustDesk等开源软件。或者,《自建内网穿透服务器》。 本教程把实现上述功能的所有步骤罗列出来,以…

frp 内网穿透服务器搭建frps服务端和frpc客户端

1 工具 一台具有公网ip的服务器 2 下载frp frp下载地址 打开上面的frp下载地址 公网服务器上 打开下载文件 frps是服务端,在公网服务器上部署 frpc是客户端,在需要内网穿透的电脑上部署 1. frps配置 首先我这用的是win公网服务器 (linux…

内网穿透配置(FRP)

目录 0、内网穿透的一般场景 1、内网穿透配置 a、frp软件下载 b、frp 的配置 3、通过 frp 实现远程连接 4、设置 frpc / frps 开机启动的方法 5、设置frp安全连接的方法 0、内网穿透的一般场景 放假回家怎么远程连接学校实验室的服务器? 先分析一波&#x…

FRP入门篇

目录 一、前言 1、概述 2、原理 3、支持功能 4、适用场景 二、环境准备 三、使用 1、安装包下载 2、服务端部署 2.1、上传安装包 2.3、启动服务端 3、客户端部署 3.1、代理服务准备 3.2、上传安装包 3.3、客户端配置 3.4、启动客户端 4、功能验证 一、前言 1、…

frps内网穿透

1 原理讲解 frp工作原理 服务端运行,监听一个主端口,等待客户端的连接; 客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;服务端fork新的进程监听客户端指定的端口; 外网用户连接到客户…

2021大数据架构、高性能、数据治理面试题

2021大数据架构、高性能、数据治理面试题 需要自取:https://url80.ctfile.com/f/32319880-516640957-aba608 (访问密码:1000)

Java架构师和大数据架构师的区别是什么?哪个更有发展前景?

[Java]是我们耳熟能详的编程语言,[大数据]更是当今科技的明星技术,那Java和Java大数据架构学习的内容是一样的吗?两者有什么区别呢?今天千锋广州Java的老师就从Java和大数据架构的以下方面谈谈两者的区别。 [ 01 [架构师](需要考…

大数据架构发展的20年

随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论就一直不断。有人说数据湖是下一代大数据平台,各大云厂商也在纷纷的提出自己的数据湖解决方案,一些云数仓产品也增加了和数据湖联动的特性。 但是数据仓库和数据湖的区别…