CN116303468A - 流批一体化的数据整合方法与系统 - Google Patents

流批一体化的数据整合方法与系统 Download PDF

Info

Publication number
CN116303468A
CN116303468A CN202310327580.4A CN202310327580A CN116303468A CN 116303468 A CN116303468 A CN 116303468A CN 202310327580 A CN202310327580 A CN 202310327580A CN 116303468 A CN116303468 A CN 116303468A
Authority
CN
China
Prior art keywords
data
real
time
offline
time data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310327580.4A
Other languages
English (en)
Inventor
余烽华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202310327580.4A priority Critical patent/CN116303468A/zh
Publication of CN116303468A publication Critical patent/CN116303468A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请属于数据处理技术领域,涉及一种流批一体化的数据整合方法,方法包括:通过基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表;将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。本申请还提供一种流批一体化的数据整合系统、计算机设备及其存储介质。此外,本申请流批一体化的数据整合程序存储至区块链。

Description

流批一体化的数据整合方法与系统
技术领域
本申请涉及数据处理技术领域,尤其涉及一种流批一体化的数据整合方法、系统、计算机设备及其存储介质。
背景技术
流批一体是一种架构思想,这种思想说的是同一个业务,使用同一个sql逻辑,在既可以满足流处理计算同时也可以满足批处理任务的计算。从效率层面来说,批处理只能以t+1的形式呈现业务数据,流处理只能以t+0的形式呈现业务数据,当二者独立时企业需要运行两套代码,开发、运维、人力成本高,呈现周期长。而流批一体则使用一套代码呈现两套业务数据,开发、运维成本降低一半,时效性显著提升。
金融行业存在一些口径的实时指标是需要离线与实时数据合并再进行分析计算,最新的解决方案是流批一体数据仓库。具体地,是将异构源的数据使用同一套计算引擎并结合数据仓库,理论所特有的资料存储架构完成实时、离线分析业务的数据集合。
但是,现有方案中,方案一,基于Lambda架构的流批独立已经应用成熟,但容易由于实时数据的获取失败而产生不准确的合并结果会一直存在,短时间难以升级满足业务需求;方案二,离线数据同步tidb,实时数据通过Flink合并离线数据,并进行cube计算落地表,再通过WebService接口供应用调用,这种方式对数据库资源消耗很大,维度值下钻会造成应用并发访问延时,交互体验度差。
发明内容
本申请实施例的目的在于提出一种流批一体化的数据整合方法、系统、计算机设备及存储介质,以解决现有技术中数据库资源消耗很大、合并结果不准确的问题的技术问题。
为了解决上述技术问题,本申请实施例提供一种流批一体化的数据整合方法,采用了如下所述的技术方案:所述方法包括下述步骤:
基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;
基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;
同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;
根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;
将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。
进一步地,所述基于GoldenGate工具获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合的步骤包括:
基于GoldenGate工具提取实时数据源;
通过TCP/IP协议将实时数据源投递到Kafka集群中,并对实时数据进行解析还原生成不同的消息集合。
进一步地,所述基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表的步骤包括:
通过FlinkSQL编码对Flink组件进行逻辑处理,按维度建模方式设置新主题的消息集合,作为实时数仓层;
基于实时数仓层通过FlinkSQL编码编码处理实时集市层的消息集合中的实时数据;
基于ApacheDruid数据库接收kafka集群中指定消息集合中的实时数据,进行信息配置后,即完成实时数据导入Druid数据库的分区表。
进一步地,所述同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表的步骤包括:
将离线数据基于sqoop工具传输到大数据平台HDFS;
基于大数据平台HDFS的结构,将离线数据按产品主题处理划分为一个或多个数据块,并将处理后的一个或多个数据块基于大数据平台HDFS的数据备份分配到不同的数据节点,且位置信息存储至名称节点;
将数据节点与对应的名称节点打包传输至数仓层的数据表中。
进一步地,所述根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息的步骤包括:
根据数仓表逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表;
在ApacheDruid数据库接收离线数据表中的离线数据,并进行信息配置后,即完成离线数据导入Druid数据库的分区表。
进一步地,所述将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源的步骤包括:
自定义开始字段,并对开始字段设置统计时间;
分别处理实时数据与离线数据为日期格式;
将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并通过实时数据或离线数据的日期格式对应统计时间进行归类排序,将排序后的实时数据与离线数据设置为Druid数据源。
进一步地,所述将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源的步骤之后,所述方法还包括:
通过Druid数据源定义基础指标、自定义指标。
为了解决上述技术问题,本申请实施例还提供一种流批一体化的数据整合系统,包括:
实时数据获取模块,用于基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;
实时数据导入模块,用于基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;
离线数据获取模块,用于同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;
离线数据处理模块,用于根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;
合并模块,用于将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述的流批一体化的数据整合方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的流批一体化的数据整合方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果通过基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。旨在,降低软硬件成本与研发投入成本,提高开发效率,方便后续系统数据维护,避免大量的历史数据回刷,增强数据交互能力以及数据的云存储能力,避免数据失误或缺失造成的合并结果不准确。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是本申请流批一体化的数据整合方法的一个实施例的流程图;
图3是本申请流批一体化的数据整合方法的一个实施例的简化流程图;
图4是本申请流批一体化的数据整合系统的一个实施例的结构示意图;
图5是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的流批一体化的数据整合方法一般由服务器执行,相应地,流批一体化的数据整合系统一般设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的流批一体化的数据整合方法的一个实施例的流程图,图3示出了本申请的流批一体化的数据整合方法的一个实施例的简化流程图。所述流批一体化的数据整合方法,包括以下步骤:
步骤S201,基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;
需要说明的是,GoldenGate工具是一种基于日志的结构化数据复制软件。它通过解析源数据库在线日志或归档日志获得数据的增删改变化(数据量只有日志的四分之一左右),能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟。其中,GoldenGate实现原理是通过抽取源端的redolog(重做日志)或者archivelog(归档日志),然后通过TCP/IP协议投递到目标端,最后解析还原应用到目标端,使目标端实现同源端数据同步。主要通过基于GoldenGate工具提取实时数据源,通过TCP/IP协议将实时数据源投递到Kafka集群中,并对实时数据进行解析还原生成不同的消息集合。
其中,TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是一个四层的体系结构,应用层、传输层、网络访问层和数据链路层都包含其中。应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层;传输层的主要协议有UDP、TCP,是使用者使用平台和计算机信息网内部数据结合的通道,可以实现数据传输与数据共享;网络层的主要协议有ICMP、IP、IGMP,主要负责网络中数据包的传送等;而网络访问层,也叫网络接口层或数据链路层,主要协议有ARP、RARP,主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。
Kafka集群是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。Kafka架构是由producer(消息生产者)、consumer(消息消费者)、borker(kafka集群的服务器,负责处理消息读、写请求,存储消息,在kafkacluster这一层这里,其实里面是有很多个broker(实例))、topic(消息集合/分类相当于队列,里面有生产者和消费者模型)、zookeeper(元数据信息存在zookeeper(分布式的,开放源码的分布式应用程序协调服务)中,包括:存储消费偏移量,topic(消息集合)话题信息,partition(分区)信息)这些部分组成。kafka里面的消息是由topic来组织的,可以理解为一个队列,一个队列就是一个topic(消息集合),把每个topic(消息集合)又分为很多个partition(分区)做并行,在每个partition(分区)内部消息强有序,相当于有序的队列,其中每个消息都有个序号偏移,比如0到12,从前面读往后面写。一个partition(分区)对应一个broker(实例),一个broker(实例)可以管多个partition(分区),例如,topic(消息集合)有6个partition(分区),有两个broker(实例),那每个broker(实例)管3个partition(分区)。这个partition(分区)可以很简单想象为一个文件,当数据发过来的时候它就往这个partition(分区)上面增补/追加,消息不经过内存缓冲,直接写入文件,kafka和很多消息系统不一样,很多消息系统是消费完了就把它删掉,而kafka是根据时间策略删除,而不是消费完就删除。当实时数据源投递到Kafka集群中,并对实时数据进行解析还原生成不同的消息集合,Kafka集群内将实时数据防止至消息集合中,并对实时数据增加时间序号,方便后续查找以及管理。
步骤S202,基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;
需要说明的是,FlinkSQL是Flink实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准SQL语义的开发语言,Flink底层Runtime本身就是一个流与批统一的引擎,而SQL可以做到API层的流与批统一。API(Application ProgramInterface)为应用程序可用以与计算机操作系统交换信息和命令的标准集,一个标准的应用程序界面为用户或软件开发商提供一个通用编程环境,以编写可交互运行于不同厂商计算机的应用程序。
其中,Flink是一个框架和分布式处理引擎,用于对无限制和有限制的数据留进行有状态的计算,Flink还是一个分布式系统,需要计算资源才能执行应用程序。Flink与所有常见的集权资源管理器集成,但也可以设置为作为独立集群运行,Flink旨在与前面列出的每个资源管理器兼容,通过特定于资源管理器的部署模式实现的,该模式允许Flink惯用方式与每个资源管理器进行交互。部署Flink应用程序时,Flink会根据应用程序配置的并行性自动识别所需的资源,并向资源管理器请求它们;如果发生故障,Flink会通过请求新资源来替换发生故障的容器,提交或控制应用程序的所有通信均通过REST调用(Representational State Transfer表现层状态转移)进行,简化了Flink在许多环境中的集成。Flink旨在运行任何规模的有状态流应用程序。将应用程序并行化可能在集群中分布并同时执行的数千个任务。因此,应用程序几乎可以利用无限数量的CPU,主内存,磁盘和网络IO。并且,Flink易于维护非常大的应用程序状态。它的异步和增量检查点算法可确保对处理延迟的影响降至最低,同时保证一次状态一致性。
SQL(Structured Query Language)是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。状态功能是一种API,可简化构建分布式状态应用程序的过程。它基于具有持久状态的功能,这些功能可以在强大的一致性保证下进行动态交互。
在本实施例中,通过FlinkSQL编码对Flink组件进行逻辑处理,按维度建模方式设置新主题的消息集合,作为实时数仓层;基于实时数仓层通过FlinkSQL编码编码处理实时集市层的消息集合中的实时数据;基于ApacheDruid数据库接收kafka集群中指定消息集合中的实时数据,进行信息配置后,即完成实时数据导入Druid数据库的分区表。
具体地,开发团队利用Flink组件通过FlinkSQL编码进行逻辑处理,按维度建模方式将产品主题分类成新topic,作为实时数仓层。开发团队基于实时数仓层通过FlinkSQL编码再处理实时集市层的topic。ApacheDruid(ApacheDruid是一个分布式内存实时分析系统)提供了导入外部数据源的功能,接收来自kafka集群指定topic的实时数据,进行Kafka集群、topic名称、消息样例、分区等信息配置后,即完成实时数据摄入Druid数据库的T日分区表。
ApacheDruid是一个专为大数据集的快速切片分析而设计的实时分析数据库。Druid作为数据库,最常用于:实时摄取、快速查询和高运行时长。Druid的关键特性包括:列式存储方式,Druid使用列式存储,意味着它只需要装载查询所需要的特定列,使查询特定几列时的效率有了极大提升,另外,针对每一列的数据类型都做了存储优化,因此支持快速遍历与聚合;可扩展的分布式系统,Druid一般被部署在十到百个服务器的集群中,并且可以提供每秒数百万条记录的摄取率,保留数以万亿计的记录,并且查询延迟在毫秒至数秒之间;大规模并行处理,Druid可以在一个集群并行处理一个查询,实时或批摄入,Druid可以摄入实时数据(摄入的实时数据可立即用于查询)或是批数据;自愈、自平衡、易于操作,操作者无论是扩展还是缩小集群,简单的增加或是减少服务器,集群都将在后台自动的保持均衡,而无需停机进行恢复,如果任何Druid服务器宕机,系统将自动绕过损坏机器,直到这些服务器可以被替换,Druid可以7*24小时运行而无需中途停机,就算配置变化和软件更新也无需停机;云原生,不会丢失数据的容错体系架构,一旦Druid摄取了实时数据,其副本就被安全的存储在了deep storage(典型的云存储,HDFS,或一个共享的文件系统),即使是每一个Druid服务器都宕机了,实时数据也可以从deep storage中恢复过来,由于大部分的宕机影响的仅仅是一部分Druid服务器,副本确保了当系统恢复之后查询功能依然可用;基于时间的分区,Druid的第一个分区数据是时间,而且可以添加其他域的分区,基于时间的查询只会访问匹配了查询时间范围的分区,提升基于时间的实时数据查询性能;近似算法,Druid包含了近似计数、近似排名、计算的近似直方图和分位数,上述算法只用较小的内存,通常可以显著地快于精确计算,由于有些场景是精确度比计算速度更重要,Druid也提供了精确计数与精确排名;在摄取时间自动汇总,Druid支持在摄取实时数据的时间自动汇总,汇总可以预聚合获取的实时数据,并且可以大量的节约成本与提升性能。
步骤S203,同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;
需要说明的是,Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。HDFS有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。HDFS是Master和Slave架构,每一个HDFS集群包括一个NameNode(名称节点)和多个DataNode(数据节点)。NameNode管理所有文件的元数据信息,并且负责与客户端交互。DataNode负责管理存储在该节点上的文件。每一个上传到HDFS的文件都会被划分为一个或多个数据块,这些数据块根据HDFS集群的数据备份策略被分配到不同的DataNode上,位置信息交由NameNode统一管理。
在本实施例中,将离线数据基于sqoop工具传输到大数据平台HDFS;基于大数据平台HDFS的结构,将离线数据按产品主题处理划分为一个或多个数据块,并将处理后的一个或多个数据块基于大数据平台HDFS的数据备份分配到不同的数据节点,且位置信息存储至名称节点;将数据节点与对应的名称节点打包传输至数仓层的数据表中。离线数据通过sqoop工具以T+1方式同步大数据平台HDFS,经过开发团队按产品主题加工处理生成数仓层的数据表。
sqoop是用于关系型数据库和hadoop之间传输数据的工具,sqoop可以用在离线分析中,将保存在mysql的业务数据传输到hive数仓的数仓层中,数仓分析完得到结果,再通过sqoop传输到mysql,最后通过web+echart来进行图表展示,更加直观的展示数据指标。例如:列出所有的数据库,查看某一个数据库下面的所有数据表,将MySQL中某个数据表的离线数据导入到HDFS中(全量导入),其中,通过SQL语句的方式实现数据导入操作。
步骤S204,根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;
具体地,根据数仓表逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表;在ApacheDruid数据库接收离线数据表中的离线数据,并进行信息配置后,即完成离线数据导入Druid数据库的分区表。根据数仓表再逻辑加工生成实时指标需要的对应离线数据表,在apachedruid配置库名、集市表名、分区等信息,完成离线数据摄入Druid的T-1日分区表,与实时的同一张表。
步骤S205,将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。
具体地,将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源;自定义开始字段设置统计时间,实时数据和离线数据增加日期格式。将实时数据和离线数据配置在Druid数据库同一张表,Druid数据库将实时数据设置只保留最近两个分区(实时数据为T日期分区、离线数据为T-1日期分区)。自定义字段stat_dt表示统计时间,实时数据和离线数据均处理成T日期到时分秒的格式,将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并通过实时数据或离线数据的日期格式对应统计时间进行归类排序,将排序后的实时数据与离线数据设置为Druid数据源。
步骤S206,通过Druid数据源定义基础指标、自定义指标
具体地,指标平台利用Druid数据源进行定义基础指标、自定义指标。基础指标是指直接利用数据源表进行汇总的指标,衍生指标是由多个基础指标计算(可以是跨数据源)或表维度条件处理得到的指标。具体实现方式是通过页面配置在后台生产SQL语句进行查询输出。指标平台为指标提供统一的API接口格式,供应用灵活调用。离线指标和实时指标统一在大数据平台(工具)框架,IT侧不需要多条技术线和架构维护。开发团队可以专注数仓集市的内容开发,应用展示形式的功能交于工具配置实现。
在本实施例中通过基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。旨在,降低软硬件成本与研发投入成本,提高开发效率,方便后续系统数据维护,避免大量的历史数据回刷,增强数据交互能力以及数据的云存储能力,避免数据失误或缺失造成的合并结果不准确。
需要强调的是,为进一步保证上述流批一体化的数据整合程序的私密和安全性,上述流批一体化的数据整合程序还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图4,作为对上述图2-3所示方法的实现,本申请提供了一种流批一体化的数据整合系统的一个实施例,该系统实施例与图2所示的方法实施例相对应。
如图3所示,本实施例所述的流批一体化的数据整合系统300包括:实时数据获取模块301、实时数据导入模块302、离线数据获取模块303、离线数据处理模块304、合并模块305。其中:
实时数据获取模块301,用于基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;
实时数据导入模块302,用于基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;
离线数据获取模块303,用于同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;
离线数据处理模块304,用于根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;
合并模块305,用于将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。
本实施例主要有以下有益效果:通过基于GoldenGate工具实时数据获取模块提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;基于FlinkSQL编码实时数据导入模块处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;离线数据获取模块同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;离线数据处理模块根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;合并模块将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。旨在,降低软硬件成本与研发投入成本,提高开发效率,方便后续系统数据维护,避免大量的历史数据回刷,增强数据交互能力以及数据的云存储能力,避免数据失误或缺失造成的合并结果不准确。
在本实施例的一些可选的实现方式中,所述实时数据获取模块301包括:
提取单元,用于基于GoldenGate工具提取实时数据源;
解析单元,用于通过TCP/IP协议将实时数据源投递到Kafka集群中,并对实时数据进行解析还原生成不同的消息集合。
在本实施例的一些可选的实现方式中,所述实时数据导入模块302包括:
处理单元,用于通过FlinkSQL编码对Flink组件进行逻辑处理,按维度建模方式设置新主题的消息集合,作为实时数仓层;
编码单元,用于基于实时数仓层通过FlinkSQL编码编码处理实时集市层的消息集合中的实时数据;
第一导入单元,用于基于ApacheDruid数据库接收kafka集群中指定消息集合中的实时数据,进行信息配置后,即完成实时数据导入Druid数据库的分区表。
在本实施例的一些可选的实现方式中,所述离线数据获取模块303包括:
同步单元,用于将离线数据基于sqoop工具传输到大数据平台HDFS;
分配单元,用于基于大数据平台HDFS的结构,将离线数据按产品主题处理划分为一个或多个数据块,并将处理后的一个或多个数据块基于大数据平台HDFS的数据备份分配到不同的数据节点,且位置信息存储至名称节点;
打包单元,用于将数据节点与对应的名称节点打包传输至数仓层的数据表中。
在本实施例的一些可选的实现方式中,所述离线数据处理模块304包括:
生成单元,用于根据数仓表逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表;
第二导入单元,用于在Apache Druid数据库接收离线数据表中的离线数据,并进行信息配置后,即完成离线数据导入Druid数据库的分区表。
在本实施例的一些可选的实现方式中,所述合并模块305包括:
设置单元,用于自定义开始字段,并对开始字段设置统计时间;
格式单元,用于分别处理实时数据与离线数据为日期格式;
合并单元,用于将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并通过实时数据或离线数据的日期格式对应统计时间进行归类排序,将排序后的实时数据与离线数据设置为Druid数据源
在本实施例的一些可选的实现方式中,所述系统300还包括:
定义模块,用于通过Druid数据源定义基础指标、自定义指标。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图5,图5为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图5中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如流批一体化的数据整合方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述流批一体化的数据整合方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请实施例主要有以下有益效果通过基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;基于Flink SQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。旨在,降低软硬件成本与研发投入成本,提高开发效率,方便后续系统数据维护,避免大量的历史数据回刷,增强数据交互能力以及数据的云存储能力,避免数据失误或缺失造成的合并结果不准确。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的流批一体化的数据整合方法的步骤。
本申请实施例主要有以下有益效果通过基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;基于Flink SQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。旨在,降低软硬件成本与研发投入成本,提高开发效率,方便后续系统数据维护,避免大量的历史数据回刷,增强数据交互能力以及数据的云存储能力,避免数据失误或缺失造成的合并结果不准确。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种流批一体化的数据整合方法,其特征在于,所述方法包括下述步骤:
基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;
基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;
同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;
根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;
将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。
2.根据权利要求1所述的流批一体化的数据整合方法,其特征在于,所述基于GoldenGate工具获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合的步骤包括:
基于GoldenGate工具提取实时数据源;
通过TCP/IP协议将实时数据源投递到Kafka集群中,并对实时数据进行解析还原生成不同的消息集合。
3.根据权利要求2所述的流批一体化的数据整合方法,其特征在于,所述基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表的步骤包括:
通过FlinkSQL编码对Flink组件进行逻辑处理,按维度建模方式设置新主题的消息集合,作为实时数仓层;
基于实时数仓层通过FlinkSQL编码编码处理实时集市层的消息集合中的实时数据;
基于ApacheDruid数据库接收kafka集群中指定消息集合中的实时数据,进行信息配置后,即完成实时数据导入Druid数据库的分区表。
4.根据权利要求3所述的流批一体化的数据整合方法,其特征在于,所述同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表的步骤包括:
将离线数据基于sqoop工具传输到大数据平台HDFS;
基于大数据平台HDFS的结构,将离线数据按产品主题处理划分为一个或多个数据块,并将处理后的一个或多个数据块基于大数据平台HDFS的数据备份分配到不同的数据节点,且位置信息存储至名称节点;
将数据节点与对应的名称节点打包传输至数仓层的数据表中。
5.根据权利要求3所述的流批一体化的数据整合方法,其特征在于,所述根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息的步骤包括:
根据数仓表逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表;
在ApacheDruid数据库接收离线数据表中的离线数据,并进行信息配置后,即完成离线数据导入Druid数据库的分区表。
6.根据权利要求4所述的流批一体化的数据整合方法,其特征在于,所述将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源的步骤包括:
自定义开始字段,并对开始字段设置统计时间;
分别处理实时数据与离线数据为日期格式;
将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并通过实时数据或离线数据的日期格式对应统计时间进行归类排序,将排序后的实时数据与离线数据设置为Druid数据源。
7.根据权利要求6所述的流批一体化的数据整合方法,其特征在于,所述将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源的步骤之后,所述方法还包括:
通过Druid数据源定义基础指标、自定义指标。
8.一种流批一体化的数据整合系统,其特征在于,包括:
实时数据获取模块,用于基于GoldenGate工具提取实时数据源获取实时数据,并将实时数据同步到Kafka集群中,生成不同的消息集合;
实时数据导入模块,用于基于FlinkSQL编码处理消息集合中的实时数据,并将编码后的实时数据导入Druid数据库的分区表;
离线数据获取模块,用于同步离线数据至大数据平台HDFS中,按产品主题处理离线数据生成数仓层的数据表;
离线数据处理模块,用于根据数据仓逻辑处理数据表中的离线数据并生成与实时指标需求的对应离线数据表,并在druid数据库中配置主题信息;
合并模块,用于将实时数据和离线数据基于主题信息配置在Druid数据库中的同一张表,并设置为Druid数据源。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的流批一体化的数据整合方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的流批一体化的数据整合方法的步骤。
CN202310327580.4A 2023-03-23 2023-03-23 流批一体化的数据整合方法与系统 Pending CN116303468A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310327580.4A CN116303468A (zh) 2023-03-23 2023-03-23 流批一体化的数据整合方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310327580.4A CN116303468A (zh) 2023-03-23 2023-03-23 流批一体化的数据整合方法与系统

Publications (1)

Publication Number Publication Date
CN116303468A true CN116303468A (zh) 2023-06-23

Family

ID=86803153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310327580.4A Pending CN116303468A (zh) 2023-03-23 2023-03-23 流批一体化的数据整合方法与系统

Country Status (1)

Country Link
CN (1) CN116303468A (zh)

Similar Documents

Publication Publication Date Title
US11544623B2 (en) Consistent filtering of machine learning data
Muniswamaiah et al. Big data in cloud computing review and opportunities
CN109997126B (zh) 事件驱动提取、变换、加载(etl)处理
Hu et al. Toward scalable systems for big data analytics: A technology tutorial
US9934260B2 (en) Streamlined analytic model training and scoring system
Zicari Big data: Challenges and opportunities
US11442823B2 (en) Transaction consistency query support for replicated data from recovery log to external data stores
Das et al. Big data analytics: A framework for unstructured data analysis
Lyko et al. Big data acquisition
Gürcan et al. Real-time processing of big data streams: Lifecycle, tools, tasks, and challenges
CN110019267A (zh) 一种元数据更新方法、装置、系统、电子设备及存储介质
US20210224684A1 (en) Parallel Model Deployment for Artificial Intelligence Using a Primary Storage System
Manoochehri Data just right: introduction to large-scale data & analytics
CN113282611B (zh) 一种流数据同步的方法、装置、计算机设备及存储介质
Luo et al. Big-data analytics: challenges, key technologies and prospects
Ahsaan et al. Big data analytics: challenges and technologies
CN113010542B (zh) 业务数据处理方法、装置、计算机设备及存储介质
Bansal et al. Big data streaming with spark
US20210334246A1 (en) Virtual transaction queues for database replication
CN114443599A (zh) 数据同步方法、装置、电子设备及存储介质
Karambelkar Scaling big data with Hadoop and Solr
CN113836235B (zh) 基于数据中台的数据处理方法及其相关设备
CN115599871A (zh) 基于湖仓一体的数据处理系统和方法
CN116303468A (zh) 流批一体化的数据整合方法与系统
Karambelkar Scaling Big Data with Hadoop and Solr

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination