分钟级实时数据分析的背后——实时湖仓产品解决方案

随着信息技术的深入应用,企业对市场的响应速度也在不断提升,而且这种响应速度正在变得越来越快,没有最快只有更快。对数据实时性要求的提高,是眼下很多企业遇到的一个新的挑战。

从生产侧的视角来看,系统实时监控与实时健康状态检测已成为确保系统稳定性和可靠性不可或缺的关键功能。它们能够即时捕捉并处理潜在问题,对系统的顺畅运行起到保驾护航的作用。而在营销侧领域,搜索推荐、实时营销策略制定以及分钟级趋势分析能力,则成为了企业运营团队的核心竞争力。具体到业务实操层面,实时欺诈检测技术、异常交易监测机制、精准的行为认证手段和高效的账户校验系统等,在现今的商业环境中都扮演着至关重要的角色。

简单来说,数据的时效性,是否足够“快、精、准”,会真正影响到一个企业的生存。

随着技术的发展,湖仓一体的概念开始被提出,袋鼠云在结合当前数据湖技术的基础上,建设实时湖仓平台,满足客户亟待解决的数据需求。本文将详细介绍实时湖仓解决方案,让企业能够更专注地去解决他们的业务价值。

实时业务场景遇到的问题

数字化时代,实时数据运用广泛,尤其在互联网、电商、金融等行业,实时数据反馈对业务运营和决策制定至关重要,对于数据时效的要求都达到了分钟级甚至秒级。

file

下文以信贷业务的银行动帐场景为例,介绍当前实时数据应用的业务场景,以及遇到的困境。

动帐交易,主要指开通帐户线上发生的业务,包括支付转帐、内部转帐、转存、网上缴费等交易。如:“交易流水表” 23:00:00,张三转入100元;“客户表” 张三的余额从100元更新为200元。

file

每次的一次动账操作都是一个事务,至少要操作两张表。第一张表是交易流水表,记录转账的一次行为,第二张则是用户的属性表,其中有一个字段是用户的余额,需要随着转账同步更新。

• 用户交易流水表

主要为 Insert 操作,记录行为信息,适合增量计算,如:统一开户、取款、贷款、购买理财等事件行为。

• 客户属性表

主要为 Update 操作,记录属性信息,适合全量计算,如:客户存款、贷款、理财、基金、保险等产品的余额。

file

在湖仓技术出现以前,企业在做数据建设时基本采用 Lambda 架构实现流和批数据流的架构。原因在于,Lambda 架构是当时比较成熟稳定的流/批数据处理模式,在各个领域的应用也非常广泛;同时因为其耦合度低,标准化高的优点,使得 Lambda 架构数据处理模式可以更简便、高效、稳定地应用于各个场景。出于稳妥的考虑,大多数企业会将 Lambda 流批分离的方式建构实时和离线的数仓。

应用在银行动帐场景中,如下图所示:

file

但是它有很多致命的弱点:

· 数据具有二义性,难保证一致

· 数据重复计算,资源占用多

· 需要开发和维护两套代码逻辑

· ……

同时,Lambda 架构下 Hive 和 Kafka 也存在问题。Kafka 作为高性能的消息队列和流处理平台,数据无法持久化存储,并且不支持直接 OLPA 查询。

Hive 作为大数据仓库工具,存在不支持 ACID,无法同时读写;不支持行列更新,只能全表更新;对于 Schema、Patition 变更不友好;数据查询性能慢等问题。

实时湖仓技术架构

面对上述问题,应该如何应对?袋鼠云给出了「实时湖仓」这个答案。

新型的湖仓一体格式,都有一个共同特点,就是可以做流批统一,比如:流批的读写接口都具备,拥有 ACID 的能力,流批一体可以并发去读写。能够很好地解决 Kafka 和 Hive 中存在的问题:

· 基于数据湖存储,可以让流数据持久化

· 支持使用 OLAP 分析引擎直接查询中间结果数据

· 支持 ACID 语义(并发读写),支持行级数据更新

· Schema Evolution 机制,可灵活修改表、分区信息

· 更高效扫描计划,数据查询效率提升

file

只是湖仓一体还不够,面对如上文所述的实时场景需求,以前的T+1已经不能满足,T+0实时场景越来越多。针对实时场景,做一个新的技术架构,这就是实时湖仓,实现技术与应用场景的支持和融合。

file

批处理技术在离线数仓场景中扮演关键角色,有效解决了数据更新滞后、表结构变更复杂等长期存在的痛点问题;而流处理则着力于解决流式数仓所面临的挑战,诸如数据不落地导致的易丢失风险。将两者融合为流批一体架构,通过减少数据在不同处理阶段间的流转环节,从而提高了整个系统从数据输入到输出的一致性和可靠性,满足了实时和历史数据分析的双重需求。

技术上,通过流批一体设计,实时湖仓能够整合流处理与批量处理,从而有效降低数据链路的重复开发成本;在存储层面,它解决了传统架构中存储分离的问题,实现统一的数据存储管理,进而降低了存储运维成本。同时,在数据管理方面,实时湖仓提供了统一的元数据和权限管理体系,确保了数据的安全性和一致性,实现了从技术到存储再到数据安全层面的高度融合与优化。

file

袋鼠云实时湖仓产品解决方案

基于上述实时湖仓技术架构和技术优势,袋鼠云推出实时湖仓产品解决方案。

可以帮助用户快速构建实时湖仓平台,提供流批一体存储、实时湖仓建设、湖内元数据管理、湖内数据治理、湖内数据探索的能力。解决传统数仓的痛点难点,无缝对接不同的计算引擎,为数据价值挖掘提供统一的数据基础。

file

湖仓管理,建设实时湖仓的基础,通过这一层的建设,你可以:

· 借助 Flink Catalog 管理,构建一套虚拟湖仓分层架构,类似传统离线数仓中的主题域、DW 分层设计

· 可视化创建湖表,平台支持 Hudi、Paimon、Iceberg 三种湖表创建,并分别提供对应的 DDL DEMO

· 通过 Flink 表管理,持久化存储基于 RDB、Kafka 创建的 Flink 映射表,和湖表一起,为实时计算提供表管理能力

· 作为实时计算领域最常用的数据介质,平台同时也支持对 Kafka Topic 进行基础的增删改查、数据统计分析等功能

湖仓开发,建设实时湖仓的核心能力,按应用场景主要分为:

· 数据入湖:通过实时消费 Kafka,或者读取 RDB 的 CDC 数据,将业务数据实时打入数据湖,构建实时湖仓的 ODS 层,为后续的流/批读写提供统一的数据基础

· 湖仓加工:借助湖表格式的事务特性、快照特性等能力,通过 FlinkSQL 任务读写湖表,构建湖仓中间层

· 流批一体:在湖仓加工过程中,根据不同的业务场景,可以选择流读或批读。在流批一体的设计上,可以选择先批读存量数据,无缝衔接流读增量数据,也可以选择流读增量数据,批读进行数据订正

湖仓治理,在湖仓开发过程中,我们可以通过湖仓治理能力,不断优化完善实时湖仓:

· 湖表文件治理:在湖仓开发过程中,会产生大量小文件、过期快照、孤儿文件等数据,严重影响湖表的读写性能。通过文件治理功能,可以定期合并小文件、清理过期快照/孤儿文件,提高开发效率

· 元数据查询:在提供 Catalog/Database/Table 基础信息查询的同时,会对湖表的存储、行数、任务依赖等信息进行统计,方便全局判断湖表价值

· Hive 表转换:对于历史 Hive 表,平台支持在不影响历史数据的前提下,一键转换表类型

下文以 Hudi 版为例,具体介绍袋鼠云实时湖仓产品实践。

数据入湖,搭建实时湖仓贴源层

● 创建 Flink 源端映射表

file

● 创建 Hudi 湖表

file

● 开发入湖任务

file

湖仓开发,搭建实时湖仓计算层

● 创建 Hudi Source 表

file

● 创建 Hudi Sink 表

file

● 创建维表

file

● 实时湖仓开发

file

湖仓治理,赋湖表查询和治理能力

● Hive-湖表转表任务创建

file

● 湖仓治理任务模板创建

file

● 湖仓治理任务实例运维

file

湖仓治理,赋查询和文件治理能力

● 湖仓治理任务模板创建

file

● 湖仓治理任务实例运维

file

主要特色

袋鼠云实时湖仓产品解决方案以低耦合度为主要特色,提供全方位、端到端的湖仓构建与赋能服务。该方案具备开箱即用和简易部署的特点,通过模块化设计的湖仓功能体系,以及低感知的湖仓构建能力,极大地简化了实施过程。

易用性也是其中的一大特色,旨在释放技术生产力。采用统一封装方式,界面友好直观,不仅支持低代码湖仓搭建,还实现了一站式的数据开发与治理体系,使得用户在操作过程中更为便捷高效。

此外,该方案还具备足够的开放性。它能灵活对接并自由选择各种服务,全面兼容主流数据湖架构及大数据生态系统,并已适配国产化信创环境,确保在多元化的业务场景和个性化需求中都能游刃有余。这种高度开放性和适应性赋予了袋鼠云实时湖仓产品解决方案广泛的适用性和强大的生命力。

本文根据《实时湖仓实践五讲第五期》直播内容总结而来,感兴趣的朋友们可点击链接观看直播回放视频及免费获取直播课件。

直播课件(点击文末阅读原文可直接跳转):

https://www.dtstack.com/resources/1056?src=szsm

直播视频: https://www.bilibili.com/video/BV1N64y1W73k/?spm_id_from=333.999.0.0

《数栈产品白皮书》下载地址:https://www.dtstack.com/resources/1004?src=szsm

《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm

想了解或咨询更多有关大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szcsdn

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

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

相关文章

大白话带你认识 JVM

大白话带你认识 JVM 文章目录 大白话带你认识 JVM前言一、JVM 的基本介绍1.1 Java 文件是如何被运行的① 类加载器② 方法区③ 堆④ 栈⑤ 程序计数器小总结1.2 简单的代码例子二、类加载器的介绍2.1 类加载器的流程2.1.1 加载2.1.2 链接2.1.3 初始化2.1.4 卸载2.2 类加载器的加…

c++入门学习(十八)赋值运算符

简单赋值运算符(): 最基本的赋值运算符是“”。它表示将右侧的值赋给左侧的变量。例如,x 5意味着将值5赋给变量x。 增量赋值运算符: 这是一组在赋值的同时对变量进行递增操作的运算符。常见的有、-、*、/等。例如&…

选择海外云手机需要考虑什么?

随着跨境电商行业的蓬勃发展,企业们纷纷寻找提升平台流量和广告投放效果的方法,这已成为业界的当务之急。传统的宣传模式在国内受到直播和链接带货等新兴方式的冲击,而在国外,类似的趋势也在悄然兴起,呈现出广阔的发展…

基于Docker、Minikube在PC端构建K8S试验环境

在桌面电脑上使用Docker和Minikube构建Kubernetes(K8S)试验环境,为学习和测试提供了一个理想的平台。Docker的容器化技术允许在隔离的环境中运行应用,而Minikube则简化了在单节点上部署和管理Kubernetes集群的过程。这种组合使得个…

100.乐理基础-五线谱-是否需要学习五线谱

内容参考于:三分钟音乐社 上一个内容:99.乐理基础-简谱的多声部-CSDN博客 简谱与五线谱的区别,各自的优劣势、使用场景、范围等: 要搞懂这个问题,其实核心就是四个词:首调、固定调、单声部、多声部 首调、…

高斯分布的应用,正态分布的实践应用,什么是极大似然估计法

目录 高斯分布的应用 正态分布的实践应用 什么是极大似然估计法 高斯分布的应用

Web04--Flex布局

1、flex布局 1.1 flex认识 1.2 flex组成 1.3 flex布局 1.3.1 主轴对齐方式 <!DOCTYPE html> <html lang"CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.…

Optional lab: Linear Regression using Scikit-LearnⅠ

scikit-learn是一个开源的、可用于商业的机器学习工具包&#xff0c;此工具包包含本课程中需要使用的许多算法的实现 Goals In this lab you will utilize scikit-learn to implement linear regression using Gradient Descent Tools You will utilize functions from sci…

【Hexo博客|Fluid主题】实现链接卡片效果

文章目录 前言一、CardLink库二、配置步骤1. 添加静态js文件2. 使库文件生效3. 编写启用CardLink4. 查看效果效果与前面一致。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/06e0630f994d4d67a90e18e291c3fdc5.png#pic_center) 总结 前言 今天在阅读Github…

windows?linux?如何使用JMeter

windows?linux?如何使用JMeter 安装JMeter的步骤以GUI模式启动JMeter如何在非GUI模式下运行JMeter在linux中使用JMeter 安装JMeter的步骤 JMeter 是一个纯 Java应用程序&#xff0c;应该在任何具有兼容Java实现的系统上正确运行。 安装 JMeter 的步骤 步骤1&#xff09;安…

freeRTOS总结(六)列表及列表项

1&#xff0c;列表和列表项的简介&#xff08;熟悉&#xff09; 1、列表就是一个双向循环链表&#xff0c;列表项就是其中的节点 2、其用途就是在三大链表&#xff08;挂起、阻塞、就绪&#xff09;中将任务&#xff08;列表项&#xff09;进行排序管理。 列表是 FreeRTOS 中的…

人工智能的未来展望:自然语言处理(NLP)与计算机视觉(CV)

NLP和CV是人工智能的两个重要分支&#xff0c;它们在处理和分析信息方面有不同的侧重点和挑战。 NLP&#xff08;自然语言处理&#xff09;旨在让计算机理解和生成人类语言&#xff0c;主要处理的是文本信息。NLP的研究和应用主要集中在如何让计算机理解和生成人类语言&#x…

一、windows_Dos命令——批处理命令

一、批处理编程 winr输入cmd 1、打开记事本 notepad 回车 记事本保存文件要以.bat后缀进行保存 2、显示对应.bat的盘符位置 echo off 3、echo输出字符串内容 echo "hello world" 回车 4、pause等待任意键输入 win r 回车 输入cmd 回车 echo "hel…

深度学习道路提取代码跑自己的训练集(一)——CoANet代码

首先去下载作者发布在github上面的代码 为了防止我们之前的虚拟环境遭到破坏 我们首先重新克隆一个虚拟环境 conda create --name pytorch2 --clone pytorch接下来 1. 在mypath.py中定义自己的数据集 class Path(object):staticmethoddef db_root_dir(dataset):if dataset…

element el-date-picker type=“datetimerange“

刚写完结果需求变更了。封装的时间组件重新做。结合eacharts 。 直接上代码了 日期选择组件封装 <template><section class"warning-container"><header class"query-head"><el-form :inline"true" class"query-form…

【华为 ICT HCIA eNSP 习题汇总】——题目集8

1、在VRP平台下&#xff0c;关于各个协议的外部优先级的描述&#xff0c;正确的是&#xff08;&#xff09;。 A、OSPF路由的外部优先级是15 B、IS-IS路由的外部优先级是10 C、静态路由的外部优先级是60 D、BGP路由的外部优先级是20 考点&#xff1a;路由技术原理 解析&#xf…

普通相机标定——核心函数编写

准备工作 在前面的章节中我们完成了如下操作: 打开电脑摄像头采集标定图像编写基础功能函数,实现获取文件名、删除文件等操作 现在我们已经完成了标定图像的采集,如下图所示;接下来就要完成相机的内参标定了。 我们在编程实现中会调用OpenCV中的findChessbo…

Django 为应用定制化admin独立后台

定制后界面 在应用目录下找到admin.py并进行编辑 from django.contrib.admin import AdminSite from .models import Question,Choiceclass PollsAdminSite(AdminSite):site_header"Admin-site-header"site_title"admin-site-title"index_title"admi…

SpringBoot-yml文件的配置与读取

配置 值前边必须要有空格&#xff0c;作为分隔符 使用空格作为缩进表示层级关系&#xff0c;相同的层级左侧对齐 获取 使用Value(”${键名}”) 使用ConfigurationProperties(prefix "前缀") 1.前缀要与yml配置文件中的前缀一致 2.实体类的字段名与配置文件中的键名一…

[GXYCTF2019]BabySQli1

单引号闭合&#xff0c;列数为三列&#xff0c;但是没有期待的1 2 3回显&#xff0c;而是显示wrong pass。 尝试报错注入时发现过滤了圆括号&#xff0c;网上搜索似乎也没找到能绕过使用圆括号的方法&#xff0c;那么按以往爆库爆表爆字段的方法似乎无法使用了 在响应报文找到一…