「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.hqwc.cn/news/701763.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ardupilot Rpanion 4GLTE 网络性能测试 - 国内中转

Ardupilot Rpanion 4GLTE 网络性能测试 - 国内中转 1. 源由2. 视频效果2.1 整体刷新率不高2.2 网络延迟可接受2.3 带宽增加丢包明显2.4 实测效果流畅 3. 总结 1. 源由 上一次,由于ZeroTier使用了国外服务器,延迟~ 569 ms,花屏、卡顿。 本着…

谷歌Gemini时代来了!加固搜索护城河、赋能全家桶,Gemini 1.5 Pro升级至200万token

3 月中旬,谷歌宣布 Google I/O 定档北京时间 5 月 15 日凌晨 1 点。而当大会开幕时间临近,本应是讨论度最高的时候,「宿敌」OpenAI 却半路杀出,抢先一天,仅耗时 27 分钟就发布了颠覆性巨作 GPT-4o,将新一轮…

数据结构与算法-排序算法3-插入排序

目录 1.插入排序: 1.介绍: 2.动态图解 3.举例 4.小结插入排序规则 5.插入排序代码 6.运行时间 代码: 运行结果: 1.插入排序: 1.介绍: 数组中n个元素,把这n个待排序元素看成一个有序序…

虚拟化技术 在vCenter Server创建数中心、添加主机

一、实验内容 1.安装Flash 2.在vCenter Server创建数中心、添加主机 二、实验主要仪器设备及器材 1.安装有64位Windows操作系统的台式电脑或笔记本电脑,建议4C8G或以上配置 2.在Windows Server 2008 R2已安装vCenter Server 3.Adobe Flash Player 12.0.0.70.e…

Tomcat Server无法连通的调试方法1

作者:私语茶馆 1.局域网Tomcat服务不通 组网如下: 问题: Tomcat Server 服务方式启动后,无法访问,但命令行方式启动可以。IP地址都在同网段或不同网段现象都一样。 调试手段: (1)…

基于Django实现的(bert)深度学习文本相似度检测系统设计

基于Django实现的(bert)深度学习文本相似度检测系统设计 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat、Maven 系统功能实现 登录页面 注册页面:用户账号,密码…

HyperLogLog的使用做UV统计

使用Jedis连接Redis并操作HyperLogLog import redis.clients.jedis.Jedis;public class RedisHyperLogLogExample {public static void main(String[] args) {// 连接到本地的Redis服务Jedis jedis new Jedis("localhost", 6379);String hyperLogLogKey "hll…

智慧安防监控EasyCVR视频汇聚管理平台视频播放花屏的原因分析及处理

智慧安防监控EasyCVR视频管理平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。国标GB28181协议视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、…

机器学习实战宝典:用scikit-learn打造智能应用

书接上文——《数据探险家的终极指南:用Python挖掘机器学习的奥秘》 前文我们在这段精彩的机器学习探险之旅中,从基础概念出发,深入探索了使用Python和scikit-learn库进行数据分析和模型构建的全过程。 我们首先了解了机器学习的基本原理&am…

47 tcp网络程序

网路聊天 API详解 下面用到的API,都在sys/socket.h中 socket (): socket() 打开一个网络通讯端口,如果成功的话,就像open() 一样返回一个文件描述符应用程序可以像读文件一样用read/write在网络上收发数据如果调用出错返回-1对于IPv4&am…

Dubbo3.x 异步转同步源码

底层netty通信是异步的,那我们平时调用采取的同步是如何将底层的异步转为同步的呢? dubbo远程rpc协议和网络框架有多种,我们以默认的dubbo协议、网络框架netty作为切入点. 注意点:debug时将过期时间设置长一点: 调用…

SpringBoot解决CORS跨域——WebMvcConfigurationSupport

前端请求后端报错了。 状态码:403 返回错误:Invalid coRs request 增加配置类WebMvcConfig Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {Overridepublic void addCorsMappings(CorsRegistry registry) {// 允许跨域…