CN109189835A - 实时生成数据宽表的方法和装置 - Google Patents
实时生成数据宽表的方法和装置 Download PDFInfo
- Publication number
- CN109189835A CN109189835A CN201810953873.2A CN201810953873A CN109189835A CN 109189835 A CN109189835 A CN 109189835A CN 201810953873 A CN201810953873 A CN 201810953873A CN 109189835 A CN109189835 A CN 109189835A
- Authority
- CN
- China
- Prior art keywords
- data
- calculated
- time
- real
- wide table
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种实时生成数据宽表的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:将线上的生产数据进行实时存储;确定待生成的数据宽表所包含的字段信息;根据所述字段信息,从存储的生产数据中确定待计算的数据;利用流式计算,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表。该实施方式能够提供实时的宽表数据,将数据仓库宽表的对外服务时间从T+1延迟直接降低至分钟级别甚至更低,可以快速将复杂的离线SQL计算转换为实时计算,而且解决了由于数据增长导致的计算资源以及计算时间剧增的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种实时生成数据宽表的方法和装置。
背景技术
数据仓库是面向主题的、集成的、相对稳定的、随时间不短变化得数据集合,用以支持经营管理中的决策制定。数据仓库中的数据面向主题,与传统数据库面向应用相对应。
基于使数据结构清晰、便于数据血缘追踪以及减少重复开发等原因,数据仓库采取分层结构存储,与之相对应有分层任务处理逻辑:第一层是缓存数据层(buffer datamemory,BDM),线上业务系统数据快照,按天保存细节数据;第二层是基础数据层(foundation data memory,FDM),按业务概念组织细节数据;第三层是通用数据层(general data memory,GDM),根据业务价值建设的业务粒度汇总层。数据仓库最终以GDM宽表对下游业务进行数据服务,采取如图1所示的通用的处理架构。
数据仓库每天从线上日志服务器(nginx服务器)、MYSQL、SQLSERVER、等进行前一天数据抽取,抽取的明细落入BDM层,每天一个分区;接下来通过归档程序对数据进行处理,如数据拉链等操作生成FDM层;最后通过复杂的SQL逻辑关联操作生成GDM层宽表,对外提供服务。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
最终的GDM层宽表每天进行前一天的数据计算,用户拿到的数据为T+1数据,无法实时反应当天的数据情况;随着数据量的剧增,每天凌晨在固定时间段计算一次消耗越来越多的计算资源以及时间。
发明内容
有鉴于此,本发明实施例提供一种实时生成数据宽表的方法和装置,能够提供实时的宽表数据,将数据仓库宽表的对外服务时间从T+1延迟直接降低至分钟级别甚至更低,可以快速将复杂的离线SQL计算转换为实时计算,而且解决了由于数据增长导致的计算资源以及计算时间剧增的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种实时生成数据宽表的方法,包括:将线上的生产数据进行实时存储;确定待生成的数据宽表所包含的字段信息;根据所述字段信息,从存储的生产数据中确定待计算的数据;利用流式计算,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表。
可选地,将线上的生产数据进行实时存储包括:根据生产数据的类型,将线上的生产数据实时发送到不同的消息主题中;采用流式处理程序,实时的将消息主题中的生产数据存储到缓存系统和持久化存储系统中。
可选地,在将线上的生产数据实时发送到不同的消息主题之后,所述方法还包括:生成消息记录;
根据所述字段信息,从存储的生产数据中确定待计算的数据包括:根据所述字段信息,确定待消费的消息主题;根据消息记录,确定所述待消费的消息主题中发生变动的生产数据,将发生变动之后的生产数据作为待计算的数据。
可选地,所述方法还包括:根据所述字段信息,确定关键字;根据所述关键字,对所述待计算的数据进行预设窗口时间内的去重处理。
可选地,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表包括:将所述待计算的数据加载到内存数据库表中;利用多线程,并发计算内存数据库表中待计算的数据,以生成数据宽表。
为实现上述目的,根据本发明实施例的另一方面,提供了一种实时生成数据宽表的装置,包括:实时存储模块,用于将线上的生产数据进行实时存储;字段信息确定模块,用于确定待生成的数据宽表所包含的字段信息;待计算数据确定模块,用于根据所述字段信息,从存储的生产数据中确定待计算的数据;实时计算模块,用于利用流式计算,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表。
可选地,所述实时存储模块还用于:根据生产数据的类型,将线上的生产数据实时发送到不同的消息主题中;采用流式处理程序,实时的将消息主题中的生产数据存储到缓存系统和持久化存储系统中。
可选地,所述实时存储模块在将线上的生产数据实时发送到不同的消息主题之后还用于:生成消息记录;所述待计算数据确定模块还用于:根据所述字段信息,确定待消费的消息主题;根据消息记录,确定所述待消费的消息主题中发生变动的生产数据,将发生变动之后的生产数据作为待计算的数据。
可选地,所述装置还包括去重处理模块:根据所述字段信息,确定关键字;根据所述关键字,对所述待计算的数据进行预设窗口时间内的去重处理。
可选地,所述实时计算模块还用于:将所述待计算的数据加载到内存数据库表中;利用多线程,并发计算内存数据库表中待计算的数据,以生成数据宽表。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的实时生成数据宽表的方法。
为实现上述目的,根据本发明实施例的又一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的实时生成数据宽表的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用将线上的生产数据进行实时存储;确定待生成的数据宽表所包含的字段信息;根据所述字段信息,从存储的生产数据中确定待计算的数据;利用流式计算,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表的技术手段,所以能够提供实时的宽表数据,将数据仓库宽表的对外服务时间从T+1延迟直接降低至分钟级别甚至更低,可以快速将复杂的离线SQL计算转换为实时计算,而且解决了由于数据增长导致的计算资源以及计算时间剧增的问题。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是现有技术中数据仓库采取的处理框架结构的示意图;
图2是根据本发明实施例的实时生成数据宽表的方法的主要流程的示意图;
图3是根据本发明另一实施例的实时生成数据宽表的方法的主要流程的示意图;
图4是根据本发明实施例的实时生成数据宽表的装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图2是根据本发明实施例的实时生成数据宽表的方法的主要流程的示意图,如图2所示,该方法包括:
步骤S201:将线上的生产数据进行实时存储;
步骤S202:确定待生成的数据宽表所包含的字段信息;
步骤S203:根据所述字段信息,从存储的生产数据中确定待计算的数据;
步骤S204:利用流式计算,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表。
对于步骤S201,可以利用流式处理方案(例如storm或flink等)将线上的生产数据实时存储到数据库中(例如关系型数据库hbase)或日志服务器中,以进行持久化存储。其中,storm是一个免费开源、分布式、高容错的实时计算系统;flink是一个面向分布式数据流处理和批量数据处理的开源计算平台;hbase是一个分布式的、面向列的开源数据库,是一个适合于非结构化数据存储的数据库。
该步骤实时的将线上的生产数据进行存储,以便于后续对生产数据进行实时查询及时加工处理。
在可选的实施例中,步骤S201还可以包括:
根据生产数据的类型,将线上的生产数据实时发送到不同的消息主题中;
采用流式处理程序,实时的将消息主题中的生产数据存储到缓存系统和持久化存储系统中。
其中,生产数据的类型可以根据具体业务确定。可以根据生产数据的类型预先设定与每个类型相对应的消息主题,当生产数据产生之后,将该生产数据发送到与其类型相对应的消息主题中。例如,在电子商务领域以产品为例,生产数据可以包括产品信息、在发生交易时产生的订单号、订单明细、订单金额以及其他信息,则可以将生产数据的类型划分为:产品信息、订单信息(例如订单号)、订单明细(例如下单时间、配送地址等)、订单金额以及金额扩展表,然后可以设置与每一类型相对应预先设定5个消息主题:产品信息主题、订单信息主题、订单明细主题、订单金额主题以及订单金额扩展主题。
作为具体的示例,消息主题可以采用kafka的topic。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。
在本实施例中,可以预先创建多个不同的消息主题,每种消息主题对应一种生产数据的类型。当接收到生产数据之后,根据该生产数据的确定发送到对应的消息主题中。然后,采用流式处理程序,实时的将消息主题中的生产数据存储到缓存系统和持久化存储系统中。通过上述操作可以实时保存线上的生产数据的一个快照。
在可选的实施例中,还可以使用流式处理程序(例如storm或flink)将消息主题中的生产数据存储到缓存系统(例如redis数据库中),可以以rowkey(行健)为主键记录最新状态的生产数据。
在本实施例中,将消息主题中的生产数据存储到缓存系统或进行持久化存储是为了提高flink以及storm程序的计算性能。具体的,可以采取一些缓存系统例如redis集群等,将数据缓存至redis一部分,在后续生成数据宽表时,首先从缓存中读取待计算的数据,若缓存中没有,则从持久化存储中读取,从而可以降低单条消息的处理延迟,提高flink以及storm程序的计算性能。
在可选的实施例中,在将线上的生产数据实时发送到不同的消息主题之后,所述方法还包括:生成消息记录。
其中,消息记录中可以包含DDL日志,例如各种类型的操作语句如update(更新)、delete(删除)、insert(插入)等。其中,update语句的消息记录通过计算之前记录的字段值与当前发生修改的字段值得到修改之后的数据;delete语句的消息记录将存储的生产数据的有效状态标志位更新为无效;insert语句的消息记录直接以全字段进行更新。
对于步骤S202,数据宽表从字面意义上讲就是字段比较多(例如至少包括3个字段)的数据库表,包含的维度层次较多,通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。
在本实施例中,可以根据业务需求确定待生成的数据宽表以及生成该数据宽表所需要的字段信息。例如,根据业务需求确定待生成的数据宽表为订单明细宽表,以及生成该订单明细宽表所需要的字段信息可以包括:订单号、金额信息、订单明细信息(例如下单时间、配送地址等)和产品信息。
对于步骤S203,可以根据待生成的数据宽表所包含的字段信息,确定生成该数据宽表所需要计算的数据。
在可选的实施例中,步骤S203的具体过程可以包括:
根据所述字段信息,确定待消费的消息主题;
根据消息记录,确定所述待消费的消息主题中发生变动的生产数据,将发生变动之后的生产数据作为待计算的数据。
其中,根据待生成的数据宽表所包含的字段信息可以确定生成该数据宽表所需要使用(或关联)的消息主题,这些所需要使用的消息主题即为待消费的消息主题。例如,待生成的数据宽表为订单明细宽表,生成该数据宽表所需要的字段信息可以包括:订单号、明细信息(例如下单时间、配送地址等)、金额信息和产品信息,则可以确定待消费的消息主题为订单信息主题、订单明细主题、订单金额主题、订单金额扩展主题以及产品信息主题。
在步骤S201生成消息记录之后,可以将消息记录中最新的生产数据与之前的生产数据进行对比,其中列值发生变动的数据即为发生变动的生产数据。该发生变动的生产数据即为计算数据宽表所需要的生产数据,即待计算数据。
在可选的实施例中,可以将待消费的消息主题中所有发生变动的生产数据发送到新的消息主题中,该新的消息主题与步骤S201中的消息主题(可以看作上游消息主题)不同的是,该新的消息主题可以看作是下游消息主题,其只用于存放待消费的消息主题中所有发生变动的生产数据,以用于计算数据宽表。
对于步骤S204,其中,流式计算是指对动态产生的数据进行实时计算并及时反馈结果,是指当一定时间、数据点数、滑动、跳动等窗口内应用系统产生的流动数据到达后不进行存储,而是将流式数据直接导入内存进行实时计算。在本实施例中,将待计算的生产数据加载到内存数据库表中,将离线sql作用于内存数据库表以进行实时计算,从而生成数据宽表。作为具体的示例,内存数据库可以采用H2,其是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中
在可选的实施例中,在确定待计算的数据之后,所述方法还包括:
根据所述字段信息,确定关键字;
根据所述关键字,对所述待计算的数据进行预设窗口时间内的去重处理。
其中,关键字可以根据待生成的数据宽表所包含的字段信息确定,例如,待生成的数据宽表为订单明细宽表,则可以将订单号作为关键字。窗口时间是指在一段时间内,可以对事件或事物进行处理或反应。其可以根据应用需求灵活设置,本发明在此不做限制。作为具体的示例,其可以为1秒。在本实施例中,为了提高处理性能,节省计算资源,对于待计算的数据进行指定时间内的去重。
具体的,可以在确定待计算的生产数据之后,按照订单号分组,保证相同的订单号被分到同一个进程中的同一个线程中进行处理,方便对于窗口时间内的订单进行去重处理,从而节省计算资源。
在可选的实施例中,将所述待计算的数据加载到内存数据库表中进行实时计算可以包括:利用多线程,并发计算内存数据库表中待计算的数据,以生成数据宽表。在本实施例中,利用多线程并发计算待计算的生产数据可以节省计算时间,提高效率。
本发明实施例的实时生产数据宽表的方法,能够提供实时的宽表数据,将数据仓库宽表的对外服务时间从T+1延迟直接降低至分钟级别甚至更低,可以快速将复杂的离线sql计算转换为实时计算,而且解决了由于数据增长导致的计算资源以及计算时间剧增的问题。
在可选的实施例中,在生成数据宽表之后,可以将数据宽表发送至结果数据库(例如hbase)中,以对外提供服务;同时可以写入HDFS,下游用户可以通过hive-sql进行数据实时查询;还可发送至新的消息队列,便于后续的实时计算消费使用。其中,hbase是一个分布式的、面向列的开源数据库;HDFS(Hadoop分布式文件系统)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统;hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能;sql(StructuredQuery Language,结构化查询语言)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。
本发明实施例的实时生产数据宽表的方法可以看作两部分:第一部分为数据存储,根据业务需求实时接入所需的业务数据,每个线上业务对应一个流式处理程序和一个缓存表或者持久化存储表。根据后续是否需要计算宽表的需求来确定当前流式处理程序是否进行数据下发操作;第二部分为宽表计算逻辑,根据需要生成的宽表确定待计算的数据,采取流式计算,将待计算的数据加载进内存数据库,将离线sql作用于内存数据库,完成实时数据计算,从而可以进行数据下发对外服务。该方法可以将数据仓库宽表的对外服务时间从T+1延迟直接降低至分钟级别甚至更低,可以快速将复杂的离线hive-sql逻辑转换为实时计算结果输出,避免了数据仓库离线转实时需要大量的二次开发过程,同时降低了凌晨离线计算资源的峰值使用以及时间延迟情况。
具体的,线上业务的每个关系型数据表的生产数据会对应到kafka中的一个topic,以供下游消费计算使用;针对不同的topic,不同的flink程序消费自己的topic数据,实时更新至自己的hbase表中,同时将该业务中发生变更的所有生产数据统一发送至下游一个新的topic中;最后由一个flink程序消费新发送的topic订单数据,从hbase中获取最新数据,将待生成的数据宽表记录需要计算使用的相关的所有数据加载进当前计算线程中的内存数据库表中,执行sql,生产数据宽表。
如图3所示,为更好地说明本发明实施例的实时生产数据宽表的方法,下面以电子商务领域的产品为例进行说明。
在图3中,实时更新的数据表有5张:订单表、订单明细表、订单金额表、金额扩展表以及商品表,同时有5个流式计算任务并发维护各自的数据状态。
在本实施例中,待生成的数据宽表为订单明细宽表,需要关联订单表、订单明细表、订单金额表、金额扩展表以及商品表。订单表、订单明细表、订单金额表以及扩展金额表产生消息记录后,用最新的数据和之前的数据对比,其中有任何一个列值数据发生变动则向新的消息队列发送变动的订单号,即发送到本例中的订单号topic。
接收到订单号A(订单号A为变动的订单号)之后,按照订单号进行分组,保证相同的订单号被分到同一个进程中的同一个线程处理,方便对订单进行窗口时间内的去重处理,从而可以节省大量计算资源。窗口时间内使用去重后的一批订单关联订单表获取订单信息T1;关联订单明细表获取明细信息T2,同时匹配出对应的一批商品号B;关联订单金额表获取金额相关信息T3;关联金额扩展表获取金额分摊信息T4;由于数据宽表需要展示商品相关明细,通过使用T2关联出来的一批商品B查询商品表获取商品相关信息T5。
将T1、T2、T3、T4、T5加载进当前线程的内存数据库表(例如H2),将现有技术的离线宽表sql作用于本线程中加载到H2的数据,SQL结果作为当前线程的宽表输出,当前线程本次窗口时间内的数据计算完成之后,释放H2资源,继续处理下一窗口时间内的数据。
本实施例通过采取流式计算,并发将窗口时间内需要计算的数据维护进当前线程的内存数据库,将现有技术离线sql直接作用于线程流式计算,生成窗口时间内的数据宽表,从而完成数据仓库离线宽表到实时宽表的转换,极大提升了数据仓库对外提供服务的时效。
图4是根据本发明实施例的实时生成数据宽表的装置400的主要模块的示意图,如图4所示,该装置400包括:
实时存储模块401,用于将线上的生产数据进行实时存储;
字段信息确定模块402,用于确定待生成的数据宽表所包含的字段信息;
待计算数据确定模块403,用于根据所述字段信息,从存储的生产数据中确定待计算的数据;
实时计算模块404,用于利用流式计算,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表。
可选地,所述实时存储模块401还用于:根据生产数据的类型,将线上的生产数据实时发送到不同的消息主题中;采用流式处理程序,实时的将消息主题中的生产数据存储到缓存系统和持久化存储系统中。
可选地,所述实时存储模块401在将线上的生产数据实时发送到不同的消息主题之后还用于:生成消息记录;
所述待计算数据确定模块402还用于:根据所述字段信息,确定待消费的消息主题;根据消息记录,确定所述待消费的消息主题中发生变动的生产数据,将发生变动之后的生产数据作为待计算的数据。
可选地,所述装置还包括去重处理模块:根据所述字段信息,确定关键字;根据所述关键字,对所述待计算的数据进行预设窗口时间内的去重处理。
可选地,所述实时计算模块403还用于:将所述待计算的数据加载到内存数据库表中;利用多线程,并发计算内存数据库表中待计算的数据,以生成数据宽表。
本发明实施例提供的实时生成数据宽表的装置,能够提供实时的宽表数据,将数据仓库宽表的对外服务时间从T+1延迟直接降低至分钟级别甚至更低,可以快速将复杂的离线SQL计算转换为实时计算,而且解决了由于数据增长导致的计算资源以及计算时间剧增的问题。
上述装置可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
图5示出了可以应用本发明实施例的实时生成数据宽表的方法或实时生成数据宽表的装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息)反馈给终端设备。
需要说明的是,本发明实施例所提供的实时生成数据宽表的方法一般由服务器505执行,相应地,实时生成数据宽表的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、获取模块、确定模块和第一处理模块。其中,这些模块的名称在某种情况下并不构成对该单元本身的限定,例如,发送模块还可以被描述为“向所连接的服务端发送图片获取请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
将线上的生产数据进行实时存储;
确定待生成的数据宽表所包含的字段信息;
根据所述字段信息,从存储的生产数据中确定待计算的数据;
利用流式计算,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表。
本发明实施例的技术方案,能够提供实时的宽表数据,将数据仓库宽表的对外服务时间从T+1延迟直接降低至分钟级别甚至更低,可以快速将复杂的离线SQL计算转换为实时计算,而且解决了由于数据增长导致的计算资源以及计算时间剧增的问题。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种实时生成数据宽表的方法,其特征在于,包括:
将线上的生产数据进行实时存储;
确定待生成的数据宽表所包含的字段信息;
根据所述字段信息,从存储的生产数据中确定待计算的数据;
利用流式计算,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表。
2.根据权利要求1所述的方法,其特征在于,将线上的生产数据进行实时存储包括:
根据生产数据的类型,将线上的生产数据实时发送到不同的消息主题中;
采用流式处理程序,实时的将消息主题中的生产数据存储到缓存系统和持久化存储系统中。
3.根据权利要求2所述的方法,其特征在于,在将线上的生产数据实时发送到不同的消息主题之后,所述方法还包括:
生成消息记录;
根据所述字段信息,从存储的生产数据中确定待计算的数据包括:
根据所述字段信息,确定待消费的消息主题;
根据消息记录,确定所述待消费的消息主题中发生变动的生产数据,将发生变动之后的生产数据作为待计算的数据。
4.根据权利要求3所述的方法,其特征在于,在确定待计算的数据之后,所述方法还包括:
根据所述字段信息,确定关键字;
根据所述关键字,对所述待计算的数据进行预设窗口时间内的去重处理。
5.根据权利要求1-4任意一项所述的方法,其特征在于,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表包括:
将所述待计算的数据加载到内存数据库表中;
利用多线程,并发计算内存数据库表中待计算的数据,以生成数据宽表。
6.一种实时生成数据宽表的装置,其特征在于,包括:
实时存储模块,用于将线上的生产数据进行实时存储;
字段信息确定模块,用于确定待生成的数据宽表所包含的字段信息;
待计算数据确定模块,用于根据所述字段信息,从存储的生产数据中确定待计算的数据;
实时计算模块,用于利用流式计算,将所述待计算的数据加载到内存数据库表中进行实时计算,以生成数据宽表。
7.根据权利要求6所述的装置,其特征在于,所述实时存储模块还用于:
根据生产数据的类型,将线上的生产数据实时发送到不同的消息主题中;
采用流式处理程序,实时的将消息主题中的生产数据存储到缓存系统和持久化存储系统中。
8.根据权利要求7所述的装置,其特征在于,
所述实时存储模块在将线上的生产数据实时发送到不同的消息主题之后还用于:生成消息记录;
所述待计算数据确定模块还用于:
根据所述字段信息,确定待消费的消息主题;
根据消息记录,确定所述待消费的消息主题中发生变动的生产数据,将发生变动之后的生产数据作为待计算的数据。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括去重处理模块:
根据所述字段信息,确定关键字;
根据所述关键字,对所述待计算的数据进行预设窗口时间内的去重处理。
10.根据权利要求6-9任意一项所述的装置,其特征在于,所述实时计算模块还用于:
将所述待计算的数据加载到内存数据库表中;
利用多线程,并发计算内存数据库表中待计算的数据,以生成数据宽表。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810953873.2A CN109189835B (zh) | 2018-08-21 | 2018-08-21 | 实时生成数据宽表的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810953873.2A CN109189835B (zh) | 2018-08-21 | 2018-08-21 | 实时生成数据宽表的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189835A true CN109189835A (zh) | 2019-01-11 |
CN109189835B CN109189835B (zh) | 2021-09-03 |
Family
ID=64919116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810953873.2A Active CN109189835B (zh) | 2018-08-21 | 2018-08-21 | 实时生成数据宽表的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189835B (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829765A (zh) * | 2019-03-05 | 2019-05-31 | 北京博明信德科技有限公司 | 基于Flink和Kafka实时监控销售数据的方法、系统及装置 |
CN110399600A (zh) * | 2019-07-24 | 2019-11-01 | 北京明略软件系统有限公司 | 生成宽表的方法及装置 |
CN110430256A (zh) * | 2019-07-31 | 2019-11-08 | 中国工商银行股份有限公司 | 推送交易消息报文的方法、装置和计算机系统 |
CN110781203A (zh) * | 2019-09-09 | 2020-02-11 | 国网电子商务有限公司 | 一种数据宽表的确定方法及装置 |
CN111125161A (zh) * | 2019-12-27 | 2020-05-08 | 中国移动通信集团江苏有限公司 | 数据的实时处理方法、装置、设备及存储介质 |
CN111444691A (zh) * | 2020-03-23 | 2020-07-24 | 山东浪潮通软信息科技有限公司 | 一种快速处理Word表格数据导入表单的方法 |
CN111752944A (zh) * | 2020-05-27 | 2020-10-09 | 中国平安财产保险股份有限公司 | 数据分摊方法、装置、计算机设备及存储介质 |
CN111949657A (zh) * | 2020-07-31 | 2020-11-17 | 银盛支付服务股份有限公司 | 一种实时数仓宽表加工处理方法及系统 |
CN112148762A (zh) * | 2019-06-28 | 2020-12-29 | 西安京迅递供应链科技有限公司 | 一种实时数据流的统计方法和装置 |
CN112181979A (zh) * | 2020-09-07 | 2021-01-05 | 北京三快在线科技有限公司 | 一种数据更新方法、装置、存储介质及电子设备 |
CN112395291A (zh) * | 2020-11-24 | 2021-02-23 | 深圳市麦谷科技有限公司 | 一种根据数据资产动态生成宽表的方法及系统 |
CN112559592A (zh) * | 2020-12-11 | 2021-03-26 | 深圳前海微众银行股份有限公司 | 实时数据处理方法、装置及设备 |
CN112699130A (zh) * | 2021-01-15 | 2021-04-23 | 广东电网有限责任公司广州供电局 | 电力数据处理方法、装置、计算机设备 |
CN112800091A (zh) * | 2021-01-26 | 2021-05-14 | 北京明略软件系统有限公司 | 一种流批一体式计算控制系统及方法 |
CN112860710A (zh) * | 2021-03-18 | 2021-05-28 | 杭州云灵科技有限公司 | 数据处理方法、装置及系统、数据查询方法及系统 |
CN112925808A (zh) * | 2021-02-23 | 2021-06-08 | 上海哔哩哔哩科技有限公司 | 数据处理方法、装置及电子设备 |
CN113360494A (zh) * | 2020-03-05 | 2021-09-07 | 北京沃东天骏信息技术有限公司 | 一种宽表数据的生成方法、更新方法和相关装置 |
CN113515285A (zh) * | 2020-04-10 | 2021-10-19 | 北京沃东天骏信息技术有限公司 | 生成实时计算逻辑数据的方法和装置 |
CN113535817A (zh) * | 2021-07-13 | 2021-10-22 | 浙江网商银行股份有限公司 | 特征宽表生成及业务处理模型的训练方法和装置 |
CN113641758A (zh) * | 2021-08-11 | 2021-11-12 | 广州宸祺出行科技有限公司 | 一种基于实时数仓作数据采集的风控统计方法及装置 |
CN113672671A (zh) * | 2020-05-15 | 2021-11-19 | 西安京迅递供应链科技有限公司 | 一种实现数据加工的方法和装置 |
CN113760836A (zh) * | 2021-01-27 | 2021-12-07 | 北京京东振世信息技术有限公司 | 一种宽表计算方法和装置 |
CN114168595A (zh) * | 2021-12-09 | 2022-03-11 | 中国建设银行股份有限公司 | 一种数据分析方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547216A (zh) * | 2008-03-27 | 2009-09-30 | 新奥特(北京)视频技术有限公司 | 一种实时数据采集过程中的安全存储方法及系统 |
US8180558B1 (en) * | 2007-04-04 | 2012-05-15 | Xm Satellite Radio Inc. | System and method for improved traffic flow reporting using satellite digital audio radio service (SDARS) and vehicle communications, navigation and tracking system |
CN104298173A (zh) * | 2014-09-26 | 2015-01-21 | 北京卫星制造厂 | 面向网络化实时监控的数控机床加工过程参数采集方法 |
CN105678398A (zh) * | 2015-12-24 | 2016-06-15 | 国家电网公司 | 基于大数据技术的电力负荷预测方法及基于该方法的研究应用系统 |
CN106909598A (zh) * | 2016-07-01 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种保障计算数据一致性的处理方法、装置及系统 |
CN107294801A (zh) * | 2016-12-30 | 2017-10-24 | 江苏号百信息服务有限公司 | 基于海量实时互联网dpi数据的流式处理方法及系统 |
CN107395669A (zh) * | 2017-06-01 | 2017-11-24 | 华南理工大学 | 一种基于流式实时分布式大数据的数据采集方法及系统 |
CN107451109A (zh) * | 2017-07-05 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 报表生成方法及系统 |
CN108415944A (zh) * | 2018-01-30 | 2018-08-17 | 长安大学 | 一种交通环境下基于微服务的实时计算系统及其实现方法 |
-
2018
- 2018-08-21 CN CN201810953873.2A patent/CN109189835B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8180558B1 (en) * | 2007-04-04 | 2012-05-15 | Xm Satellite Radio Inc. | System and method for improved traffic flow reporting using satellite digital audio radio service (SDARS) and vehicle communications, navigation and tracking system |
CN101547216A (zh) * | 2008-03-27 | 2009-09-30 | 新奥特(北京)视频技术有限公司 | 一种实时数据采集过程中的安全存储方法及系统 |
CN104298173A (zh) * | 2014-09-26 | 2015-01-21 | 北京卫星制造厂 | 面向网络化实时监控的数控机床加工过程参数采集方法 |
CN105678398A (zh) * | 2015-12-24 | 2016-06-15 | 国家电网公司 | 基于大数据技术的电力负荷预测方法及基于该方法的研究应用系统 |
CN106909598A (zh) * | 2016-07-01 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种保障计算数据一致性的处理方法、装置及系统 |
CN107294801A (zh) * | 2016-12-30 | 2017-10-24 | 江苏号百信息服务有限公司 | 基于海量实时互联网dpi数据的流式处理方法及系统 |
CN107395669A (zh) * | 2017-06-01 | 2017-11-24 | 华南理工大学 | 一种基于流式实时分布式大数据的数据采集方法及系统 |
CN107451109A (zh) * | 2017-07-05 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 报表生成方法及系统 |
CN108415944A (zh) * | 2018-01-30 | 2018-08-17 | 长安大学 | 一种交通环境下基于微服务的实时计算系统及其实现方法 |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829765A (zh) * | 2019-03-05 | 2019-05-31 | 北京博明信德科技有限公司 | 基于Flink和Kafka实时监控销售数据的方法、系统及装置 |
CN112148762A (zh) * | 2019-06-28 | 2020-12-29 | 西安京迅递供应链科技有限公司 | 一种实时数据流的统计方法和装置 |
CN110399600A (zh) * | 2019-07-24 | 2019-11-01 | 北京明略软件系统有限公司 | 生成宽表的方法及装置 |
CN110430256A (zh) * | 2019-07-31 | 2019-11-08 | 中国工商银行股份有限公司 | 推送交易消息报文的方法、装置和计算机系统 |
CN110781203A (zh) * | 2019-09-09 | 2020-02-11 | 国网电子商务有限公司 | 一种数据宽表的确定方法及装置 |
CN111125161B (zh) * | 2019-12-27 | 2023-08-15 | 中国移动通信集团江苏有限公司 | 数据的实时处理方法、装置、设备及存储介质 |
CN111125161A (zh) * | 2019-12-27 | 2020-05-08 | 中国移动通信集团江苏有限公司 | 数据的实时处理方法、装置、设备及存储介质 |
CN113360494B (zh) * | 2020-03-05 | 2024-04-05 | 北京沃东天骏信息技术有限公司 | 一种宽表数据的生成方法、更新方法和相关装置 |
CN113360494A (zh) * | 2020-03-05 | 2021-09-07 | 北京沃东天骏信息技术有限公司 | 一种宽表数据的生成方法、更新方法和相关装置 |
CN111444691A (zh) * | 2020-03-23 | 2020-07-24 | 山东浪潮通软信息科技有限公司 | 一种快速处理Word表格数据导入表单的方法 |
CN111444691B (zh) * | 2020-03-23 | 2023-10-13 | 浪潮通用软件有限公司 | 一种快速处理Word表格数据导入表单的方法 |
CN113515285B (zh) * | 2020-04-10 | 2024-08-16 | 北京沃东天骏信息技术有限公司 | 生成实时计算逻辑数据的方法和装置 |
CN113515285A (zh) * | 2020-04-10 | 2021-10-19 | 北京沃东天骏信息技术有限公司 | 生成实时计算逻辑数据的方法和装置 |
CN113672671A (zh) * | 2020-05-15 | 2021-11-19 | 西安京迅递供应链科技有限公司 | 一种实现数据加工的方法和装置 |
CN113672671B (zh) * | 2020-05-15 | 2024-04-19 | 西安京迅递供应链科技有限公司 | 一种实现数据加工的方法和装置 |
CN111752944A (zh) * | 2020-05-27 | 2020-10-09 | 中国平安财产保险股份有限公司 | 数据分摊方法、装置、计算机设备及存储介质 |
CN111752944B (zh) * | 2020-05-27 | 2024-07-09 | 中国平安财产保险股份有限公司 | 数据分摊方法、装置、计算机设备及存储介质 |
CN111949657A (zh) * | 2020-07-31 | 2020-11-17 | 银盛支付服务股份有限公司 | 一种实时数仓宽表加工处理方法及系统 |
CN112181979B (zh) * | 2020-09-07 | 2024-05-24 | 北京三快在线科技有限公司 | 一种数据更新方法、装置、存储介质及电子设备 |
CN112181979A (zh) * | 2020-09-07 | 2021-01-05 | 北京三快在线科技有限公司 | 一种数据更新方法、装置、存储介质及电子设备 |
CN112395291A (zh) * | 2020-11-24 | 2021-02-23 | 深圳市麦谷科技有限公司 | 一种根据数据资产动态生成宽表的方法及系统 |
CN112559592A (zh) * | 2020-12-11 | 2021-03-26 | 深圳前海微众银行股份有限公司 | 实时数据处理方法、装置及设备 |
CN112699130A (zh) * | 2021-01-15 | 2021-04-23 | 广东电网有限责任公司广州供电局 | 电力数据处理方法、装置、计算机设备 |
CN112800091A (zh) * | 2021-01-26 | 2021-05-14 | 北京明略软件系统有限公司 | 一种流批一体式计算控制系统及方法 |
CN112800091B (zh) * | 2021-01-26 | 2024-06-11 | 北京明略软件系统有限公司 | 一种流批一体式计算控制系统及方法 |
CN113760836A (zh) * | 2021-01-27 | 2021-12-07 | 北京京东振世信息技术有限公司 | 一种宽表计算方法和装置 |
CN113760836B (zh) * | 2021-01-27 | 2024-04-12 | 北京京东振世信息技术有限公司 | 一种宽表计算方法和装置 |
CN112925808B (zh) * | 2021-02-23 | 2023-08-15 | 上海哔哩哔哩科技有限公司 | 数据处理方法、装置及电子设备 |
CN112925808A (zh) * | 2021-02-23 | 2021-06-08 | 上海哔哩哔哩科技有限公司 | 数据处理方法、装置及电子设备 |
CN112860710A (zh) * | 2021-03-18 | 2021-05-28 | 杭州云灵科技有限公司 | 数据处理方法、装置及系统、数据查询方法及系统 |
CN113535817B (zh) * | 2021-07-13 | 2024-05-14 | 浙江网商银行股份有限公司 | 特征宽表生成及业务处理模型的训练方法和装置 |
CN113535817A (zh) * | 2021-07-13 | 2021-10-22 | 浙江网商银行股份有限公司 | 特征宽表生成及业务处理模型的训练方法和装置 |
CN113641758A (zh) * | 2021-08-11 | 2021-11-12 | 广州宸祺出行科技有限公司 | 一种基于实时数仓作数据采集的风控统计方法及装置 |
CN114168595A (zh) * | 2021-12-09 | 2022-03-11 | 中国建设银行股份有限公司 | 一种数据分析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109189835B (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189835A (zh) | 实时生成数据宽表的方法和装置 | |
CN109086409B (zh) | 微服务数据处理方法、装置、电子设备及计算机可读介质 | |
US10055426B2 (en) | System and method transforming source data into output data in big data environments | |
CN110472207A (zh) | 表单生成方法和装置 | |
CN110209677A (zh) | 更新数据的方法和装置 | |
CN112948486B (zh) | 批量数据同步方法、系统及电子设备 | |
CN110019062A (zh) | 数据同步方法和系统 | |
CN110019087A (zh) | 数据处理方法及其系统 | |
CN112988741B (zh) | 实时业务数据合并方法、装置及电子设备 | |
CN109522341A (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
CN109241033A (zh) | 创建实时数据仓库的方法和装置 | |
CN109918425A (zh) | 一种实现数据导入非关系型数据库的方法和系统 | |
CN109002440A (zh) | 用于大数据多维分析的方法、装置及系统 | |
CN109039817A (zh) | 一种用于流量监控的信息处理方法和装置 | |
CN113282611A (zh) | 一种流数据同步的方法、装置、计算机设备及存储介质 | |
CN110334145A (zh) | 数据处理的方法和装置 | |
CN110019214A (zh) | 对数据拆分结果进行校验的方法和装置 | |
CN109597810A (zh) | 一种任务切分方法、装置、介质及电子设备 | |
CN109960212A (zh) | 任务发送方法和装置 | |
CN113190517B (zh) | 数据集成方法、装置、电子设备和计算机可读介质 | |
CN114357280A (zh) | 一种信息推送方法、装置、电子设备及计算机可读介质 | |
CN117950850A (zh) | 一种数据传输方法、装置、电子设备及计算机可读介质 | |
CN109947736A (zh) | 实时计算的方法和系统 | |
US20140317044A1 (en) | Method And Device for Real-Time Knowledge Processing Based on an Ontology With Temporal Extensions | |
CN110209695A (zh) | 面向多语言的数据缓存的方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |