掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法及装置

文献发布时间:2024-01-17 01:27:33


数据处理方法及装置

技术领域

本发明涉及大数据处理技术领域,尤其涉及一种数据处理方法及装置。

背景技术

随着产品需求对于数据实时性的要求越来越高,需要构建不同的数据仓库满足不同的业务需求。

相关技术中,传统离线数据仓库的数据时效性低,无法满足实时场景的数据需求,而采用Kappa架构对实时数据进行流式计算分析时,由于数据结构混乱,规范性差,容易出现数据丢失或数据重复计算的问题,导致数据计算的准确性低,且数据回溯困难。

发明内容

本发明提供一种数据处理方法及装置,用以解决现有技术中采用离线数据仓库处理数据时无法满足实时场景的数据需求,采用流式架构计算实时数据的准确性低的缺陷,提高了数据仓库处理实时数据的时效性和准确性。

本发明提供一种数据处理方法,包括:

获取待处理数据,所述待处理数据包括基于业务需求确定的实时数据;

基于批流一体架构的数据处理链路对所述待处理数据进行结构化处理,得到第一数据,所述数据处理链路包括数据贴源层、数据明细层和数据服务层,所述数据处理链路中的各层之间通过Flink SQL引擎进行数据流传输;

基于离线数据定时校正所述第一数据,得到第二数据,所述离线数据通过离线数据仓库获取。

根据本发明提供的一种数据处理方法,所述获取待处理数据包括:

基于Flink CDC技术获取源数据库的变更信息,并将所述变更信息写入消息中间件;

基于所述消息中间件得到所述待处理数据。

根据本发明提供的一种数据处理方法,所述基于批流一体架构的数据处理链路对所述待处理数据进行结构化处理,得到第一数据,包括:

基于所述数据贴源层将所述实时数据的格式进行转换,得到半结构化数据;

基于所述数据明细层对所述半结构化数据进行过滤、清洗、标准化处理和流连接处理,得到处理后的数据;

基于所述数据服务层对所述处理后的数据进行多维度聚合,得到所述第一数据。

根据本发明提供的一种数据处理方法,所述数据贴源层、所述数据明细层和数据服务层均与Kafka数据库进行数据交互,所述Kafka数据库用于为所述数据处理链路中的各层在处理数据前提供相应的注册表格;

其中,所述注册表格包括源表、维表和目标表中的至少一项。

根据本发明提供的一种数据处理方法,在所述获取待处理数据之前,所述方法还包括:

获取业务需求;

基于业务需求整理需要读入数据仓库的源表;

将所述业务需求关联的业务数据填充至模型层模板,得到模型层设计文档,所述模型层模板基于字段映射关系信息、映射信息、字段标准结构信息和关键逻辑信息得到。

根据本发明提供的一种数据处理方法,所述第二数据包括多个统计维度,在所述得到第二数据之后,所述方法还包括:

基于所述多个统计维度对所述第二数据进行统计、分析和可视化处理。

本发明还提供一种数据处理装置,包括:

获取模块,用于获取待处理数据,所述待处理数据包括基于业务需求确定的实时数据;

处理模块,用于基于批流一体架构的数据处理链路对所述待处理数据进行结构化处理,得到第一数据,所述数据处理链路包括数据贴源层、数据明细层和数据服务层,所述数据处理链路中的各层之间通过Flink SQL引擎进行数据流传输;

校正模块,用于基于离线数据定时校正所述第一数据,得到第二数据,所述离线数据通过离线数据仓库获取。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据处理方法。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据处理方法。

本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据处理方法。

本发明提供的数据处理及装置,通过批流一体架构的数据处理链路对待处理的实时数据进行结构化处理得到第一数据,并利用离线数据定时校正第一数据,得到第二数据,能够提高数据时效性,而通过规范实时数据的格式来减少流处理过程重复计算的问题,并结合离线数据对实时数据进行校正,提高了数据流处理过程的效率和准确性。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的数据处理方法的流程示意图;

图2是本发明提供的数据库与实时数据仓库进行信息交互界面示意图;

图3是本发明提供的数据处理装置的结构示意图;

图4是本发明提供的一种电子设备的实体结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合图1-图3描述本发明的数据处理方法及装置。

图1是本发明提供的数据处理方法的流程示意图,如图1所示,该数据处理方法包括如下步骤:

步骤110、获取待处理数据,待处理数据包括基于业务需求确定的实时数据。

在该步骤中,业务需求包括产品需求,例如,零售、物流、健康等都有实时数据的应用场景。

在该步骤中,实时数据可以是存在时长不超过超时时间的数据。

在该实施例中,实时数据基于可以是从源数据库(Source)中获取的数据变更信息,例如,数据插入create、更新update或删除delete等。

步骤120、基于批流一体架构的数据处理链路对待处理数据进行结构化处理,得到第一数据,数据处理链路包括数据贴源层、数据明细层和数据服务层,数据处理链路中的各层之间通过Flink SQL引擎进行数据流传输。

在该步骤中,批流一体架构包括批运算和流运算,具体来说,数据可以按产生的时间划分为历史数据与实时数据,亦可按数据的明细程度分为流水数据与切片数据;数据处理方式按窗口大小可分为流式处理与批式处理,亦可按处理时延分为实时处理与离线处理。

在该步骤中,待处理数据在数据处理链路依次经过数据贴源层、数据明细层和数据服务层,上一层的输出为下一层输入,各层之间利用Flink SQL引擎进行数据单向传输。

在该步骤中,对待处理数据进行结构化处理包括对数据格式进行规范化处理,例如,对字段进行标准化,并将字段填充至标准模板,得到设计文档等。

在图2所示的实施例中,实时数仓(数据仓库)实质上是一个实时计算平台,包括数据贴源层ODS、数据明细层DWD以及数据服务层DWS,其中,实时数仓内数据流按照ODS-DWD-DWS的流向进行传输时,均是通过Flink SQL技术实现。

在该实施例中,利用Flink SQL做流式任务的开发,上手简单,开发效率高,开发成本低,且在计算层面可以很好的继承离线数仓的开发模式。

步骤130、基于离线数据定时校正第一数据,得到第二数据,离线数据通过离线数据仓库获取。

在该步骤中,第一数据是经过加工处理后的实时数据,利用流失计算处理后,容易出现部分数据缺失的情况,可以根据对应的历史数据对经过流处理后的数据进行对照修改或修复,得到完整、可用的第二数据。

在该步骤中,校正第一数据的时间点可以根据用户需求设置,例如,离线数据仓库处理数据的时效性为T+1,则可以定时在第二天对实时数据内容进行修复。

在该步骤中,针对实时数据丢失问题,利用离线调度平台(离线数据仓库)基于实时指标现有的计算口径,定时在第二天或者自定义的时间段对实时数据进行修复。

在该实施例中,针对实时指标的加工,可以将指标划分为基础指标和复合指标,在具体开发过程中,复杂指标尽量拆分成基础指标开发,例如,当前贷余(复合指标)=昨日贷余+当日放款-当日还款(基础指标)。

在该实施例中,采用批流一体的设计方案,需要准备两套口径相同的代码,其中,一套离线代码,采用spark计算引擎,一套实时代码,采用flink计算引擎,并在T+1天用离线数据对实时数据进行修复,这样即保证了指标的时效性,又保证了指标的准确性。

本发明实施例提供的数据处理方法,通过批流一体架构的数据处理链路对待处理的实时数据进行结构化处理得到第一数据,并利用离线数据定时校正第一数据,得到第二数据,能够提高数据时效性,而通过规范实时数据的格式来减少流处理过程重复计算的问题,并结合离线数据对实时数据进行校正,提高了数据流处理过程的效率和准确性。

在一些实施例中,获取待处理数据包括:基于Flink CDC技术获取源数据库的变更信息,并将变更信息写入消息中间件;基于消息中间件得到待处理数据。

在该实施例中,在该实施例中,利用Flink CDC(Change Data Capture)技术可以将源数据库的增量变动记录,同步到一个或多个数据目的(Sink)。在同步过程中,还可以对数据进行一定的处理,例如分组(GROUP BY)、多表的关联(JOIN)等,这样分析各自独立的数据集,互不影响,同时又和上游数据保持实时的同步。

在该实施例中,数据的变更信息包括数据插入create、更新update或删除delete等。

在该实施例中,消息中间件可以是Kafka数据库,也可以是ActiveMQ、Rabbit MQ或Rocket MQ等。

图2是本发明提供的数据库与实时数据仓库进行信息交互界面示意图,在图2所示的实施例中,将数据库中的变更数据同步至实时数仓,可以采用flink CDC技术监控并捕获数据库的变动信息,并将这些变更信息按发生顺序完整记录下来,写入消息中间件(Kafka)中供下游订阅消费。

在该实施例中,需通过flink CDC技术将changelog转化成Flink SQL能够识别的Row Data模式,以保证数据库与实时数仓进行正常的数据传输过程。

本发明实施例提供的数据处理方法,通过Flink CDC技术获取源数据库的变更信息,并将变更信息写入消息中间件,能够规范化流式任务的开发流程,便于实时作业的监控与管理,以保证数据库与实时数仓之间的数据交互正常,为后续存储和校正实时数据提供便利。

在一些实施例中,基于批流一体架构的数据处理链路对待处理数据进行结构化处理,得到第一数据,包括:基于数据贴源层将实时数据的格式进行转换,得到半结构化数据;基于数据明细层对半结构化数据进行过滤、清洗、标准化处理和流连接处理,得到处理后的数据;基于数据服务层对处理后的数据进行多维度聚合,得到第一数据。

在该实施例中,实时数据仓库还可以包括数据贴源层ODS、数据明细层DWD、数据服务层DWS以及数据应用层ADS。

在该实施例中,贴源数据层ODS用于同步业务数据库的changelog数据,并以json报文格式存储于Kafka数据库中;明细数据层DWD用于对ODS层输出的数据进行过滤、清洗、标准化、Stream join等操作,供下游汇总层或应用层使用;数据服务层DWS以DWD层输出的数据为基础,进行多维度聚合,为业务提供OLAP实时分析基础;数据应用层ADS可供实时数据进行校正或修复。

在该实施例中,对业务库的变更日志的处理,日志在贴源数据层ODS为库级别或实例级别,即一个库或实例的变更日志放在同一个Kafka Topic中;由于Kafka中存储的是Json形式的半结构化数据,需要通过SQL注册相应的Source表,便于利用Flink SQL进行计算,降低开发复杂度。

在该实施例中,明细数据层DWD是以业务需求为驱动,采用维度建模的设计模式,基于具体业务特点,构建最细粒度的明细层事实表,该层的输入数据来自ODS层的输出数据,通过实时计算平台提供的Stream SQL完成ETL加工,对于日志进行简单的过滤、清洗、标准化以及多表的Stream Join。该层数据同样存储在消息列队Kafka中,需要通过SQL注册相应的Sink表,便于利用Flink SQL进行加工。

在该实施例中,数据服务层DWS主要做公共聚合数据,通过DWD层与DIM维表的Stream join,进行多维度汇总,形成一些通用粒度的聚合层次,为业务部门的OLAP实时分析提供数据基础,存储介质可以选择Oracle、Clickhouse等分析型数据库。

本发明实施例提供的数据处理方法,通过数据贴源层将实时数据的格式进行转换,得到半结构化数据,并利用数据明细层对半结构化数据进行过滤、清洗、标准化处理和流连接处理,得到处理后的数据;最后数据服务层对处理后的数据进行多维度聚合,得到第一数据,利用实时数据的分层架构对输入的实时数据进行多层筛选、处理,保证数据结构的规范,减少重复开发,能够解决传统离线数仓处理数据的时效性低的问题,保证了多样化的实施需求。

在一些实施例中,数据贴源层、数据明细层和数据服务层均与Kafka数据库进行数据交互,Kafka数据库用于为数据处理链路中的各层在处理数据前提供相应的注册表格;其中,注册表格包括源表、维表和目标表中的至少一项。

在该实施例中,数据贴源层、数据明细层和数据服务层均与Kafka数据库进行数据交互,可以是将ODS层、DWD层输出的数据统一写入Kafka存储介质中。

在该实施例中,可以将DWS层输出的数据写入Oracle或Clickhouse等分析型数据库,还可以利用KV存储(Key-Value,键值对存储)DWS层输出的数据,例如,hbase;而ADS层输出的数据存储位置根据用户需求自行设定,即基于具体应用场景具体分析ADS层输出的数据的存储位置。

在该实施例中,ODS层在处理输入的实时数据时,可以通过SQL注册相应的Source表,便于利用Flink SQL进行计算,以降低开发复杂度。

在该实施例中,DWD层处理输入的数据时,可以通过SQL注册相应的Sink表,便于利用Flink SQL进行加工。

本发明实施例提供的数据处理方法,通过将数据贴源层和数据明细层分别输出的数据存入Kafka数据库,将数据服务层层输出的数据写入Oracle或Clickhouse等分析型数据库,并通过注册相应表格为Flink SQL提供便利计算,提高了开发效率,降低了开发成本。

在一些实施例中,在获取待处理数据之前,该方法还包括:获取业务需求;基于业务需求整理需要读入数据仓库的源表;将业务需求关联的业务数据填充至模型层模板,得到模型层设计文档,模型层模板基于字段映射关系信息、映射信息、字段标准结构信息和关键逻辑信息得到。

在该实施例中,实时数据仓库的搭建及运维方式具体如下:(1)实时数仓以需求为驱动,分析现有的应用需求,梳理需要入仓的源表;(2)基于现有需求,分析需要入模(预先设计的模型层模板)的字段信息,并形成模型层设计文档,其中,模型层模板应包含字段映射、映射规则、字段标准化、关键逻辑等;(3)对实时数据仓库进行分层设计,例如,可以参考离线数据仓库的分层结构,将实时数据仓库设计为包括数据贴源层ODS、数据明细层DWD、数据服务层DWS以及数据应用层ADS的复合结构,规范化各分层表级命名,并制定Flink SQL开发规范,其中,开发规范包括source表(源表)、side表(维表)、sink表(目标表)的代码规范;(4)实时作业的监控运维。

在该实施例中,ODS层的命名规范可以表示如下形式:

命名规范:realtime_ods_{源系统名/业务类型}_{实体表名}。

在该实施例中,DWD层的命名规范可以表示如下形式:

命名规范:realtime_dwd_{主题域}_{自定义表命名}_[{附加属性}];

{主题域}:业务系统/业务类型;

{自定义表命名}:该名称准确表达实体所代表的业务含义;

{附加属性}:由于采集的日志包含了数据库的所有变更操作,包含新增、变更、删除,需要在后缀中添加附加属性区分表数据类型。(C:create,新增数据;U:update,变更数据;D:delete,删除数据)

在该实施例中,DWS层的命名规范可以表示如下形式:

realtime_dws_{业务类型}_{自定义表命名};

{业务类型}:主要指业务分析类别;

{自定义表命名}:该名称准确表达实体所代表的业务含义。

本发明实施例提供的数据处理方法,通过获取的业务需求整理需要读入数据仓库的源表,并将业务需求关联的业务数据填充至模型层模板,得到模型层设计文档,能够规范实时数据的格式和读取方式,提高后续过程对实时数据的读取和处理效率,从而降低开发的复杂度。

在一些实施例中,第二数据包括多个统计维度,在得到第二数据之后,该方法还包括:基于多个统计维度对第二数据进行统计、分析和可视化处理。

在该实施例中,第二数据属于实时数据,包括多种业务指标,针对业务指标做高度汇总,即从各个角度统计实时内容,例如从进件角度统计当日进件量和当日通过量,或者从账务角度统计当日放款和当日还款等。

在该实施例中,可以将统计、分析后的业务指标通过实时大屏等业务看板进行可视化显示,以便用户直观的观察实时数据的变更情况。

在该实施例中,用于存储统计、分析后的业务指标的存储介质可以选择KV数据库,如Hbase数据库。

本发明实施例提供的数据处理方法,通过基于多个统计维度对第二数据进行统计分析后,将汇总后的第二数据进行可视化显示,以便用户直观的观察实时数据的变更信息。

下面对本发明提供的数据处理装置进行描述,下文描述的数据处理装置与上文描述的数据处理方法可相互对应参照。

图3是本发明提供的数据处理装置的结构示意图,如图3所示,该处理装置包括:获取模块310、处理模块320和校正模块330。

获取模块310,用于获取待处理数据,待处理数据包括基于业务需求确定的实时数据;

处理模块320,用于基于批流一体架构的数据处理链路对待处理数据进行结构化处理,得到第一数据,数据处理链路包括数据贴源层、数据明细层和数据服务层,数据处理链路中的各层之间通过Flink SQL引擎进行数据流传输;

校正模块330,用于基于离线数据仓库获取的离线数据定时校正第一数据,得到第二数据。

本发明实施例提供的数据处理装置,通过批流一体架构的数据处理链路对待处理的实时数据进行结构化处理得到第一数据,并利用离线数据定时校正第一数据,得到第二数据,能够提高数据时效性,而通过规范实时数据的格式来减少流处理过程重复计算的问题,并结合离线数据对实时数据进行校正,提高了数据流处理过程的效率和准确性。

在一些实施例中,该数据处理装置还包括:文档生成模块,用于在获取待处理数据之前,获取业务需求;基于业务需求整理需要读入数据仓库的源表;将业务需求关联的业务数据填充至模型层模板,得到模型层设计文档,模型层模板基于字段映射关系信息、映射信息、字段标准结构信息和关键逻辑信息得到。

本发明实施例提供的数据处理装置,通过获取的业务需求整理需要读入数据仓库的源表,并将业务需求关联的业务数据填充至模型层模板,得到模型层设计文档,能够规范实时数据的格式和读取方式,提高后续过程对实时数据的读取和处理效率,从而降低开发的复杂度。

图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行数据处理方法,该方法包括:获取待处理数据,待处理数据包括基于业务需求确定的实时数据;基于批流一体架构的数据处理链路对待处理数据进行结构化处理,得到第一数据,数据处理链路包括数据贴源层、数据明细层和数据服务层,数据处理链路中的各层之间通过Flink SQL引擎进行数据流传输;基于离线数据仓库获取的离线数据定时校正第一数据,得到第二数据。

此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据处理方法,该方法包括:获取待处理数据,待处理数据包括基于业务需求确定的实时数据;基于批流一体架构的数据处理链路对待处理数据进行结构化处理,得到第一数据,数据处理链路包括数据贴源层、数据明细层和数据服务层,数据处理链路中的各层之间通过Flink SQL引擎进行数据流传输;基于离线数据仓库获取的离线数据定时校正第一数据,得到第二数据。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据处理方法,该方法包括:获取待处理数据,待处理数据包括基于业务需求确定的实时数据;基于批流一体架构的数据处理链路对待处理数据进行结构化处理,得到第一数据,数据处理链路包括数据贴源层、数据明细层和数据服务层,数据处理链路中的各层之间通过Flink SQL引擎进行数据流传输;基于离线数据仓库获取的离线数据定时校正第一数据,得到第二数据。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 话音数据处理方法以及支持该话音数据处理方法的电子装置
  • 一种数据处理方法、装置和用于数据处理的装置
  • 一种数据处理方法、装置和用于数据处理的装置
  • 一种数据处理方法、装置和用于数据处理的装置
  • 一种数据处理方法、装置和用于数据处理的装置
  • 数据处理设备、数据处理方法、程序转换处理设备和程序转换处理方法、程序转换处理设备、数据处理设备、程序转换处理方法和数据处理方法、数据处理设备、数据处理方法、程序分析处理设备和程序分析处理方法、数据处理设备、历史保存设备、数据处理方法和程序、以及编译处理设备
  • 图像数据处理方法、用于图像数据处理方法的程序、记录有用于图像数据处理方法的程序的记录介质和图像数据处理装置
技术分类

06120116223016