实时离线融合计算的数据同步实践

实时批量融合计算时,一般需要批量将数据推送到hbase供实时使用。

本文将通过两个典型场景--累计场景与最新分区场景,讨论批量和实时衔接的设计方案,解决批量延迟可能导致的问题。

累计场景

在之前的文章中讲述了实时离线结合共同计算客户180天累积交易金额的场景。

浅议 基于离线历史数据 结合Flink获得长周期聚合指标的实现方案

这种情况下批量是计算[178~T-2]的累计值,实时算[T-1,T]两天的累计值。

批量将累计结果推送到hbase中,实时的计算结果关联hbase汇总批量结果后获得客户180天的累计值。

具体的开发中,假设此hbase表的rowkey为客户号_分区时间,批量实时交互细节如下图所示。

003aa41323d8086fe0988c5c004eea8f.jpeg

以3号为例,批量计算了178天前~2号的累计结果推送到hbase中,hbase的rowkey是客户号_2号。

实时等到4号的时候使用这份数据,并汇总实时自行计算的3号~4号数据得到180天的汇总。

如果3号这天,批量因其他因素晚批导致今日应该推送的(178天前~2号)数据未及时推送到hbase中,而实时4号就要使用数据,那就需要及时告警和人工介入处理。

此时可设计成实时计算最近3天的累计值(客户每天的累计值存下来,方便进行多天的累计)。

如果发现hbase中客户号2号的数据还未到,则向前取一天即取客户号1号的数据进行汇总。

这样能给批量多留出一天的处理时间,也减少了潜在的任务启停操作以保证程序运行的稳定。

最新分区场景

比如批量有一张商户表,表字段中有商户名称和商户分类两个字段。

批量需要将商户名称和分类的映射关系推到hbase供实时使用。

批量每日分区的数据可能不同,考虑批量晚批的因素,只需要推送最新分区的数据到hbase即可。

一般情况下批量实时的衔接设计如下图所示。

a1a7e900df5da9a9d399f39fa08bbbae.jpeg

以3号为例,批量从商户表中取出最新分区的映射关系推到hbase中,rowkey是客户号_3号,实时4号的时候使用这份数据。如果3号因各种原因批量未能如期送数,此时需要进行告警和人工介入。

此时批量推送hbase表的设计应更灵活。3号批量取出数据后推送两份相同的映射关系数据到hbase中,只不过一份数据的rowkey为客户号_3号,另一份数据的rowkey为客户号_4号。

a5f02f7bd3acf900a61ff575b15b1ee2.jpeg

这样即使3号晚批,批量在2号推送的数据中有rowkey为客户号__3号的数据,也能实现实时使用最新分区的映射。

这样的数据冗余设计也给批量预留了一天的处理时间以及减少潜在的任务启停操作。综上所述,通过两个典型场景--累计场景与最新分区场景的数据同步的容错设计,最小化了人工干预需求,降低了运维复杂度,确保了数据服务的连续性。

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

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

相关文章

怎么做自己公司的小程序

我是【码云数智】平台的黄导,今天分享:怎么做自己公司的小程序 企业小程序怎么制作,利用可视化小程序模板搭建,企业能够轻松跨越技术门槛,快速响应市场变化。 01、小程序制作流程 02、微信小程序开发多少钱 03、微…

外包干了5年,技术退步太明显了。。。。。

先说一下自己的情况,本科生生,19年通过校招进入杭州某软件公司,干了差不多五年的功能测试,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的功能测试,已经…

Java | Leetcode Java题解之第530题二叉搜索树的最小绝对差

题目: 题解: class Solution {int pre;int ans;public int getMinimumDifference(TreeNode root) {ans Integer.MAX_VALUE;pre -1;dfs(root);return ans;}public void dfs(TreeNode root) {if (root null) {return;}dfs(root.left);if (pre -1) {pr…

仪表板展示|DataEase看中国:历年双十一电商销售数据分析

背景介绍 2024年“双十一”购物季正在火热进行中。自2009年首次推出至今,“双十一”已经成为中国乃至全球最大的购物狂欢节,并且延伸到了全球范围内的电子商务平台。随着人们消费水平的提升以及电子商务的普及,线上销售模式也逐渐呈现多元化…

机器人课程——使用TIA Portal V15博图软件进行西门子组态——带显示屏

一.打开TIA Portal V15博图软件创建项目 1.选择创建新项目 创建完成后选择PLC 二.创建完成后选择设备PLC (此处以S7-1200 1214FC DC/DC/DC 为例) 三.添加扩展板(如有——这里以223-1BL32-0XB0为例) 四.更改扩展版地址 五.添加触摸屏(这里以…

Java代码与数据库纽带——JDBC

ok,看了题目,就可以知道今天要分享的是JDBC 讲这个这之前,想讲讲之前的。 之前我们操作数据库基本都是通过MySQL客户端,进行编写sql语句来操作的。 但是我们在开发中一般都是通过代码来操控数据库的。 而且在我们日常开发中&a…

Webserver(5.6)服务器压力测试

目录 webbench是linux上一款知名的优秀的web性能压力测试工具。 测试处在相同硬件上,不同服务的性能以及在不同硬件上同一个服务的运行状况 展示服务器的两项内容:每秒钟响应请求数和每秒钟传输数据量 webbench首先fork多个子进程,每个子进程…

MySQL数据库基础(一) MySQL安装及数据类型

目录 一、MySQL数据裤简介 二、MySQL数据的安装 2.1、MySQL安装 2.2、修改MySQL密码登录策略 三、数据库基础管理 3.1、连接方式及数据储存流程 3.2、库管理命令 3.3、表管理命令 3.4、记录管理命令 四、MySQL数据类型 4.1、常见信息种类 4.2、字符型 4.3、数值型 4.4、日期时间…

好用的远程控制安卓和IOS端的手机软件有哪些?

在数字化时代,我们的工作和娱乐活动越来越依赖于移动设备。无论是在家中、办公室还是旅途中,能够远程控制我们的设备成为了一种高效便捷的需求。市场上涌现出了许多远程控制软件,它们各具特色,旨在提供最佳的用户体验。那么&#…

领夹无线麦克风哪个牌子好?双十一选无线领夹麦克风避开选购陷阱

在多媒体和远程通信日益普及的今天,无线领夹麦克风已成为提升音质和便利性的关键,它们在视频制作、网络直播、在线教育等多个领域中扮演着重要角色。面对市场上众多的产品和技术参数,消费者往往感到无从下手。不过不用过于担心,在…

开发中使用UML的流程_01概述

目录 CIM-1:定义业务流程 CIM-2:分析业务流程 ​CIM-3:定义系统范围 ​PIM-1:分析系统流程 PIM-2:分析业务规则 PIM-3:定义静态结构 PIM-4:定义操作和方法 开发中使用UML的流程,主要分为7部分,具体如下: CIM-1:定义业务流程 定义及分析业务流程是为了尽快理…

ArcGIS/QGIS按掩膜提取或栅格裁剪后栅格数据的值为什么变了?

问题描述: 现有一栅格数据,使用ArcGIS或者QGIS按照矢量边界进行按掩膜提取或者栅格裁剪以后,其值的范围发生了变化,如下: 可以看到,不论是按掩膜提取还是进行栅格裁剪后,其值的范围均与原来栅…

劫持微信聊天记录并分析还原 —— 合并解密后的数据库(三)

本工具设计的初衷是用来获取微信账号的相关信息并解析PC版微信的数据库。 程序以 Python 语言开发,可读取、解密、还原微信数据库并帮助用户查看聊天记录,还可以将其聊天记录导出为csv、html等格式用于AI训练,自动回复或备份等等作用。下面我…

python数据结构基础(7)

本节学习最后一种数据结构---图,在很多问题中应用图可以帮助构建思维空间,快速理清思路,解决复杂问题. 图就是一些顶点的集合,这些顶点通过一系列边链接起来.根据边的有向和无向,图分为有向图和无向图.有时图的边上带有权重,本节暂时不将权重作为重点. 计算机通过邻接表或者邻…

NAS的软件和生态才是王道!谈谈群晖是如何凭实力“躺平”的

NAS的软件和生态才是王道!谈谈群晖是如何凭实力“躺平”的 哈喽小伙伴们好,我是Stark-C~ 近几年随着大家对于数据存储和管理需求的增加,以及各大网盘变相收费和涨价,并且还不合时宜的爆出隐私泄露问题。而NAS(网络附…

阅读笔记 Contemporary strategy analysis Chapter 14

来源:Robert M. Grant - Contemporary strategy analysis (2018) Chapter 14 External Growth Strategies: Mergers, Acquisitions, and Alliances 合并、收购和联盟 Ⅰ Introduction and Objectives 企业并购与联盟是公司实现快速扩张的重要战略工具。通过这些手段…

Java 8 Stream API 详解

在 Java 8 中,引入了一个全新的 API——Stream API,它与传统的 java.io 包下的 InputStream 和 OutputStream 没有任何关系。Stream API 的引入主要是为了提高程序员在操作集合(Collection)时的生产力,而这一提升很大程…

VMware替代实战手册:更高效的MySQL数据库迁移方案

数据库作为数字化用户的核心资产,其迁移是一项复杂且重要的任务,特别是在VMware平台替换及IT基础设施更新换代之时,尤其需要保障数据库迁移过程的平稳、流畅。 深信服推出的数据库管理平台(DMP)是为关系型数据库量身打…

GaussDB高智能--库内AI引擎:模型管理数据集管理

3.2 模型管理 在机器学习算法进行训练后,生成的模型需要进行存储,以便后续推理进行使用。训练过程的时序图如下: 在训练过程中,最后一步是通过调用store_model接口,在系统表gs_model_warehouse中插入一条记录&#…

使用ookii-dialogs-wpf在WPF选择文件夹时能输入路径

在进行WPF开发时,System.Windows.Forms.FolderBrowserDialog的选择文件夹功能不支持输入路径: 希望能够获得下图所示的选择文件夹功能: 于是,通过NuGet中安装Ookii.Dialogs.Wpf包,并创建一个简单的工具类: …