「ETL实战」搭建数仓,解决多源业务系统关联分析难题(定制化业务)

在大数据分析盛行的今天,关联分析作为数据挖掘和业务洞察的重要手段,受到了极大关注。然而,随着数据量的激增和源业务系统的复杂性增加,关联分析的性能问题逐渐成为了一个不可忽视的挑战。

本文将介绍借助ETL工具,如何搭建一个高效的离线数仓,以优化关联分析性能,并减轻对多个源业务系统的压力同时,还将通过一个实际应用案例来进一步说明这种方案的实用性和效果。

第一部分离线数仓
为什么要建离线数仓
一般怎么搭建?
第二部分实战案例:家居定制化

场景

挑战

实战方案

实施效果

场景价值

离线数仓

离线数仓是一个用于存储、管理和处理大量历史数据的系统。与传统的在线业务系统不同,离线数仓更注重数据的批处理、分析和挖掘,而不是实时的数据读写操作。通过搭建一个高效的离线数仓,我们可以将大量的历史数据集中存储、统一处理,从而大大提高关联分析的效率。

为什么要建离线数仓

现在大部分公司信息化水平都提升很多,有着多个源业务系统(如:ERP、MES、金蝶),多个源库(MySQL、SQL Server、Oracle、达梦、MongoDB 等等)。

企业在多个系统进行关联分析时,以数据分析直连多个业务系统进行分析的方式,中间涉及大量数据抽取读数据)、数据转换,不仅影响分析性能,同时对业务库造成很大性能压力,严重甚至会引发业务系统宕机。

最后,报表性能差,数据调用耗时耗力,领导不能及时掌握业务数据动态,一线部门决策迟滞,可能的历史数据损失也将使企业积累的数据资产流失。

这时,IT部门肯定是压力最大的,所以在选择数据运维、架构方式上就需要

“深谋远虑”——建个离线数仓,让业务系统读写分离,分担压力

离线数仓一般怎么搭建?

1、数据源梳理:需要明确数据源,包括各个业务系统的数据表、字段、数据格式等,为后续的数据抽取、转换和加载(ETL)过程做好准备。

2、数据抽取:利用ETL工具(FineDataLink\kettle等),从各个源业务系统中抽取所需的数据。在数据抽取中,需注意数据的完整性、准确性和一致性。

3、数据转换:对抽取出来的数据进行清洗、转换和整合,以符合离线数仓的存储格式和关联分析的需求。数据转换过程中可能涉及字段的映射、数据类型的转换、空值的处理等。

4、数据加载:将转换后的数据加载到离线数仓中。根据数据的特点和关联分析的需求,选择合适的存储引擎和表结构,如分布式数据库、列式存储等。

5、数据校验:在数据加载完成后,需进行数据校验。通过对比源数据和离线数仓中的数据,检查数据是否一致、是否存在缺失或错误等情况。

话不多说,我们上案例

场景

X家居集团自创立以来,始终秉承“创新家居,品质生活”理念,致力于为消费者提供一站式、高品质的家居生活解决方案。作为行业内的领军企业,强势引领全屋定制、橱柜家具、厨房电器等多领域的协同发展,形成了一站式的现代家居产业链。

  1. 业务库种类多:业务库多达十几个,数据库类型多,Oracle、MySQL、SQL Server
  2. 信息化程度高,系统多:信息化系统覆盖前、后端。有下单- 拆单调度-订单调度等系统(分发给各基地生产-生成采集系统-物流发货系统)
  3. 数据量大:数据量级覆盖百万级、千万级、十亿级别,一天大概100W条。
  • 挑战

随着[定制化业务]的发展,橱柜部门与研发中心对多源业务系统的数据关联分析需求日益增加

橱柜部门需制作橱柜材料看板,关联花色、颜色、材料等属性及客户信息与维度表,形成宽表以支持BI分析。研发中心则通过BI看板展示板件材料信息,评估淘汰新增及属性欢迎度。)

然而,直连多源业务系统进行关联分析存在以下问题:

1、BI看板直连业务数据,加载更新速度慢:由于直接连接业务库获取数据,数据量庞大(约20-30亿条),导致BI看板数据加载和更新时间长达7-8小时,甚至有时直到第二天早上数据仍未更新完成。

2、关联分析直连多系统,报表性能压力大:BI看板直接连接多个业务系统进行关联分析,不仅对分析性能产生负面影响,还对业务库造成巨大的性能压力,导致前端报表加载缓慢,重启更新代价高昂。

3、数据孤岛,打通成本高:关联分析所需的目标数据分散在多个业务系统(如订单系统、ERP等)中,存在数据孤岛问题。通过代码或人工导出数据的方式不仅时间人力成本高,而且难以维护。

实战

解决方案:搭建高效离线数仓

为了解决上述问题,IT部门经理决定采用一套基于FineDataLink(FDL)建设的高效离线数仓方案。该方案主要包括以下内容:

读写分离:采用数仓完成读写分离,将BI看板所需的高纬度汇总数据前置处理在数仓中完成,避免直接连接业务库。

数据同步:使用FDL进行批处理和流处理,从业务库获取数据并将其同步到数仓中。具体分层方式为:ODS层(原始数据层)- DW层(数据仓库层,包括DWD层-数据明细层和DWM层-数据汇总层)- ADS层(应用数据服务层)。

1、ODS层:制造中心将多个业务系统(如订单、物流和财务系统)数据进行实时同步,同时将业务数据维度退化和清洗

2、 DWD层: 制造中心 依据业务处理逻辑,对20-30张表做关联形成宽表。

从DWD层中取数据,对不同维度做轻度汇总,汇总后数据量从20-30亿行降到8-9亿行

3、DWM层:该层负责对数据进行更细致的汇总——橱柜部门匹配自定义的维度表,生成材料数量、面积等数据的BI看板。

4、ADS层:橱柜部门将制造中心的DWM层的板件信息,与客户定制化需求进行匹配,汇总后数据量从8-9亿行降到约1亿行。

5、BI看板连接ADS层:最后,在BI里面根据不同的维度对轻度汇总表再做一层汇总,形成自助数据集

汇总后不同维度对应的数据集

数据降维:通过数仓的分层设计,对原始数据进行清洗、转换、整合和汇总等操作,将原始数据量从20-30亿行降至约1亿行,提高了数据分析的效率和准确性。

实施效果

通过搭建基于FDL的离线数仓并实施读写分离方案后,该家居集团取得了以下显著效果:

1、BI可视化报表的使用更稳定:由于数据量的大幅减少(从20-30亿行降至约1亿行)和数仓的高效处理,BI可视化报表的秒级呈现,使用更加稳定可靠。

2、数据的决策分析更有力:经过数仓处理和降维的数据质量更高,为橱柜部门和研发部门的决策分析提供了更加准确和有力的支持。

3、关联分析需求快速满足:数仓的读写分离和前置处理满足了橱柜部门和研发部门对关联分析的快速需求,为定制化业务的发展插上了腾飞的翅膀。

场景价值

解决多系统直连性能难题

基于FineDataLink(FDL),对接各个业务系统的数据,进行离线数仓的搭建。这种读写分离的操作,减轻了对业务系统的压力,同时提高了数据质量。

数出同源,及时准确

建立了统一的数据仓库,原始的20-30亿数据处理后,形成了约8亿数据,经过进一步汇总后,仅有约1亿数据用于BI展示。这不仅加快了BI看板(类似tableau)的展示速度,同时保证了数据一致性和准确性。

低代码、高可用、高可维护

通过整合多源异构数据,无需复杂代码或人工导出,降低了数据获取的成本和难度。同时,数仓的架构设计使得数据具有高可用性和高可维护性,为公司的业务发展提供了坚实的数据支持。

综上,借助ETL工具,搭建一个高效的离线数仓,以优化关联分析性能,能减轻对多个源业务系统的压力,预防宕机,提高报表、看板展示速度,帮助业务赋能。

希望本文的分享能帮到你~

文章推荐:

  扫盲系列(3):数据仓库架构详解_cdm层-CSDN博客 

  扫盲系列(4):数据仓库ETL流程和ETL工具推荐-CSDN博客

「ETL趋势」FDL数据中心库/表查看和调试功能上线、数据源新增支持MongoDB写入-CSDN博客

技术文档参考:FineDataLink文档

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Go 语言基础之常用包【flag、time、strconv、io】

1、命令行参数包 flag flag 包就是一个用来解析命令行参数的工具。 1.1、os.Args import ("fmt""os" )func main() {if len(os.Args) > 0 {for index, arg : range os.Args {fmt.Printf("args[%d]%v\n", index, arg)}} } 运行结果&#…

Windows程序设计课程作业-2(音乐文件播放功能)

目录 1、作业内容 要求1: 提示: 要求2: 提示: 作业提交方式: 2、主要思路 1)准备工作 2)提取音乐文件功能 3)选择音乐进行播放 4)异常信息进行处理 5)停止播…

【最新点云数据增强综述】深度学习点云数据增强技术的进展

深度学习(DL)已成为点云分析任务(如检测、分割和分类)的主流和有效方法之一。为了减少深度学习模型训练过程中的过拟合,提高模型性能,尤其是在训练数据的数量和/或多样性有限的情况下,增强往往至关重要。虽然各种点云数据增强方法已被广泛应用于不同的点云处理任务中,但…

[muduo网络库]——muduo库的Reactor模型(剖析muduo网络库核心部分、设计思想)

一、前言 在学习 C 服务端的过程中,必不可少的一项就是熟悉一个网络库,包括网络库的应用和其底层实现。我们熟知的网络库有 libevent、libev、muduo、Netty 等,其中 muduo 是由陈硕大佬个人开发的 TCP 网络库,最近跟着课程正在深…

Springboot+Vue项目-基于Java+MySQL的车辆管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

Java方法和数组

方法 Java中的方法就是c语言中的函数。 方法的定义 定义格式如下 修饰符 返回值 方法名([参数列表]){代码块[return 返回值;] } //方括号[]括起来代表可以没有,不是必须有的方法名采用小驼峰命名(就是有多个单词,第一个单词首字母小写其…

Redis学习1——redis简介、基础

介绍 redis简介 Redis(Remote Dictonary Server) 是由Salvatore Sanfilippo开发的key-value缓存数据库,基于C语言开发。目前市面上,Redis和MongoDB是当前使用最广泛的NoSQL,而就Redis技术而言,它的性能十分优越,可以…

回溯法、全排列、子集等

回溯法 感想:回溯算法本质是一个循环,有点像while循环 一些回溯法(递归)的经典应用 1.全排列 2.子集 其实上面两个点,也是对应着高中数学里面的“排列”与“组合” 1.全排列问题 给定一个集合S{a,b,c}&#xff0…

mysql数据库标识符的使用

ddl CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL,userName varchar(20) DEFAULT NULL,pwd varchar(36) DEFAULT NULL,phone varchar(11) DEFAULT NULL,age tinyint(3) unsigned DEFAULT NULL,sex char(2) DEFAU…

crmeb的分销推广如何用

CRMBE分销推广说明 1、CRMEB分销模式 分销模式: 指定分销、人人分销、满额分销 指定分销: 用户默认无分销权限,需要后台开通分销权限后,才可以通过推广下级获得返佣; 人人分销: 用户在商城注册后自动获得分…

SpringBoot的图片上传

简介 该文档旨在介绍一个基于Spring Boot框架的简单文件上传功能的实现方式。本文档将详细介绍相关代码的功能和配置以及如何使用它们。 样例 技术栈 Spring Boot:一个用于快速开发基于Spring的应用程序的框架。Thymeleaf:一个用于在Web应用程序中创建…

超越机械抓手:看多指机器人如何灵活运用触觉?

论文标题: Learning Visuotactile Skills with Two Multifingered Hands 论文作者: Toru Lin, Yu Zhang, Qiyang Li, Haozhi Qi, Brent Yi, Sergey Levine, and Jitendra Malik 1. 机器人新挑战:多指手指操作 在自动化和智能化日益普及的…

winform图书管理系统

winform图书管理系统说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 图书管理员 读者管理 图书管理 添加 修改 删除 查看 入库 书册列表 书册管理用户管理退出 借书 还书 系统管理员 修改图书管理权限 项目获取:…

java对象互换工具类

1:将Object类型转成json字符串 /*** 将对象转为字符串* param obj* return*/public static String toString(Object obj) {if(obj null) {return null;}if ("".equals(obj.toString())) {return null;}if (obj instanceof String) {return obj.toString();}try {Ob…

20232906 2023-2024-2 《网络与系统攻防技术》第九次作业

20232906 2023-2024-2 《网络与系统攻防技术》第九次作业 1.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件。 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。 该程序同时包含另一个代码片段,getShell&am…

vscode远程免密ssh原理与实操方法

什么是SSH SSH是一种加密协议,全称为Secure Shell,用于安全地远程登录到服务器或其他远程设备上执行命令或传输文件。它提供了一种安全的加密通信机制,使得远程登录和文件传输等操作不会被恶意攻击者窃取或篡改,确保了数据的保密…

全球10KM土地利用程度数据

全球10KM土地利用程度数据 数据介绍 “一带一路”监测区域土地利用程度指数平均值为0.34,不同区域利用程度差异明显,但总体上高值区域与人口分布的稠密区域吻合。中南半岛、南亚、欧洲和小亚细亚半岛等地海拔较低,水热组合条件较好&#xff…

SqlServer数据库导出表结构和数据为脚本文档

需求:把数据库里的数据结构及数据存为脚本,下次一键执行数据库 操作方法: 一、右击该数据库,选择任务 二、下一步 三、如果导出整个数据库就默认,若导出指定的表和视图就选择具体的数据库对象 四、选择另存为脚本文件…

分解质因数-第12届蓝桥杯国赛Python真题解析

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第61讲。 分解质因数&#…

亚信安慧AntDB:解锁数智化的新时代

亚信安慧AntDB的融合实时的特性使得它在数据库领域独树一帜。传统的数据库系统往往只能追求数据的准确性和一致性,但在实际的业务场景中,这些特性并不能满足企业的需求。AntDB的出现打破了传统束缚,为企业带来了全新的数据处理方式&#xff0…
最新文章