企业数字化转型:数据集成是成功的关键

news2024/11/15 23:37:42

按照数据的生命周期,我们通常将大数据技术分为数据集成、数据存储、批/流处理、数据查询与分析、数据调度与编排、数据开发、BI  7 个部分。

数据集成是什么?

可以看到数据集成在数据生命周期的最前面位置,它负责将多个来自不同数据源的数据聚合存放在一个数据存储中(如数据仓库/数据湖),组合为用户提供单一统一视图,可以兼顾数据的增长量及所有不同的格式,合并所有类型的数据方便了后续的数据分析和挖掘工作。

做过数据工程的伙伴都知道,大数据项目中 90% 甚至更多的工作是和数据集成相关,数据集成有广泛的含义,包括数据清洗、数据抽取、数据转换、数据同步/复制 等操作。现如今的大数据生态系统已经发展得相当复杂(如下图),数据来源多种多样,如何把这么多来源的数据高效地聚合到数据湖/仓中,是数据集成重点要解决的问题, 也是数据集成的价值所在

大数据生态系统概况

数据集成的业务场

数据集成服务的常用业务场景如下:

  1. 同构/异构数据源间的同步:用户的原始数据需要转移存储,或利用目标存储系统的查询、分析能力,如 Hive 数据、本地数据需要同步到 Snowflake、Clickhouse 等做快速查询;
  2. 数据上云:用户需要把云下的数据快速安全的迁移到云上存储并做进一步的业务分析,如线下 MySQL、Postgre 等到云上 RDS。

基于这些场景,数据集成一直以来都扮演着数据搬运工的角色,为各种各样的数据同步需求提供了强大高效的解决方案

数据集成的常见策略

数据集成的两种常见策略:ETL 和 ELT

数据集成是数据工程师日常最耗时的工作之一。 什么是 ETL 呢? ETL 是传统的数据集成领域的一组特定流程,其中有三个重要阶段: Extract(提取) Transform(转换)Load(加载),它包括了数据抽取、转换、加载三个过程。ETL 是进行数据分析和挖掘工作前的准备过程。

先普及一下 ETL ELT 的概念,

ETL 的过程为提取(Extract)→ 转换(Transform)→  加载(Load), 在数据源抽取后首先进行转换,然后将转换的结果写入目标地(如数据仓库)

ELT 的过程则是提取(Extract)→ 加载(Load)→ 转换(Transform),在抽取后将结果先写入目标地(数据仓库/数据湖), 然后利用数据仓库的分析能力或者如 Spark Presto 等引擎来完成转换操作。

没错,就是 Transform 和 Load 先后次序的问题,但影响非常不一样的,ELT 和 ETL 相比,最大的区别是 "重抽取和加载, 轻转换",从而可以用更轻量、快捷的搭建起一个数据湖/仓平台。使用 ELT 策略,在提取完成之后, 数据加载会立即开始。一方面更快速和高效,另一方面 ELT 允许数据分析人员访问整个原始数据,而不是经过数据工程处理后的二手收据,这为分析师提供了更大的灵活性,使之能更好地支持业务。

具体来说,在过去,由于计算和存储的高成本,ETL 方法曾是必要的。当年典型的 ETL 工具有:

商业软件:Informatica PowerCenterIBM InfoSphere DataStage Microsoft SQL Server Integration Services

开源软件:KettleTalendSqoop

可以说这些软件都曾非常流行。但现在 ETL 正在面临着的问题:

1、不灵活。ETL 本质上是非常僵化的,它不仅需要数据工程师对原始数据按照数据仓库的规范进行层层处理,也迫使数据分析师提前知道要如何分析数据、如何产生报告。

2、不直观。对数据进行的每一次转换(Transform) 都会使一些原始信息 "消失"。数据分析师不能看到数据仓库中的所有数据,通常只能看到数据汇总层及数据集市层的数据,并且 ETL 的处理通常是十分耗时,经过层层的 ETL,时效性也很差。

3、不能自助使用。建立一个 ETL  Data Pipeline 通常超出数据分析师的技术能力,需要工程师的参与,这无疑加大了协作的代价。

随着硬件存储成本的急剧下降,在使用数据(L)之前,没有必要进行数据转换(T) 了,传统的 ETL 开始转变为 ELT。这使数据分析师能够以自主的方式完成更好的工作,具体来说,ELT 带来的 2 个明显好处是:

1、支持数据分析师的敏捷决策。原始数据被直接 Load 到数据仓库/湖中,构成一个单一的真实来源,数据分析师可以根据需要对数据 进行转换。他们将始终能够回到原始数据,不会受到可能损害数据完整性的转换的影响。这使得商业智能过程变得无比灵活和安全。

2ELT 降低了整个公司的技术难度。ELT 方法搭配 LookerTableau 等商业或者开源的 BI 工具可以被非专业技术用户所使用。

ELT 路线的开源软件有:AirbyteApache SeaTunnel。相信大家对 Airbyte 已经比较熟悉,这里我着重说说 Apache 基金会旗下开源的 SeaTunnel(Incubator) 这个已经在 Apache 孵化器中孵化了快 1 年的数据集成项目。

What is Apache SeaTunnel?

SeaTunnel is a very easy-to-use ultra-high-performance data integration platform that supports real-time synchronization of massive data. It can synchronize tens of billions of data stably and efficiently every day, and has been used in the production of nearly 100 companies. 

SeaTunnel 的特性

  1. 丰富易扩展的 Connector:SeaTunnel提供了不依赖具体执行引擎的 Connector API,SeaTunnel 提供了一套不依赖于具体执行引擎的 SeaTunnel Connector API,基于这套API开发的 Connector(Source, Transform, Sink) 可以运行在多种不同的引擎上,目前支持 SeaTunnel Engine, Flink, Spark。
  2. Connector 插件化:插件化的设计让用户可以方便的开发自己的 Connector 并轻松集成到 SeaTunnel 项目中,目前 SeaTunnel 已经支持的 Connector 有 80 多个,这个数量正在以极快的速度增长。目前已经支持的连接器列表见下图。
  3. 批流一体:基于 SeaTunnel Connector API 开发的连接器可以完美兼容离线同步、实时同步、全量同步、增量同步等多种场景。这在极大程度上降低了数据集成任务管理的困难。
  4. 支持分布式快照算法,保证数据一致性。
  5. 多引擎支持:SeaTunnel 默认使用 SeaTunnel Engine 进行数据同步。同时为了适配企业已有的技术组件,SeaTunnel 还同时支持使用 Flink 或者 Spark 做为 Connector 的运行时执行引擎,SeaTunnel 支持多个 Spark 和 Flink 版本。
  6. JDBC 多路复用,数据库日志多表解析:SeaTunnel 支持多表或整库同步,解决 JDBC 连接数过多的问题;支持多表或整库数据库日志读取解析,解决 CDC 多表同步场景下需要重复读取和解析日志的问题。
  7. 高吞吐、低延时:SeaTunnel 支持并行读取和写入,提供了高吞吐低延时稳定可靠的数据同步能力。
  8. 完善的实时监控:SeaTunnel 正在支持数据同步过程中每一步的详细监控信息,让用户轻松了解同步任务读取和写入的数据条数、数据大小、QPS 等信息。
  9. 支持编码和画布设计两种作业开发方式:SeaTunnel web 项目中提供了作业可视化管理、调度、运行和监控能力。

SeaTunnel Connectors

SeaTunnel Connector 使用 Plugin 机制, 非常容易扩展 当前 SeaTunnel 支持 80+ SourceSink(Target) Connector, 并且在快速发展中。

作为现代数据技术栈中的数据集成产品 - SeaTunnel 产品架构如下:

SeaTunnel 运行流程

SeaTunnel 的运行时流程如上图,用户配置作业信息并选择执行引擎提交作业,Source Connector 负责并行数据数据并将数据发送给下游 Transform 或直接发送给 Sink,由 Sink 将数据写入目的地。值得注意的是,Source Transform Sink 都是可以由您自己轻松开发扩展的。除了使用 SeaTunnel 自己的引擎外,您也可以选择使用 Flink Spark 引擎,这种情况下 SeaTunnel 会将 Connector 包装成 Flink Spark 的程序,并提交到 Flink Spark 集群中运行。

Quick Start for SeaTunnel

请参考官网:Set Up with Locally | Apache SeaTunnel 

You could start the application by the following commands

  • Spark
  • Flink
  • SeaTunnel Engine

cd "apache-seatunnel-incubating-${version}"
./bin/seatunnel.sh \
--config ./config/seatunnel.streaming.conf.template -e local

当然也可以通过 Kubernetes 等部署方式来体验。

写到这里,数据集成还包括一种数据虚拟化策略,数据虚拟化的优点是通过统一的视图来访问不同数据源,不需要对不同来源的数据源进行架构调整,另外对数据安全性要求较高的企业,不允许对数据进行复制的场景下,数据虚拟化是很好的解决方案。但数据虚拟化有以下待解决问题:无法解决性能和数据质量问题,随着企业数据量的不断增大,性能问题是所有数据集成都面临的问题,由于设计思路的缺陷,数据虚拟化在这方面虽有快速进展,但也无法和一些数据集成技术相比。数据质量管控意味着需要按照数据校验规则执行判断,这也不是数据虚拟化优先考虑的因素。这就导致数据虚拟化模式不适用对数据质量要求较高,需要进行大量数据转换、加工的场景如数据治理等。

关于数据虚拟化这个话题暂时到这里

小结

数据集成是消除企业信息孤岛,实现数据共享,是现代数据技术栈成功的关键,进而为企业实现数据治理提供扎实的 ”hardcore“

数据集成可以将企业本地数据、SaaS 数据等不同孤岛的数据连接起来,让数据不在孤立,从而挖掘出更大的价值。

数据集成可以让企业的应用、流程、系统、组织和人员等关键要素都协同起来,提高企业业务效率。

数据集成可以将不同类型的数据聚合,让用户可以快速获得有用信息并迅速分析提炼出有价值的信息,从而提升数字化决策的成功率。

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

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

相关文章

[附源码]计算机毕业设计Python保护濒危动物公益网站(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

vue3 中的响应式设计原理

Vue 3 中的响应式原理可谓是非常之重要,通过学习 Vue3 的响应式原理,不仅能让我们学习到 Vue.js 的一些设计模式和思想,还能帮助我们提高项目开发效率和代码调试能力。 一、Vue 3 响应式使用 1. Vue 3 中的使用 当我们在学习 Vue 3 的时候&…

51单片机——动态数码管实验,小白讲解,相互学习

多位数码管介绍: 多位数码管,即两个或两个以上单个数码管并列集中在一起形成一体的数码管。当多位一体时,他们内部的公共端是独立的,二负责显示什么数字的段线(a-dp)全部是连接在一起的,独立的公…

中国水文地质图集

概述 水文地质图集部分来源于 《中华人民共和国水文地质图集》(地质出版社1979年版)的GIS数字化版(数据格式:JPEG),图集是由全国性、地区性和分省/自治区/直辖市等三类图幅组成,共68幅图(实际收集到55幅图)。 主要内容包括:水文地质图、地下热水分布图、水化学图、…

数据结构C语言版 —— 栈的实现

文章目录栈1. 基本概念2. 栈的实现1) 初始化栈2) 栈的扩容3) 判断栈是否为空4) 入栈5) 出栈6) 获取栈顶元素7) 获取栈中元素个数8) 销毁栈栈 1. 基本概念 栈(Stack):一种特殊的线性表,其只限定于在表尾进行插入或者删除操作。进行数据插入和删除操作的…

RocketMq02_复制刷盘、Broker常用模式、磁盘阵列、集群搭建

文章目录①. 单机版本安装与启动②. 控制台的安装与启动③. 复制刷盘、Broker集群模式④. 磁盘阵列 - RAID⑤.JBOD、RAID0⑥. RAID1、RAID10、01⑦. 搭建集群 - 异步两主两从①. 单机版本安装与启动 ①. 系统要求是64位的,JDK要求是1.8及其以上版本的 ②. 将下载的安装包上传到…

NFT及智能合约开发

文章目录1.Web3.01.1 GameFi1.2 DeFi1.3 dApp2.NFT2.1 NFT Applications2.2 NFT Earning2.3 NFT结构2.3 IPFS2.4 Wallet3.Smart Contract3.1 Smart Contract System3.2 Smart Contract Development3.2.1 Language3.2.2 IDE3.2.3 BlockChain3.2.4 FrontEnd3.2.5 NFT Test WebSit…

《Mysql是怎样运行的》

客户端查询mysql版本:select version(); 1 第1章 装作自己是个小白-重新认识MySQL 1.1 MySQL的客户端/服务器架构每个进程都有一个唯一的编号,称为 进程ID ,英文名叫 PID ,这个编号是在我们启动程序的时候由操作系统随…

IDEA运行SpringBoot项目常见问题【统一答疑】

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、…

PRISEMI芯导科技推出PDG7115直驱型E-Mode氮化镓功率IC

PRISEMI芯导科技推出PDG7115直驱型E-Mode氮化镓功率IC 氮化镓以开关速度快,导阻低,低输入输出电荷的优势,应用在快充上逐渐取代了传统的高压硅MOS管。使用氮化镓取代硅MOS管,不仅降低了开关损耗,提高充电器的转换效率…

SpringBoot RabbitMq 六大模式

目录 依赖、配置 简单队列 模型 代码示例 工作队列 模型 代码示例 订阅模式 模型 代码示例 路由模式 模型 代码示例 主题模式 模型 代码示例 RPC 依赖、配置 依赖&#xff1a; <dependency> <groupId>org.springframework.boot</groupId&g…

三分查找算法

目录 一 算法简介 详细介绍 两种基本方法 二 算法实践 1&#xff09;实数三分 拓展&#xff1a;秦九韶算法计算多项式 方法1&#xff1a;直接模拟累加 方法二&#xff1a;根据秦九韶算法 1&#xff09;模板三分法 题目描述 解法 2&#xff09;三分求极值 题目描述 …

3D激光里程计其四:点云线面特征提取

3D激光里程计其四&#xff1a;点云线面特征提取1. 点云线面特征提取1.1 按线数分割1.2 计算曲率1.3 按曲率大小筛选特征点2. 基于线面特征的位姿变化2.1 帧间关联2.1.1 点云位姿转换2.1.2 线特征关联2.1.3 面特征关联2.2 残差函数2.2.1 线特征2.2.2 面特征2.3 位姿优化2.3.1 线…

数据结构——二叉树2.0

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;数据结构——二叉树 &#x1f525;<3>创作者&#xff1a;我的代码爱吃辣 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<5>前言&#xff1a;上期讲了…

尚医通-医院接口设置(七)

&#xff08;1&#xff09;后台系统-医院设置接口-需求和准备 &#xff08;2&#xff09;后台系统-医院设置接口-创建基础类 &#xff08;3&#xff09;医院设置接口-查询和逻辑删除 &#xff08;4&#xff09;医院的设置接口-统一返回结果定义 &#xff08;5&#xff09;医…

[附源码]Python计算机毕业设计Django校园代取快递系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

知到/智慧树——大学生心理健康(华东政法大学)参考答案

目录 注&#xff1a;有些图片上传异常&#xff0c;请以参考答案为准&#xff0c;不要以蓝色选项为全部答案。 第一章测试 第二章测试 第三章测试 第四章测试 第五章测试 第六章测试 第七章测试 第八章测试 第九章测试 第十章测试 第十一章测试 第十二章测试 第一章…

传统技术如何阻碍零信任以及如何应对

随着组织采用零信任安全模型&#xff0c;传统技术制造了一些障碍。事实上&#xff0c;根据最近的一项研究&#xff0c;更换或重建现有的遗留基础设施是实施零信任的最大挑战。 通用动力公司的 2022 年零信任研究报告对美国联邦、民事和国防机构的 300 名 IT 和项目经理进行了调…

计算机毕设Python+Vue兴澜幼儿园管理系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

重定向和缓冲区

文章目录一个奇怪的现象缓冲区详解如何理解缓冲区缓冲区是谁给我提供的&#xff1f;缓冲区的源码体现案例&#xff1a;模拟实现FILE结构体第二个奇怪的现象重定向命令行上使用重定向操作dup2系统调用接口stdout和stderror一个奇怪的现象 首先&#xff0c;我们来看这样一段代码…