关于实时ODS层数仓搭建的三个问题

news2024/9/24 9:28:27

目录

问题一:数据同步的实时性无法满足

问题二:批量数据同步计算处理效率低

问题三:没有稳定的数据传输管道

FineDataLink的解决方案

实战案例-销售部门与财务部门数据同步

设置ODS层实时同步任务

设置DW层增量数据同步

设置 DM 层任务汇总 关联销售财务数据

数仓任务运维调度


数据仓库的调度配置是实际业务中必不可少的一环。通过调度配置,可以实现数据的更新同步,从而让数据持续的应用在业务中。

传统数据处理工具一般通过定时同步的方式,在构建 ODS 层数据时,需要将大量业务系统数据进行原表原样迁移;从 数仓的ODS 层到数仓的后续层级 DW、DM,再采用全量计算的方式进行更新。

但这种方式不仅无法满足零售消费行业促销大屏、制造行业生产看板等场景的数据需求,还存在隐患,主要原因是:

问题一:数据同步的实时性无法满足

直接从业务系统取数,业务库压力较大,导致数仓 ODS 层和业务系统间存在数据延迟,数据同步严重滞后;由于参与计算的数据比较多,导致 DW、DM也会产生数据延迟,数据时效性不足。

问题二:批量数据同步计算处理效率低

业务库表设计不规范,没有时间戳或者主键,数据量大时只能全量计算,计算效率非常低。另外,业务系统数据跨域同步以及网络带宽限制,导致计算过程耗时较长,影响大屏、看板展示,错失业务机会。

问题三:没有稳定的数据传输管道

数据传输没有稳定的数据管道,存在丢失、泄露、篡改等安全风险。如果系统不稳定或出现故障,还可能宕机,影响业务分析准确性。

FineDataLink的解决方案

针对上述问题,FineDataLink拥有强大的实时数据采集、批量数据同步能力,提供了完整的解决方案:

一、对于数据实时性需求,FineDataLink 通过日志增量技术,从业务系统实时读取数据,使用数据管道功能构建数仓实时 ODS 层;

二、数仓ODS层的后续层级采用增量更新,替代全量计算。利用时间戳标识技术,实现 DW 层增量更新,提升数据全链路时效性,为企业决策提供了更准确的数据依据。

三、FineDataLink的管道任务运维支持查看任务运行状态、数据同步性能、检查异常情况、以及对异常进行处理,提供了多方面的运维保障,实现智能化运维。

实战案例-销售部门与财务部门数据同步

例如,某销售公司当前情况如下:

当前有两个部门的数据:「销售」和「财务」,目前分别存储在不同业务系统对应数据库中;在数据仓库的ODS、DW、DM 3层中,ODS层是由业务系统直接拉取过来的原始数据;DW 层是基于 ODS 层进行汇总处理的中间层数据;DM 层是基于 DW 层,并且根据报表展示诉求而加工获得的结果层数据。

需要建设以下数仓任务:将两个部门的底层数据落库至指定数据库,形成实时 ODS 层数据, ODS 层定期(每周一次)同步更新的数据到 DW层,DW层定期(每周一次)同步更新的数据到 DM层,供给其他可视化报表展示工具使用。

设置ODS层实时同步任务

构建 ODS 层数据时,需要将大量业务系统数据进行原表原样迁移。

将来自不同数据库的「财务数据」和「销售数据」使用 FDL 的「数据管道」功能,只需要几步即可批量实时同步至数据仓库的 ODS层;

1)新建管道任务,将存放「销售数据」、「财务数据」对应的数据库中对应的原始选中,并同步至存放 ODS 层数据的「test_1」数据库中:

2)设置字段映射和异常通知,并保存和启动任务

设置DW层增量数据同步

当ODS 层有新数据生成,将定时同步增量数据,即根据最新的销售时间判断选取ODS 层中的新增数据同步至DW层,同时记录更新的开始时间和结束时间。操作参见:设置DW层任务

1)设置财务数据定时任务,添加「参数赋值」节点,设置 SQL 语句显示当前时间(任务开始时间),并将其设置为参数 time1;

2)取出DW层中最晚订单生成时间,并设置为参数 time;

3)新建「数据同步」节点,取出ODS层中的华北财务数据,并使用time参数比较「订单生成时间」,如果华北财务数据中「订单生成时间」晚于 DW 层中数据中最晚订单时间,则将这部分新增数据同步至DW层中;

4)和获取开始时间一样,新建「参数赋值」节点,以获取结束时间并设置时间参数;

5)新增消息通知节点,DW 层执行成功则发消息通知。

设置 DM 层任务汇总 关联销售财务数据

通过定时同步将 DW 层的销售数据和财务数据进行汇总关联,落库DM 层,为其他报表等可视化工具提供数据源。操作参见:设置DM层任务

1)创建任务后新增数据转换节点,通过「DB表输入」将 DW 层的销售数据和财务数据取出;

2)新增「数据关联」,将销售订单编号和财务订单编号关联,形成宽表;

3)新增消息通知节点,DM 层执行成功则发消息通知。

数仓任务运维调度

该步骤可实现数仓三个层级的统一调度触发,智能化运维,操作步骤参见:设置总调度任务

1)使用「数据开发」功能创建「调度总任务」,首先获取开始时间并设置为参数,与设置DW层任务中同理

2)使用调用任务的形式将ODS层任务DW层任务DM层任务创建的三个数仓调度任务进行调用;

3)记录调度任务执行结束的时间,并设置为参数;

4)最后设置消息通知,若执行成功则通知。

FineDataLink——小到数据库对接、API对接、行列转换、参数设置,大到任务调度、运维监控、实时数据同步、数据服务API分享,另外它可以满足数据实时同步的场景,应有尽有,功能很强大。如果您需要进行实时数仓建设,帆软FDL会是您的最优解。

了解更多数据仓库与数据集成关干货内容请关注>>>​​​​​​FineDataLink官网

免费试用、获取更多信息,点击了解更多>>> 体验FDL功能
往期推荐:

【FCA FineDataLink认证指南】解锁高薪职业新机遇,提升职场竞争力-CSDN博客

一文读懂数据治理种的核心要素——元数据-CSDN博客

什么是数据孤岛?如何打破数据孤岛?-CSDN博客

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

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

相关文章

基于YOLOv5的智能路面病害检测系统

随着城市化进程的加速发展,公路基础设施的维护变得日益重要。路面病害,如裂缝、坑洼等,不仅影响行车安全,还会缩短道路使用寿命。因此,快速准确地检测并评估这些病害成为了一个关键任务。本项目旨在开发一款基于YOLOv5…

【常用小机器】下载保存语雀文档

安装工具 npm i -g yuque-dl检查安装: yuque-dl -h私有库 通过别人私有知识库 分享的链接,需使用-t添加token(cookie中_yuque_session的值)才能下载 yuque-dl "https://www.yuque.com/yuque/thyzgp" -t "abcd.…

GD32 ADC模数转换器

前言: ... 1:简介 12 位 ADC 是一种采用逐次逼近方式的模拟数字转换器。它有 18 个多路复用通道,可以转换来自 16 个外部通道和 2 个内部通道的模拟信号。模拟看门狗允许应用程序来检测输入电压是否超出用户设定的高低阈值。各种通道的 A/D …

解决m-tabbar部分页面元素浮动导致第一个单元格元素点击失效问题

工作中遇到一个神奇的bug,代码没有问题点击第一个单元格的时候无法正常点击,通过调试工具定位发现是m-tabbar组件的m-tabbar-box元素有浮动导致了点击失效。 解决办法1: 设置元素的z-index大于tabbar的,这样要对页面元素底部做一…

VMware虚拟机设置桥接网络固定IP

VMware虚拟机设置桥接网络固定IP 在VMware虚拟机中设置桥接网络并固定IP地址,主要涉及到几个步骤:设置虚拟网络编辑器、配置虚拟机的网络适配器,以及修改虚拟机内的网络配置文件。以下是详细的步骤说明: 设置虚拟网络编辑器 以…

[ BLE4.0 ] 伦茨ST17H66开发-ADC采集电压数据-ADC中断采集-ADC单端输入与差端输入

目录 一、前言 二、采集模式 三、详细步骤 3.1 引脚选择 3.2 代码实现 3.2.1 导入库文件 3.2.2 模式选择 3.2.3 bypass模式 3.2.4 attenuation模式 3.2.5 代码配置 四、效果展示 一、前言 使用单片机面对数据采集时,往往设计到模拟量的采集,因此&…

【进制转换】《进制大乱斗,谁才是真正的赢家!》

目录 进制转换详解1. 引言2. 进制简介2.1 十进制2.2 二进制2.3 八进制2.4 十六进制 3. 进制转换方法3.1 十进制转二进制3.2 二进制转十进制3.3 十进制转八进制3.4 八进制转十进制3.5 十进制转十六进制3.6 十六进制转十进制3.7 二进制转八进制3.8 八进制转二进制3.9 二进制转十六…

缓存穿透

目录 概念 业务逻辑改造 代码实现 概念 用户请求查询的数据在缓存和数据库中都没有,那么最终请求都会进入到数据库,缓存会失效 两种解决方法:缓存NULL对象,使用布隆过滤器 业务逻辑改造 代码实现 解决缓存穿透问题public Shop…

3.redis客户端

1.命令行客户端 在安装redis的时候就已经安装好了,就是redis-cli redis-cli -h 127.0.0.1 -p 6379 -a 123456 -a 表示密码 -h 表示ip,不配置默认为本机 127.0.0.1 -p 表示端口,不配置默认为 6379 进入后可以输入ping,返回pong代表…

【C++】实验十三

题目: 1、声明Point(点)类,由Point类派生出Circle(圆)类,再由Circle类派生出Cylinder(圆柱)类。将类的定义部分分别作为3个头文件。对它们的成员函数的声明部分分别作为…

【数据结构算法经典题目刨析(c语言)】链表的回文结构(图文详解)

💓 博客主页:C-SDN花园GGbond ⏩ 文章专栏:数据结构经典题目刨析(c语言) 目录 一、题目描述 二、解题思路 三、代码实现(C语言) 回文结构(Palindromic structure)是指一个序列或字符串从前往…

C++多线程常用的几种实现方式

1、std::thread C11标准之后便引入了线程库std::thread。无论是windows或是Linux开发者都可以非常简单的通过这种方式&#xff0c;在C程序中创建和管理线程。 示例代码&#xff1a; #include <unistd.h> #include <iostream> #include <thread>void thread…

App 自动化测试调研

App 自动化测试调研 App 自动化测试的价值 App 自动化测试在软件开发过程中扮演着重要的角色&#xff0c;具有以下几个方面的价值&#xff1a; 1.提高测试效率和覆盖率&#xff1a;自动化测试可以执行大量的测试用例&#xff0c;覆盖各种功能和场景&#xff0c;相比手动测试…

BootStrapBlazor中MultiSelect组件在表格中使用时存在的问题

仅作记录&#xff0c;备以后回忆 在Table中使用了双击弹出编辑框来修改数据&#xff0c;正好逆变器需要多选&#xff0c;就使用了MultiSelect组件&#xff0c;结果发现它选择后没有任何效果&#xff0c;不会显示&#xff0c;但是保存后发现它是有数据的&#xff0c;网上搜了下…

关于python问题 ,生成的excel文件内无爬取的数据存在,请问应如何解决?

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

深度分析 !中国 AI 产业商业化实践案例 ! 2024 !

提供客户全渠道全生命周期的营服销一体化智能服务 京东云言犀依托于全栈自研的人工智能技术&#xff0c;基于京东集团广泛实体业务、庞大而又复杂的产业生态&#xff0c;从内部真实、复杂的海量业务场景实践中推出千亿级参数的言犀大模型&#xff0c;打造全新的智能交互与生成…

中国人民解放军建军97周年

缅怀先烈&#xff0c;砥砺前行 付吾辈之韶华&#xff0c;耀吾辈之中华! 万里河山&#xff0c;有您心安!

单链表习题(3)(超详细)

前言&#xff1a; 这篇文章将会是小编最近做过的习题总结的最后一篇&#xff0c;这一篇有些习题颇有一些难度&#xff0c;不过小编将会带领读者朋友们一起克服难关&#xff0c;下面废话不多说&#xff0c;开启今天的习题之旅&#xff01; 目录&#xff1a; 1.链表分割 2.相交链…

复习Nginx

1.关于Nginx Nginx的关键特性 1.支持高并发 2.内存资源消耗低 3.高扩展性&#xff08;模块化设计&#xff09; 4.高可用性&#xff08;master-worker&#xff09; Nginx运行架构 注意 默认情况下&#xff0c;Nginx会创建和服务器cpu核心数量相等的worker进程 worker进程之间…

自从用了这些监控工具,我连续几天没睡好觉!

大家好&#xff0c;我是程序员鱼皮&#xff0c;今天分享一些很实用的系统监控告警工具。 为什么要用监控告警&#xff1f; 说到监控告警&#xff0c;没有企业开发经验的同学非常容易忽视它&#xff0c;甚至会有同学觉得没有必要&#xff0c;大不了出了 Bug 再修就是了。 这种…