关于实时ODS层数仓搭建的三个问题
目录
问题一:数据同步的实时性无法满足
问题二:批量数据同步计算处理效率低
问题三:没有稳定的数据传输管道
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官网
【FCA FineDataLink认证指南】解锁高薪职业新机遇,提升职场竞争力-CSDN博客
一文读懂数据治理种的核心要素——元数据-CSDN博客
什么是数据孤岛?如何打破数据孤岛?-CSDN博客
相关文章:
关于实时ODS层数仓搭建的三个问题
目录 问题一:数据同步的实时性无法满足 问题二:批量数据同步计算处理效率低 问题三:没有稳定的数据传输管道 FineDataLink的解决方案 实战案例-销售部门与财务部门数据同步 设置ODS层实时同步任务 设置DW层增量数据同步 设置 DM 层任务汇总 关…...
微信仿H5支付是什么
仿H5支付是指一种模拟原生H5支付流程的非官方支付方式。这种支付方式通常是由第三方支付服务提供商开发和维护的,目的是为了绕过官方支付渠道的限制,如费率、审核等问题。然而,由于仿H5支付并非官方授权和认可的支付方式,其安全性…...
网络安全知识竞赛规则及流程方案
为普及网络安全知识,进一步提升网络安全意识,树立正确的网络安全观,营造安全健康文明的网络环境,在2023年国家网络安全宣传周到来之际,特举办网络安全知识有奖竞赛活动,通过竞赛活动普及国家法律法规、政策…...
赞!蚓链用数字化打造助农扶农电商平台!
助农扶农电商平台在推动农村经济发展、促进农民增收方面发挥着重要作用。蚓链数字化平台使用“防伪溯源”为农户、商户、平台、政府与消费者打造了全方位的信任链条和纽带。给各方带来众多价值! (一)农户方面 1、拓宽销售渠道,降…...
RocketMQ延时消息
RocketMQ消息发送基本示例(推送消费者)-CSDN博客 RocketMQ消费者主动拉取消息示例-CSDN博客 RocketMQ顺序消息-CSDN博客 RocketMQ广播消息-CSDN博客 延时消息: 延时消息实现的效果就是产者调用 producer.send 方法后,消息会立即发送到 Broker,并被存…...
【C++/STL】:哈希的应用 -- 位图布隆过滤器
目录 🚀🚀前言一,位图1. 位图的概念2. STL库中的位图3. 位图的设计4. 位图的模拟实现5. 位图的优缺点6. 位图相关考察题⽬ 二,布隆过滤器1. 布隆过滤器的概念2. 布隆过滤器的实现3. 布隆过滤器删除问题4. 布隆过滤器的优缺点 点击…...
非线性面板数据实证模型及 Stata 具体操作步骤
目录 一、引言 二、文献综述 三、理论原理 四、实证模型 五、稳健性检验 六、程序代码及解释 一、引言 在当今的经济和社会研究中,非线性面板数据模型的应用日益广泛。这类模型能够更好地捕捉数据中的复杂关系,为研究者提供更深入和准确的分析结果。…...
视角 | 麻省理工学院提出出温度计校准法,专治AI大模型过度自信
在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,…...
昇思25天学习打卡营第XX天|CycleGAN图像风格迁移互换
CycleGAN是一种用于图像到图像翻译的生成对抗网络,它突破了传统域迁移模型的限制,无需成对样本即可学习图像在不同域间的转换。这种无监督的方法特别适用于难以获取配对数据的场景,例如艺术风格迁移。与需要成对训练样本的Pix2Pix不同&#x…...
嵌入式Linux学习: interrupt实验
Linux中的Interrupt(中断)系统是一个至关重要的组成部分,它负责管理和处理系统中发生的各种硬件和软件中断,确保系统能够正确响应外部设备的请求,保持系统的稳定性和可靠性。 1.中断的作用 允许设备在没有CPU干预的情…...
GPT-4o mini 来袭:开发者如何驾驭新一代AI模型?
GPT-4o Mini 来袭:开发者如何驾驭新一代 AI 模型? 引言 随着人工智能(AI)技术的飞速发展,越来越多的先进模型不断涌现,给各行各业带来了深远的影响。OpenAI 最新推出的 GPT-4o Mini 是一种创新的 AI 模型…...
校园点餐系统
1 项目介绍 1.1 摘要 在这个被海量信息淹没的数字化时代,互联网技术以惊人的速度迭代,信息的触角无处不在,社会的脉动随之加速。每一天,我们都被汹涌而至的数据浪潮包裹,生活在一个全方位的数字信息矩阵中。互联网的…...
进口不锈钢309S螺栓的应用优势
进口不锈钢309S螺栓因其优异的性能和广泛的应用范围而在许多行业中备受青睐。309S不锈钢是一种含硫的易切削不锈钢,具有良好的耐高温和耐腐蚀性能,使其成为高温环境下理想的选择。下面我们就来详细探讨一下进口不锈钢309S螺栓的应用优势。 一、309S不锈钢…...
C# 设计模式之工厂方法模式
总目录 前言 本文是个人基于C#学习设计模式总结的学习笔记,希望对你有用! 在简单工厂模式中说到了简单工厂模式的缺点:简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现…...
Webpack 从入门到精通
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 一、Webpack 简介 二、Webpack 的核心概念 三、Webpack 的安装与配置 安装 Node.js 安装 Webpack 初始…...
基于VScode和C++ 实现Protobuf数据格式的通信
目录 1. Protobuf 概述1.1 定义1.2Protobuf的优势 2. Protobuf 语法3、序列号和反序列化3.1 .pb.h 头文件3.2 序列化3.3 反序列化 4、测试用例 Protobuf详细讲解链接 1. Protobuf 概述 1.1 定义 protobuf也叫protocol buffer是google 的一种数据交换的格式,它独立…...
linux环境openssl升级
1、下载openssl https://openssl-library.org/source/ 或者通过wget --no-check-certificate https://www.openssl.org/source/openssl-3.0.13.tar.gz 2、解压openssl tar -zxvf openssl-3.0.13.tar.gz 3、切换到解压后的目录 cd openssl-3.0.13/ 4、配置openssl安装目录…...
150Kg载重遥控履带式无人车技术详解
150Kg载重遥控履带式无人车是一种专为复杂地形和重载运输设计的无人化智能平台。它结合了先进的动力技术、履带式行走机构、远程遥控系统、高精度感知与导航技术及模块化设计,能够在恶劣环境下执行物资运输、侦察监视、灾害救援等多种任务。该车以其卓越的越野能力、…...
STM32的外部中断详解
一、什么是中断? 想象一下你正在家里做饭,突然门铃响了,你听到门铃声后,会暂时放下手中的事情(比如炒菜),去开门看看是谁。在这个例子中,门铃声就是一个“中断”,它打断…...
关于python问题 ,生成的excel文件内无爬取的数据存在,请问应如何解决?
🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…...
详细介绍Avalonia中的文件操作StorageProvider服务
文章目录 一、介绍二、StorageProvider的原理三、StorageProvider的实现1. 创建文件选择和保存对话框2. 选择目录四、StorageProvider的配置五、StorageProvider的高级用法1. 读取和写入文件2. 获取文件和目录信息3. 管理文件和目录4. 处理不同平台的差异六、总结一、介绍 在桌…...
「7.31更新日志」JVS·智能BI、逻辑、规则引擎功能更新说明
项目介绍 JVS是企业级数字化服务构建的基础脚手架,主要解决企业信息化项目交付难、实施效率低、开发成本高的问题,采用微服务配置化的方式,提供了 低代码数据分析物联网的核心能力产品,并构建了协同办公、企业常用的管理工具等&am…...
编程语言 | C | 代码整理 | 4月
八月拍了拍你,并对你说:“好运就要开始了”! 目录 编程语言 | C | 代码整理 | 4月2019/4/12019/4/22019/4/22019/4/32019/4/42019/4/52019/4/62019/4/72019/4/82019/4/92019/4/102019/4/112019/4/122019/4/132019/4/142019/4/152019/4/162019…...
模板可变参数
当涉及到 C 编程中的模板参数处理时,特别是在处理可变数量的参数时,模板可变参数(variadic templates)是一个非常有用的特性。本篇博客将深入介绍模板可变参数的基本概念、语法、应用场景以及示例代码,帮助读者理解如何…...
是你!是你!我们的黄金写手!
...
QT 获取用于获取特定屏幕坐标处的最上层小部件(父与子关系的类)
QPoint globalPos pEvent->globalPos(); QWidget* widget QApplication::widgetAt(globalPos); 注意:屏幕坐标(包括显示器双屏)...
【应急响应】Linux权限维持 -隐藏权限
前言 不知攻焉知守,学会排查就要先学习如何攻击。 隐藏文件 Linux下创建一个隐藏文件:touch .test.txt 查看Linux下的隐藏文件需要用到命令:ls -al 隐藏文件时间戳 touch -r .docker hello.php 创建的hello.php文件会和.docker创建文件的时间…...
还有哪些AI应用案例目前备受关注
目前备受关注的AI应用案例众多,以下是一些代表性的例子: 1. WPS AI 背景:WPS AI是金山办公发布的基于大语言模型的人工智能办公助手,于2023年11月开启公测。 功能:WPS AI锚定AIGC(内容创作)、C…...
将控制台内容输出到文本文件
示例代码: Imports System.IO Module Module1Sub Main()Dim fs As New FileStream("D:\Desktop\test\输出结果.txt", FileMode.Create, FileAccess.Write, FileShare.None)Dim sw As New StreamWriter(fs)Console.SetOut(sw)Console.SetError(sw)For i …...
380. O(1) 时间插入、删除和获取随机元素【 力扣(LeetCode) 】
一、题目描述 实现RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存…...
电商网站设计公司/编程培训班学费一般多少钱
1、判断整数n是否为素数。 1>打开记事本,写如下一段代码: public class Utility { /*** 判断整数n是否为素数* param n* return*/public boolean isPrime(int n){boolean flagtrue;int max(int)Math.sqrt(n);for(int i2;i<max;i){if(n%i0){flagf…...
湖南常德米粉/优化搜索引擎
2019独角兽企业重金招聘Python工程师标准>>> 从高德地图下载开发者Demo,或者是百度地图Demo,会发现这些应用只能在ARM模拟器上运行,速度很慢,无法在x86模拟器上运行。对于开发人员来说,这是很苦恼的事情。小…...
wordpress固定链接发布失败/长沙网络推广只选智投未来
1. 启动Mysql 使用这条命令就行:service mysql start 2. 初始化密码 输入sudo mysql_secure_installation,直到显示红框中这一行字。...
做网站用别人的图片/网店如何做推广
本节书摘来华章计算机《日志管理与分析权威指南》一书中的第1章 ,第1.5.5节,(美) Anton A. Chuvakin Kevin J. Schmidt Christopher Phillips 著 姚 军 简于涵 刘 晖 等译更多章节内容可以访问云栖社区“华章计算机”公众号…...
河北网站建设哪家公司好/百度快照推广
[toc]各位兄弟,在学习Linux编程基础之前,一定要先学习Linux基础知识和计算机网络基础知识,如果对这两方面的基础知识和基本概念不熟,谈不上Linux编程和网络通信编程。一、socket通信的概念socket也称作“套接字”&…...
做网站的公司吉林/怎么关键词优化网站
开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列" 经常,我们在启动应用的时候发现系统需要的端口被别…...