CN115687374A - 数据发布方法、装置、存储介质及计算机设备 - Google Patents
数据发布方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN115687374A CN115687374A CN202110871410.3A CN202110871410A CN115687374A CN 115687374 A CN115687374 A CN 115687374A CN 202110871410 A CN202110871410 A CN 202110871410A CN 115687374 A CN115687374 A CN 115687374A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- changed
- serial number
- change
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据发布方法、装置、存储介质及计算机设备,其中,该方法包括:根据数据生产方生成的变更数据,生成变更数据对应的流水数据,其中流水数据用于记录变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号;对流水数据进行预处理,预处理后的流水数据的数据量小于预处理前的流水数据的数据量;将变更数据与预处理后的流水数据缓存至数据缓存层;监控流水号服务,若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从数据缓存层中读取目标流水数据以及获取目标流水数据记录的目标变更数据,并将目标变更数据发布到数据使用方,可以提升数据发布能力,可以快速、高效地实现数据的发布。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据发布方法、装置、存储介质及计算机设备。
背景技术
目前,大型、复杂的互联网广告系统每分钟生产的数据可能达到几千万甚至上亿条。广告数据具有一定的逻辑对象关系,通用的广告模型是关系实体数据模型,单一的关系数据模型对于大型复杂广告系统有很大的局限性,如何快速有效地将在数据生产方生成的数据的发布到数据使用方,已成为广告系统面临的主要问题。
发明内容
本申请实施例提供一种数据发布方法、装置、存储介质及计算机设备,可以提升数据发布能力,可以快速、高效地实现数据的发布。
第一方面,提供一种数据发布方法,所述方法包括:根据数据生产方生成的变更数据,生成所述变更数据对应的流水数据,其中,所述流水数据用于记录所述变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号,由流水号服务维护所述流水号;对所述流水数据进行预处理,所述预处理后的流水数据的数据量小于预处理前的所述流水数据的数据量;将所述变更数据与所述预处理后的流水数据缓存至数据缓存层;监控所述流水号服务,以确定流水空间的流水号是否发生变更,所述流水空间为记录所述流水数据和所述流水号的数据集合;若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据,并将所述目标变更数据发布到数据使用方。
第二方面,提供一种数据发布装置,所述装置包括:生成单元,用于根据数据生产方生成的变更数据,生成所述变更数据对应的流水数据,其中,所述流水数据用于记录所述变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号,由流水号服务维护所述流水号;预处理单元,用于对所述流水数据进行预处理,所述预处理后的流水数据的数据量小于预处理前的所述流水数据的数据量;缓存单元,用于将所述变更数据与所述预处理后的流水数据缓存至数据缓存层;监控单元,用于监控所述流水号服务,以确定流水空间的流水号是否发生变更,所述流水空间为记录所述流水数据和所述流水号的数据集合;发布单元,用于若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据,并将所述目标变更数据发布到数据使用方。
第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的数据发布方法中的步骤。
第四方面,提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上任一实施例所述的数据发布方法中的步骤。
本申请实施例通过根据数据生产方生成的变更数据,生成变更数据对应的流水数据,其中,流水数据用于记录变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号,由流水号服务维护流水号;对流水数据进行预处理,预处理后的流水数据的数据量小于预处理前的流水数据的数据量;将变更数据与预处理后的流水数据缓存至数据缓存层;监控流水号服务,以确定流水空间的流水号是否发生变更,流水空间为记录流水数据和所述流水号的数据集合;若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从数据缓存层中读取目标流水数据以及获取目标流水数据记录的目标变更数据,并将目标变更数据发布到数据使用方。本申请实施例通过基于变更数据对应的流水数据,通过流水数据预处理优化数据,通过预先缓存变更数据和流水数据降低数据独权的时延以及缓解数据读取对业务数据系统的压力,通过监控流水号服务监控到流水号发生变更时,根据发生变更的目标流水号从数据缓存层读取目标流水数据和目标流水数据对应的目标变更数据,以加快数据发布速率,提升了数据发布能力,可以快速、高效地实现数据的发布。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为申请实施例提供的广告系统的框架示意图。
图2为本申请实施例提供的实体关系模型的示意图。
图3为本申请实施例提供的键值对数据模型示意图。
图4为本申请实施例提供的数据发布方法的流程示意图。
图5为本申请实施例提供的数据发布方法的第一应用场景示意图。
图6为本申请实施例提供的数据发布方法的第二应用场景示意图。
图7为本申请实施例提供的数据发布方法的第三应用场景示意图。
图8为本申请实施例提供的数据发布方法的第四应用场景示意图。
图9为本申请实施例提供的数据发布装置的结构示意图。
图10为本申请实施例提供的数据发布装置的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据发布方法、装置、计算机设备和存储介质。具体地,本申请实施例的数据发布方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语作如下解释:
大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站,因此云技术需要以云计算作为支撑。
数据实体(Entity)表示关系型数据库或者非关系型数据的表。
字段(Field)表示数据存储实体的属性。
规则(Rule)表示可配置的数据实体的读写策略或方法。
事件(Event)包括四种事件类型,即增加类型、删除类型、修改类型和查询类型。
视图(View)是数据库系统中的虚拟数据实体(virtual entity)。是由一组查询语句构成的结果集,组合成可查询的一种虚拟数据实体对象。
触发器(Trigger)是与数据实体事件相关的一种数据库对象。它的执行是由事件来触发。触发器可以查询其他表,而且可包含复杂的结构化查询语句(Structured QueryLanguage,SQL)语句。也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。
存储过程(Stored Procedure)是在数据库系统中,一组为了完成特定功能的SQL语句集合,它存储在数据库中,一次编译后可永久有效。存储过程是数据库中的一个重要对象,在数据量特别庞大的情况下,利用存储过程能达到倍速的效率提升。
函数(Function)是指一段可以直接被另一段代码引用的代码。
数据业务域(Data Service Domain)通常指数据实体的拥有者,通常是数据实体或者数据对象的创建者以及数据实体的生产方,例如,某个流量的广告投放系统。
数据流通域(Data Circulation Domain)通常指实体的数据使用方,可以是某个“流量”或者“流量联盟”的广告系统。
数据基础设施(Data Infrastructure,DI)是数据使用方和数据存储系统之间的一个数据中间基础设施。
其中,互联网广告系统包括广告相关数据的数据生产方,比如数据生产方涉及客户管理、广告投放、流量管理、审核、回流日志、费等各种业务域。不同的业务域会产生不同的广告相关数据。广告数据需要被数据使用方进行审核、检索、分析、计算、播放等业务。广告上线产生用户日志、计费等相关的数据。因此,不同业务域生产的广告数据可能被下游的各种数据使用方使用。从数据生产方到数据使用方,数据需要快速被发布。复杂的互联网广告系统每分钟生产的数据在几千万条甚至上亿条。不同业务域的数据生产方在生产数据时,可能对应有不同的模型和相应的传输或者处理对象。同样,数据使用方对于数据的使用也可能有不同的模型、对象等。
由于数据生产方和数据使用方(可能有不同的数据存储模型(Model)、传输对象和处理对象。如何快速有效地将在数据生产方生成的数据的发布到数据使用方,已成为广告系统面临的主要问题。同时,数据的变更对于数据生产方和数据使用方必然对数据有一致性要求。一次数据变更涉及到数据的重新拼装,对象转换,对象传输,以及数据的重新检索、分析和计算。十亿级别广告数据的并行变更和数据发布更是增加了系统的复杂性。
本申请提出一种在广告数据的数据生产方和数据使用方之间的数据发布方法,可以快速、高效地实现数据的发布。该方法适用于数据生产方和数据使用方采用不同的数据模型(比如对象模型、存储模型、处理模型等)的应用场景。该数据发布方法基于数据库之上的中间件层产生的表粒度的变更数据对应的流水数据,通过流水数据预处理,即对于流水数据进行压缩、过滤、合并等,预先缓存(Cache)变更数据,以达到加速效果,加快数据发布速率,可以快速、高效地实现数据的发布;同时,在数据发布过程中,通过植入具有数据资源授权、数据对象转换(比如规则系统、复杂策略树等)等多种数据处理附件(插件),把广告数据从数据生产方发布到多个数据使用方,实现多样的数据发布。
请参阅图1,图1为本申请实施例提供的广告系统的框架示意图。该广告系统100包括数据发布平台110、数据生产方120、数据使用方130和流水号服务140。其中,该数据发布方法应用于数据发布平台110,该数据发布平台110可以运行于计算机设备中,其中,该计算机设备可以为终端或者服务器等设备。该数据发布平台110可以包括数据缓存层111(可用于进行变更数据的预先缓存),预处理层112(可用于进行数据变更流水的压缩、过滤与合并等),数据资源授权层113(可用于进行数据资源授权),数据策略计算层114(用于进行数据策略计算),规则系统115,数据对象转换层116(可用于进行数据对象转换),以及数据发布层117(可用于进行数据发布)等。
其中,规则系统115是基于分布式存储之上的一种数据读写访问策略和规则,是不同数据业务域对于分布式数据存储对象的数据模型抽象,使用规则系统115可以根据不同的具体业务需求,对于同一个或者几个数据实体,数据可以有各种类型的呈现或者表现。规则系统115为不同的数据业务域或者数据流通域提供分布式场景下数据对象的各种映射能力。
例如,图1示出了数据发布的数据流图,其主要流程如下:
(1)业务数据被业务系统中的数据生产方120变更或者修改;
(2)业务数据的变更,触发数据流水的生成以得到流水数据,每条流水数据有空间唯一的流水号;流水号服务140维护流水号的单调递增;
(3)数据发布平台110的数据缓存层111可以监控流水号的变化,主动拉取变更的数据缓存起来,具体的,根据流水号获取流水数据,以获得流水数据记录的变更的业务数据并进行缓存;还有另一种方式:在业务数据变更,生成流水数据时,同步通知数据缓存层111有业务数据的变更;
(4)数据发布平台110的数据发布层117也可以监控流水号的变化,进而拉取变更的业务数据,把变更的业务数据同步或者发送到数据使用方130;
(5)数据发布层117把数据发布到数据使用方130时,可能涉及到通过数据对象转换进行数据的对象转换(比如利用规则系统,数据策略计算层等对应的规则进行转换),因为不同的数据使用方对于数据的使用和存储可能有不同的数据模型,数据生产方生成的同一数据对象在不同的数据使用方可能对应有不同的数据对象;
(6)数据使用方130也可能主要通过发送访问请求从数据发布平台110拉取数据,数据发布平台110需要对数据使用方130做数据的使用授权(数据资源授权);
(7)流水数据预处理过程,可能涉及到流水处理的智能优化:比如进行流水压缩;比如,若同一数据在短期内被多次修改,则数据发布平台110在进行流水数据预处理时,就可以通过预处理层112进行流水压缩处理,预处理后的流水数据的数据量小于预处理前的流水数据的数据量。
其中,广告数据的生产主要包括客户管理、广告投放、审核、流量管理(比如广告位相关管理)等。广告主的广告投放,产生了大量广告相关数据。广告系统的模型通常是三层或者四层的实体关系(E-R)模型。
例如,广告主可以对应账户、资金等信息。
例如,推广计划可以包括推广方式、竞价模型、购买方式等信息。
例如,广告组可以包括费用相关的预算、出价、计费、扣费等信息,还可以包括广告定向、商品、行业分类等信息,还可以包括站点集、广告版位、流量包等信息。
例如,广告创意可以包括创意形式、创意规格、素材、元素等信息。
例如,如图2所示的实体关系(E-R)模型,一个广告主(Advertiser)可能有多个推广计划(Campaign),一个推广计划可能对应多个广告组(AdGroup),一个广告组可能有多个广告创意(AdCreative),一个广告创意也可能对应多个广告组。
例如,广告数据的使用包括广告检索、分析、计算和播放等。广告数据生成后,会被广告数据使用方进行处理:比如进行广告的检索、分析、计算和播放(上线)。广告上线后,涉及到广告的计费,以及对于产生的用户日志可能需要更进一步的分析等。广告的检索、分析、计算以及播放和广告投放是完全不一样的数据模型,比如,在广告的检索或播放端,以广告为维度的键值对(key、value)结构更方便广告的检索、分析或者计算。这样可能就涉及从实体关系模型到键值对数据模型的快速映射或者对象转换。
例如,如图3所示的键值对数据模型,关键字key为广告ID,其存储的值包括广告主信息(Advertiser)、推广计划(Campaign)、广告组信息(AdGroup)、定向(AdTarget)、广告创意素材(AdCreative)、商品信息(Product)、流量包、广告位等信息。
其中,在广告数据的数据生产方,广告数据在变更或者生成后,需要通过数据发布平台快速地发布到数据使用方。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
本申请各实施例提供了一种数据发布方法,该方法可以由终端或服务器执行,也可以由终端和服务器共同执行;本申请实施例以数据发布方法由服务器执行为例来进行说明。
请参阅图4至图8,图4为本申请实施例提供的数据发布方法的流程示意图,图5至图8为本申请实施例提供的数据发布方法的应用场景示意图。该方法包括:
步骤401,根据数据生产方生成的变更数据,生成所述变更数据对应的流水数据,其中,所述流水数据用于记录所述变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号,由流水号服务维护所述流水号。
其中,数据生产方是广告系统的各个业务域,数据流通域即数据使用方,数据使用方需要及时获取最新的数据变更信息。数据库系统通常都有数据变更的预写日志(Write-ahead logging,比如MySQL数据库的二进制日志:binlog),数据库的预写日志的粒度是实例级别。例如,所述流水数据用于记录所述变更数据的数据变更日志信息,可以采用流水日志来表示流水数据,本申请中的流水日志是在数据库之上的表粒度的数据变更日志信息。其中,粒度就是同一维度下,数据统计的粗细程度;表粒度,表示表级别,一个数据库实例可能有很多表,流水日志能精确到表级别的流水日志配置。流水日志是中间件层对于数据变更的日志记录。例如,流水日志中包含变更时间、来源、变更请求体、流水类型、流水号以及流水体等数据变更的快照信息,例如流水体可以包括变更事务的详情,比如变更数据的实体/表、变更数据的主键/唯一性索引、数据分区键、变更字段的新旧值等信息。
其中,流水日志既可以是一个全局的流水空间,也可以根据不同的业务域或者跨业务域组合不同的实体表形成各个流水空间。例如,一条流水日志对应一个数据变更的事务,即一条流水日志中可能包括一条或者多条数据记录的变更。例如,一条流水日志在一个流水空间有唯一的流水号。
其中,由流水号服务维护流水号。例如,由流水号服务维护流水号的单调递增,每当产生新的变更数据时,将流水空间中的流水号单调递增。例如,该流水号服务为序列号服务或者Sequence服务。其中,序列号服务用于实现全局唯一和单调递增的序列号。例如,序列号服务可以为基于Redis的序列号服务,基于Redis的INCR命令,Redis的”INCR AND GET”是原子操作,同时Redis是单进程单线程架构,这样就不会因为多个取号方的INCR命令导致取号重复,因此,基于Redis的INCR命令实现序列号的生成,能生成满足全局唯一与单调递增的序列号。例如,原子操作是指不会被线程调度机制打断的操作;原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断;在多进程(线程)访问共享资源时,能够确保所有其他的进程(线程)都不在同一时间内访问相同的资源。其中,Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,该表常用来做主键用。
例如,流水号可以用序列号表示,流水号可以为一个整数的数值,当有数据变更时,流水号会不断递增。例如,若变更业务存在并发的情况,则通过流水号服务保证原子操作。
步骤402,对所述流水数据进行预处理,所述预处理后的流水数据的数据量小于预处理前的所述流水数据的数据量。
可选的,所述对所述流水数据进行预处理,包括:在同一流水空间的每一个数据处理窗口期内,对所述流水数据进行合并压缩处理和过滤处理,以得到所述预处理后的流水数据。
可选的,所述流水数据包括流水日志,所述流水日志中包含目标变更数据的主键和分区键,所述对所述流水数据进行合并压缩处理和过滤处理,包括:
对所述流水数据中同一行数据对应的流水日志进行合并压缩,其中所述同一行数据为主键与分区键一致的数据;和/或
从所述流水数据中丢弃数据使用方不关注的流水日志,或者丢弃无意义的流水日志,以对所述流水数据进行过滤处理。
可选的,所述对所述流水数据中同一行数据对应的流水日志进行合并压缩,包括:
当存在多个流水日志时,从所述多个流水日志中确定出属于同一个主键的流水日志,并根据所述主键从所述流水空间中获取与所述主键一致的分区键对应的数据,以得到所述同一行数据;
若所述同一行数据包含有多次变更的流水日志,则判断所述多次变更的流水日志的变更对象是否相同;
若所述多次变更的流水日志的变更对象相同,则在对所述同一行数据进行合并压缩时,将所述多次变更的流水日志中最后一次变更的流水日志确定为所述预处理后的流水数据;或者
若所述多次变更的流水日志的变更对象不相同,则在对所述同一行数据进行合并压缩时,将所述多次变更的流水日志中不相同的变更对象进行合并,以及将所述多次变更的流水日志中相同的非变更对象压缩成一个相同的非变更对象,以将包含有所述一个相同的非变更对象和所述多个不相同的变更对象的数据确定为所述预处理后的流水数据。
例如,同一行数据在一段时间内可能被多次修改,甚至有些数据的修改对于数据使用方来说可能是无意义的或者不关注的修改,因此很有必要进行流水数据的预处理,以减少或者剔除不关注或无意义的数据,进而优化流水数据。数据生产方的数据与数据使用方的数据的一致性是一段时间内的最终一致性。复杂的互联网广告系统每分钟产生的数据在几千万条甚至上亿条,因此对流水数据进行预处理是数据发布平台对于加速数据发布的一种重要手段,例如,对流水数据进行预处理可以包括对流水数据进行流水合并压缩和过滤等处理。
其中,对流水数据进行预处理,即对于同一个流水空间,在每一个数据处理窗口期(时间窗口)内进行流水数据的合并压缩处理和过滤处理。例如,当数据并发时,可能有多个数据处理窗口期,可以同时对多个数据处理窗口期内的流水数据并行进行流水数据的预处理,也可以对多个数据处理窗口期内的流水数据依次进行流水数据的预处理。
例如,合并压缩处理包括对于同一行数据(主键,分区键一致)的变更数据日志(流水日志)进行合并压缩。其中,主键能唯一标识数据,但是主键不一定能定位到数据的存储位置,而流水日志中记录了变更数据的主键和分区键,因此可以先通过主键找到变更数据,即属于同一个主键的多个流水日志均对应一个业务数据进行了变更,而通过分区键可以定位到流水日志(或者流水日志对应的变更数据)的存储位置,进而通过主键和分区键一致性来确定出同一行数据。例如,在进行流水合并压缩时,若针对某个业务对应的同一行数据在一段时间内进行了多次修改,则同一行数据中存在多次变更的流水日志,第一流水日志中记录了第一变更数据中被修改的细节A(变更对象)和未修改内容,第二流水日志中记录了第二变更数据中修改的细节B(变更对象)和未修改内容,在进行合并压缩时,比对第一流水日志和第二流水日志,若细节A和细节B属于相同的变更对象,则根据变更时间先后顺序,最后一次变更的流水日志确定为预处理后的流水数据。例如,若细节A和细节B不属于相同的变更对象,则在合并压缩后生成一个含有细节A、细节B以及第一流水日志和第二流水日志中共有的未修改内容的预处理后的流水数据,以减少原流水数据的数据量。例如,该变更对象可以为业务数据内的实体/表、主键/唯一性索引、数据分区键、字段等内容。
例如,过滤处理包括丢弃数据使用方不关注或者无意义的数据变更日志(流水日志);可以理解的,可以根据不同的数据使用方进行不同的过滤处理,比如同一个数据表,可能A数据使用方需要,就不能过滤,B数据使用方不感兴趣,就需要过滤。
例如,如图5所示,在原始流水空间序列中进行流水数据预处理,具体为对时间窗口T内的流水数据进行合并压缩处理和过滤处理,以得到压缩后的流水空间序列,对于压缩后的时间窗口T’内的压缩后流水数据队列,小于压缩前的时间窗口T内的流水数据队列。其中,流水数据队列表示流水数据生成的先后顺序,流水号按照从小到大的序列进行排队。通常是固定的时间窗口,即T等于T’,比如时间窗口为100毫秒,预处理后的流水数据肯定比压缩前的流水数据要少,进而提高系统的处理能力,以及加速数据发布的时间。
步骤403,将所述变更数据与所述预处理后的流水数据缓存至数据缓存层。
可选的,所述将所述变更数据与所述预处理后的流水数据缓存至数据缓存层,包括:控制所述数据缓存层监控流水号的变化,当监控到流水号变化时,控制所述数据缓存层根据所述流水号获取对应的预处理后的流水数据并进行缓存,以及主动拉取所述预处理后的流水数据记录的变更数据并进行缓存;或者
当生成所述变更数据对应的流水数据时,将变更通知发送至所述数据缓存层,并控制所述数据缓存层根据所述变更通知获取所述预处理后的流水数据以及所述预处理后的流水数据记录的变更数据并进行缓存。
其中,变更数据对应的流水数据是构建在数据库之上的中间件层的数据变更日志(流水日志)。因此,数据发布平台通过感知流水机制是可以感知数据的变更信息,从而为即将到来的变更数据的发布(比如数据查询读取)的预先数据缓存提供了条件。预先缓存变更的数据行到缓存系统(比如数据缓存层)中,以降低数据读取的时延,缓解大量数据读取对于业务数据系统的压力,也加快了数据发布的速度。
其中,数据生产方是各个业务域,流通域作为数据使用方订阅业务域,对于数据的变更(流水),根据数据变更消息,读取变更的数据。数据库系统的数据变更消息主要是日志文件(比如:binlog),使用日志文件监控数据变更消息,数据使用方搭建数据库的数据复制系统来监控数据的变更。采用数据变更流水的方式来实现数据生产方和数据使用方之间的变更通知。即业务数据被业务域变更时,由数据基础设施DI对于数据的变更产生流水数据。
其中,数据发布平台的数据缓存更新方式主要有两种:第一种更新方式,数据缓存层可以监控流水号的变化,主动拉取变更的数据缓存起来,具体的,根据流水号获取流水数据,以获得流水数据记录的变更的业务数据并进行缓存。第二种更新方式,在业务数据变更,生成流水数据时,同步通知数据缓存层有业务数据的变更。
例如,如图6所示,示出了第二种更新方式的具体内容:
a)业务域发起数据的变更请求(数据写入请求)到数据系统;
b)数据写入:数据系统先变更业务数据;
c)复制通知:通知数据缓存层有业务数据的变更;数据缓存层根据通知内容拉取变更的数据及变更的数据对应的流水日志;
d)生成变更数据的流水日志。
步骤404,监控所述流水号服务,以确定流水空间的流水号是否发生变更,所述流水空间为记录所述流水数据和所述流水号的数据集合。
例如,流水号服务具有多个流水节点,每个流水节点对应一个流水空间,通过流水号服务来管理流水号,该流水号可以用序列号表示。其中,所述流水空间为记录所述流水数据和所述流水号的数据集合。例如,可以将使用范围相近的实体表形成一个数据集合,这些实体表的变更就共用一个流水号服务的流水节点。比如可以将广告业务相关的实体表合成一个数据集合,以形成对应的流水空间,通过该流水空间存储广告业务相关的流水号和变更数据存储表。若广告业务发生多个数据变更,而每一条变更数据对应的流水日志具有对应的流水号,将该广告业务的多个变更数据对应的流水日志的流水号存入该广告业务对应的数据集合(即流水空间),一个数据集合可以存储多个流水日志分别对应的流水号,且一条流水日志在一个流水空间有唯一的流水号。
可选的,所述监控所述流水号服务,以确定流水空间的流水号是否发生变更,包括:每隔预设时间段查询所述流水号服务,将当前查询到的流水号和上次记录的流水号的值进行比对;若所述当前查询到的流水号的值大于所述上次记录的流水号的值,则确定所述当前查询到的流水号发生变更。
其中,在进行广告数据变更发布的过程中,通过数据发布平台监控流水号服务,若感知到相关流水空间的流水号的变化,则读取流水日志,并获取变更的数据记录,然后读取业务域数据,并发布数据到数据使用方。
其中,在监控流水号服务以感知相关流水空间的流水号的变化时,每隔预设时间段(比如100毫秒),查询流水号服务,以确定流水空间的流水号是否变更(增大),比如将当前查询到的流水号和上次记录的流水号的值进行比对,以确定流水号的变更,比如流水号增大了多少值,就表示有多少的业务的数据变更。
步骤405,若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据,并将所述目标变更数据发布到数据使用方。
其中,在进行广告数据变更发布的过程中,通过数据发布平台监控流水号服务,若感知到相关流水空间的流水号的变化,则读取流水日志,并获取变更的数据记录,然后读取业务域数据,并发布数据到数据使用方。例如,在读取业务域数据时,通常是读取变更的数据。
可选的,所述根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据,包括:根据所述目标流水号确定所述目标流水数据对应的流水日志;根据所述目标流水数据对应的流水日志的主键和分区键寻址所述目标变更数据的数据行,以从所述数据缓存层中获取所述目标流水数据记录的目标变更数据。
例如,流水日志中包含变更时间、来源、变更请求体、流水类型、流水号以及流水体等数据变更的快照信息,例如流水体可以包括变更事务的详情,比如变更数据的实体/表、变更数据的主键/唯一性索引、数据分区键、变更字段的新旧值等信息。确定流水空间的流水号发生变更,则可以根据发生变更的目标流水号确定目标流水数据对应的流水日志,即根据流水号能寻址到流水日志对应的数据变更的事务以及相关的快照信息。其中,目标流水号为发生变更的流水号。其中,流水日志中包含变更数据的主键和分区键,可以根据主键和分区键能寻址到数据行。
可选的,在所述将所述目标变更数据发布到数据使用方之前,还包括:将所述数据生产方所在的业务域生成的所述目标变更数据的第一数据对象,按照所述数据使用方的不同需求转换为所述数据使用方对应的第二数据对象。
其中,数据发布平台为了加速数据的发布,使用了预处理、数据预缓存等技术。同时,因为数据使用方对于数据的使用可能和业务域有不同的数据模型,不同的数据使用方也可能采用不同的数据模型,数据发布平台可能根据不同的需求做相应的数据对象转换。比如预设对业务生产方的业务域对应的数据设置相应的规则系统、策略计算等规则,以形成待匹配规则集合。
其中,业务域作为数据实体或者数据对象的拥有者,通常是数据实体或者数据对象的创建者以及实体数据的生产方。复杂的业务系统,例如互联网广告系统,通常一个数据实体的数据都是海量级的,数据实体的存储可能都是分区分片的分布式存储。因为数据的使用和流通具有多样性,同一个数据实体在不同的数据使用方的数据流通域可能需要不同的映射或者数据对象。
其中,数据发布平台需要具有数据对象转换的能力,即将数据生产方所在的业务域生成的目标变更数据的第一数据对象,按照数据使用方的不同需求转换为数据使用方对应的第二数据对象,然后再将转换后的第二数据对象发布至数据使用方。本申请中的规则系统融合数据库系统的视图(View),存储过程(Store Procedure),触发器(Trigger),以及用户自定义函数(User-defined Function),复杂的策略树计算,以及其它可能的对象转换等。其中,同一数据实体表的不同数据行,通过不同的规则配置,可以有各种数据映射或者对象变换;同一数据实体表,通过不同的规则配置,可以有各种数据映射或者呈现(Projecting);多个数据实体表通过不同的规则或者复杂策略树配置,可以有不同数据映射和策略计算结果。
可选的,所述将所述数据生产方所在的业务域生成的所述目标变更数据的第一数据对象,按照所述数据使用方的不同需求转换为所述数据使用方对应的第二数据对象,包括:接收所述数据使用方发送的针对所述目标变更数据的第一数据对象的第一访问请求;根据所述第一访问请求,从与所述第一数据对象具有对应关系的待匹配规则集合中确定出目标规则,并根据所述目标规则将所述第一数据对象转换为数据使用方对应的第二数据对象。
其中,数据对象转换,即数据发布平台通过待匹配规则集合(比如规则、策略树计算以及其它对象转换)中相匹配的目标规则,即将数据生产方所在的业务域生成的所述目标变更数据的第一数据对象,按照数据使用方的不同需求转换为数据使用方对应的第二数据对象。具体的,若接收到数据使用方发送的针对目标变更数据的第一数据对象的第一访问请求,其中第一访问请求包括第一请求语句以及数据使用方标识,数据使用方标识用于指示目标数据流通域,根据第一数据对象以及目标数据流通域确定待匹配规则集合,其中,待匹配规则集合与第一数据对象具有对应关系,且待匹配规则集合包括至少一条待匹配规则,每条待匹配规则包括语句规则命中条件以及操作规则之间的对应关系;若第一请求语句满足目标规则所包括的语句规则命中条件,则根据第一请求语句以及目标规则所包括的操作规则,将第一数据对象转换为与数据使用方对应的第二数据对象,其中,目标规则属于待匹配规则集合所包括的待匹配规则。例如,在第一请求语句中会携带第一数据对象所对应的字段,第一数据对象为一个表,基于数据使用方标识可确定数据使用方,由此确定该数据使用方所对应的目标数据流通域,经过对第一访问请求的解析,得到第一请求语句,并根据第一请求语句的内容(比如数据实体、条件以及请求数据内容等),分析访问请求可能匹配的规则,即得到待匹配规则集合,待匹配规则集合包括至少一条待匹配规则,待匹配规则可能是确定的结果(比如命中或不命中),也可能是不确定的结果(比如待定),对于不确定的结果,可能需要在后续的执行阶段,或在执行后的数据结果融合阶段才能确定是否命中。因此,一个访问请求的规则可能存在一个或多个结果集合。若第一请求语句满足目标规则所包括的语句规则命中条件,则根据第一请求语句以及目标规则所包括的操作规则,将第一数据对象转换为与数据使用方对应的第二数据对象。
例如,如图7所示,第一数据对象以数据实体(Entity)表为例,对第一访问请求解析后得到第一请求语句,例如,第一请求语句包括具体的事件,比如事件包括查询、插入、更新、删除等,基于该第一数据对象以及对应的目标数据流通域,获取第一请求语句对应事件的待匹配规则集合,其中,每条待匹配规则集合包括语句规则命中条件及其对应的操作规则,语句规则命中条件包括事件以及规则命中条件,例如,第一请求语句为“删除”事件,即待匹配规则集合中的待匹配规则均属于“删除”事件下的规则,由此,再分别判断第一请求语句是否命中“语句规则命中条件”中的“规则命中条件”。比如某个事件对应的语句规则命中条件为条件1,以及对应的操作规则为规则(Ruleltem),可以通过条件1对应的规则(Ruleltem)将第一数据对象转换为与数据使用方对应的第二数据对象;比如某个事件对应的语句规则命中条件为条件2,以及对应的操作规则为其他对象转换方式,可以通过条件2对应的其它对象转换方式将第一数据对象转换为与数据使用方对应的第二数据对象;比如某个事件对应的语句规则命中条件为条件n,以及对应的操作规则为策略树1,可以通过条件n对应的策略树1将第一数据对象转换为与数据使用方对应的第二数据对象。
可选的,在所述接收所述数据使用方发送的针对所述目标变更数据的第一数据对象的第一访问请求之后,还包括:通过所述第一访问请求中携带的预先定义的第一授权特征字段,匹配到与所述第一授权特征字段匹配的第一授权策略树,并根据所述第一授权策略树对所述第一访问请求进行数据资源授权。
例如,数据也是一种资源,数据的使用也需要必要的授权,数据发布平台对于数据也需要进行数据资源授权。
例如,对于需要访问授权的数据资源,需要先进行数据资源授权(鉴权),然后在数据访问时才可能涉及到数据对象转换(规则系统,数据策略计算)等。
其中,业务域作为数据实体或者数据对象的拥有者,对于数据的流通或者使用拥有一定的话语权。数据作为一种资源,需要得到保护,对于数据资源的访问也需要得到授权。资源授权可以是一种基于策略树配置的授权策略。其中,对于需要进行授权的访问请求,通过访问请求中携带的预先定义的授权特征字段,匹配到相应的授权策略树(policytree),策略引擎对于授权特征字段匹配的授权策略树进行数据资源授权。例如,该授权特征字段也可以包括认证字段或授权字段。该授权特征字段可以用于从预设规则数据库中调用对应的授权策略树,以根据与授权特征字段匹配的授权策略树进行数据资源授权。
如图8所示,对于数据实体(Entity)中的数据资源,若某个访问请求中携带有预先定义的授权特征字段包括AAA字段1与AAA字段2等,则匹配到相应的授权策略树为策略树1;若某个访问请求中携带有预先定义的授权特征字段包括AAA字段1与AAA字段3等,则匹配到相应的授权策略树为策略树2。
可选的,在所述将所述目标变更数据发布到数据使用方之前,还包括:建立专用发布通道,以供所述目标变更数据通过所述专用发布通道发布到数据使用方。
可选的,建立专用发布通道,包括:预先建立多个专用发布通道,且不同的专用发布通道匹配不同类型的数据生产方;当待发布的所述目标变更数据的数据生产方属于所述多个专用发布通道所匹配的数据生产方时,从所述多个专用发布通道中选取与所述目标变更数据的数据生产方对应的专用发布通道。
可选的,建立专用发布通道,包括:在满足预设条件时,建立专用发布通道,所述预设条件包括以下任一种:
待发布的所述目标变更数据的数据量大于预设数据量;
待发布的所述目标变更数据对应的数据生产方在历史时段内的数据发布量大于预设发布量;
待发布的所述目标变更数据对应的数据生产方的活跃度大于预设活跃度。
其中,数据的发布是并行多通道的。基于广告系统的特殊性,以及不同广告主的特性,数据发布平台可以对于特定广告主建立专用发布通道,比如对于广告量较大的或者活跃度较高的广告主,建立专用发布通道。例如,可以提前建立多个专用发布通道,且不同的专用发布通道可以匹配不同类型的数据生产方,对需要使用专用通道的数据生产方可以通过对应类型的专用发布通道进行数据发布。例如,也可以在满足预设条件时,才建立专用发布通道,并通过建立的专用发布通道进行数据发布。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例通过根据数据生产方生成的变更数据,生成变更数据对应的流水数据,其中,流水数据用于记录变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号,由流水号服务维护流水号;对流水数据进行预处理,所述预处理后的流水数据的数据量小于预处理前的所述流水数据的数据量;将变更数据与预处理后的流水数据缓存至数据缓存层;监控流水号服务,以确定流水空间的流水号是否发生变更,流水空间为记录流水数据和流水号的数据集合;若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从数据缓存层中读取目标流水数据以及获取目标流水数据记录的目标变更数据,并将目标变更数据发布到数据使用方。本申请实施例通过基于变更数据对应的流水数据,通过流水数据预处理优化数据,通过预先缓存变更数据和流水数据降低数据独权的时延以及缓解数据读取对业务数据系统的压力,通过监控流水号服务监控到流水号发生变更时,根据发生变更的目标流水号从数据缓存层读取目标流水数据和目标流水数据对应的目标变更数据,以加快数据发布速率,提升了数据发布能力,可以快速、高效地实现数据的发布。同时,在数据发布过程中,可以进行数据资源授权、数据对象转换等数据处理,把广告数据从数据生产方发布到多个数据使用方,实现多样的数据发布。
为便于更好的实施本申请实施例的数据发布方法,本申请实施例还提供一种数据发布装置。请参阅图9,图9为本申请实施例提供的数据发布装置的结构示意图。其中,该数据发布装置900可以包括:
生成单元901,用于根据数据生产方生成的变更数据,生成所述变更数据对应的流水数据,其中,所述流水数据用于记录所述变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号,由流水号服务维护所述流水号;
预处理单元902,用于对所述流水数据进行预处理,所述预处理后的流水数据的数据量小于预处理前的所述流水数据的数据量;
缓存单元903,用于将所述变更数据与所述预处理后的流水数据缓存至数据缓存层;
监控单元904,用于监控所述流水号服务,以确定流水空间的流水号是否发生变更,所述流水空间为记录所述流水数据和所述流水号的数据集合;
发布单元905,用于若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据,并将所述目标变更数据发布到数据使用方。
可选的,预处理单元902,可以用于在同一流水空间的每一个数据处理窗口期内,对所述流水数据进行合并压缩处理和过滤处理,以得到所述预处理后的流水数据。
可选的,所述流水数据包括流水日志,所述流水日志中包含目标变更数据的主键和分区键,预处理单元902,具体用于:对所述流水数据中同一行数据对应的流水日志进行合并压缩,其中所述同一行数据为主键与分区键一致的数据;和/或从所述流水数据中丢弃数据使用方不关注的流水日志,或者丢弃无意义的流水日志,以对所述流水数据进行过滤处理。
可选的,预处理单元902在所述对所述流水数据中同一行数据对应的流水日志进行合并压缩时,可以用于:当存在多个流水日志时,从所述多个流水日志中确定出属于同一个主键的流水日志,并根据所述主键从所述流水空间中获取与所述主键一致的分区键对应的数据,以得到所述同一行数据;若所述同一行数据包含有多次变更的流水日志,则判断所述多次变更的流水日志的变更对象是否相同;若所述多次变更的流水日志的变更对象相同,则在对所述同一行数据进行合并压缩时,将所述多次变更的流水日志中最后一次变更的流水日志确定为所述预处理后的流水数据;或者若所述多次变更的流水日志的变更对象不相同,则在对所述同一行数据进行合并压缩时,将所述多次变更的流水日志中不相同的变更对象进行合并,以及将所述多次变更的流水日志中相同的非变更对象压缩成一个相同的非变更对象,以将包含有所述一个相同的非变更对象和所述多个不相同的变更对象的数据确定为所述预处理后的流水数据。
可选的,发布单元905在根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据时,可以用于:根据所述目标流水号确定所述目标流水数据对应的流水日志;根据所述目标流水数据对应的流水日志的主键和分区键寻址所述目标变更数据的数据行,以从所述数据缓存层中获取所述目标流水数据记录的目标变更数据。
可选的,缓存单元903,可以用于:控制所述数据缓存层监控流水号的变化,当监控到流水号变化时,控制所述数据缓存层根据所述流水号获取对应的预处理后的流水数据并进行缓存,以及主动拉取所述预处理后的流水数据记录的变更数据并进行缓存;或者当生成所述变更数据对应的流水数据时,将变更通知发送至所述数据缓存层,并控制所述数据缓存层根据所述变更通知获取所述预处理后的流水数据以及所述预处理后的流水数据记录的变更数据并进行缓存。
可选的,监控单元904,可以用于:每隔预设时间段查询所述流水号服务,将当前查询到的流水号和上次记录的流水号的值进行比对;若所述当前查询到的流水号的值大于所述上次记录的流水号的值,则确定所述当前查询到的流水号发生变更。
可选的,发布单元905在所述将所述目标变更数据发布到数据使用方之前,还可以用于:将所述数据生产方所在的业务域生成的所述目标变更数据的第一数据对象,按照所述数据使用方的不同需求转换为所述数据使用方对应的第二数据对象。
可选的,发布单元905在将所述数据生产方所在的业务域生成的所述目标变更数据的第一数据对象,按照所述数据使用方的不同需求转换为所述数据使用方对应的第二数据对象时,可以用于:接收所述数据使用方发送的针对所述目标变更数据的第一数据对象的第一访问请求;根据所述第一访问请求,从与所述第一数据对象具有对应关系的待匹配规则集合中确定出目标规则,并根据所述目标规则将所述第一数据对象转换为数据使用方对应的第二数据对象。
可选的,发布单元905在所述接收所述数据使用方发送的针对所述目标变更数据的第一数据对象的第一访问请求之后,还可以用于:通过所述第一访问请求中携带的预先定义的第一授权特征字段,匹配到与所述第一授权特征字段匹配的第一授权策略树,并根据所述第一授权策略树对所述第一访问请求进行数据资源授权。
可选的,发布单元905在所述将所述目标变更数据发布到数据使用方之前,还可以用于:建立专用发布通道,以供所述目标变更数据通过所述专用发布通道发布到数据使用方。
可选的,发布单元905在建立专用发布通道时,可以用于:预先建立多个专用发布通道,且不同的专用发布通道匹配不同类型的数据生产方;当待发布的所述目标变更数据的数据生产方属于所述多个专用发布通道所匹配的数据生产方时,从所述多个专用发布通道中选取与所述目标变更数据的数据生产方对应的专用发布通道。
可选的,发布单元905在建立专用发布通道时,可以用于:在满足预设条件时,建立专用发布通道,所述预设条件包括以下任一种:
待发布的所述目标变更数据的数据量大于预设数据量;
待发布的所述目标变更数据对应的数据生产方在历史时段内的数据发布量大于预设发布量;
待发布的所述目标变更数据对应的数据生产方的活跃度大于预设活跃度。
需要说明的是,本申请实施例中的数据发布装置900中各模块的功能可对应参考上述各方法实施例中任意实施例的具体实现方式,这里不再赘述。
上述数据发布装置中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各个单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个单元对应的操作。
数据发布装置900例如可以集成在具备储存器并安装有处理器而具有运算能力的终端或服务器中,或者该数据发布装置900为该终端或服务器。该终端可以为智能手机、平板电脑、笔记本电脑、智能电视、智能音箱、穿戴式智能设备、个人计算机(PersonalComputer,PC)等设备,终端还可以包括客户端,该客户端可以是视频客户端、浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
图10为本申请实施例提供的数据发布装置的另一示意性结构图,如图10所示,数据发布装置1000可以包括:通信接口1001,存储器1002,处理器1003和通信总线1004。通信接口1001,存储器1002,处理器1003通过通信总线1004实现相互间的通信。通信接口1001用于装置1000与外部设备进行数据通信。存储器1002可用于存储软件程序以及模块,处理器1003通过运行存储在存储器1002的软件程序以及模块,例如前述方法实施例中的相应操作的软件程序。
在一些实施例中,该处理器1003可以调用存储在存储器1002的软件程序以及模块执行如下操作:
根据数据生产方生成的变更数据,生成所述变更数据对应的流水数据,其中,所述流水数据用于记录所述变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号,由流水号服务维护所述流水号;对所述流水数据进行预处理,所述预处理后的流水数据的数据量小于预处理前的所述流水数据的数据量;将所述变更数据与所述预处理后的流水数据缓存至数据缓存层;监控所述流水号服务,以确定流水空间的流水号是否发生变更,所述流水空间为记录所述流水数据和所述流水号的数据集合;若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据,并将所述目标变更数据发布到数据使用方。
在一些实施例中,数据发布装置1000例如可以集成在具备储存器并安装有处理器而具有运算能力的终端或服务器中,或者该数据发布装置1000为该终端或服务器。该终端可以为智能手机、平板电脑、笔记本电脑、智能电视、智能音箱、穿戴式智能设备、个人计算机等设备。该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一些实施例中,本申请还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。该计算机可读存储介质可应用于计算机设备,且该计算机程序使得计算机设备执行本申请实施例中的数据发布方法中的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的数据发布方法中的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的数据发布方法中的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (15)
1.一种数据发布方法,其特征在于,所述方法包括:
根据数据生产方生成的变更数据,生成所述变更数据对应的流水数据,其中,所述流水数据用于记录所述变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号,由流水号服务维护所述流水号;
对所述流水数据进行预处理,所述预处理后的流水数据的数据量小于预处理前的所述流水数据的数据量;
将所述变更数据与所述预处理后的流水数据缓存至数据缓存层;
监控所述流水号服务,以确定流水空间的流水号是否发生变更,所述流水空间为记录所述流水数据和所述流水号的数据集合;
若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据,并将所述目标变更数据发布到数据使用方。
2.如权利要求1所述的数据发布方法,其特征在于,所述对所述流水数据进行预处理,包括:
在同一流水空间的每一个数据处理窗口期内,对所述流水数据进行合并压缩处理和过滤处理,以得到所述预处理后的流水数据。
3.如权利要求2所述的数据发布方法,其特征在于,所述流水数据包括流水日志,所述流水日志中包含目标变更数据的主键和分区键,所述对所述流水数据进行合并压缩处理和过滤处理,包括:
对所述流水数据中同一行数据对应的流水日志进行合并压缩,其中所述同一行数据为主键与分区键一致的数据;和/或
从所述流水数据中丢弃数据使用方不关注的流水日志,或者丢弃无意义的流水日志,以对所述流水数据进行过滤处理。
4.如权利要求3所述的数据发布方法,其特征在于,所述根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据,包括:
根据所述目标流水号确定所述目标流水数据对应的流水日志;
根据所述目标流水数据对应的流水日志的主键和分区键寻址所述目标变更数据的数据行,以从所述数据缓存层中获取所述目标流水数据记录的目标变更数据。
5.如权利要求1所述的数据发布方法,其特征在于,所述将所述变更数据与所述预处理后的流水数据缓存至数据缓存层,包括:
控制所述数据缓存层监控流水号的变化,当监控到流水号变化时,控制所述数据缓存层根据所述流水号获取对应的预处理后的流水数据并进行缓存,以及主动拉取所述预处理后的流水数据记录的变更数据并进行缓存;或者
当生成所述变更数据对应的流水数据时,将变更通知发送至所述数据缓存层,并控制所述数据缓存层根据所述变更通知获取所述预处理后的流水数据以及所述预处理后的流水数据记录的变更数据并进行缓存。
6.如权利要求1所述的数据发布方法,其特征在于,所述监控所述流水号服务,以确定流水空间的流水号是否发生变更,包括:
每隔预设时间段查询所述流水号服务,将当前查询到的流水号和上次记录的流水号的值进行比对;
若所述当前查询到的流水号的值大于所述上次记录的流水号的值,则确定所述当前查询到的流水号发生变更。
7.如权利要求1-6任一项所述的数据发布方法,其特征在于,在所述将所述目标变更数据发布到数据使用方之前,还包括:
将所述数据生产方所在的业务域生成的所述目标变更数据的第一数据对象,按照所述数据使用方的不同需求转换为所述数据使用方对应的第二数据对象。
8.如权利要求7所述的数据发布方法,其特征在于,所述将所述数据生产方所在的业务域生成的所述目标变更数据的第一数据对象,按照所述数据使用方的不同需求转换为所述数据使用方对应的第二数据对象,包括:
接收所述数据使用方发送的针对所述目标变更数据的第一数据对象的第一访问请求;
根据所述第一访问请求,从与所述第一数据对象具有对应关系的待匹配规则集合中确定出目标规则,并根据所述目标规则将所述第一数据对象转换为数据使用方对应的第二数据对象。
9.如权利要求8所述的数据发布方法,其特征在于,在所述接收所述数据使用方发送的针对所述目标变更数据的第一数据对象的第一访问请求之后,还包括:
通过所述第一访问请求中携带的预先定义的第一授权特征字段,匹配到与所述第一授权特征字段匹配的第一授权策略树,并根据所述第一授权策略树对所述第一访问请求进行数据资源授权。
10.如权利要求1-6任一项所述的数据发布方法,其特征在于,在所述将所述目标变更数据发布到数据使用方之前,还包括:
建立专用发布通道,以供所述目标变更数据通过所述专用发布通道发布到数据使用方。
11.如权利要求10所述的数据发布方法,其特征在于,所述建立专用发布通道,包括:
预先建立多个专用发布通道,且不同的专用发布通道匹配不同类型的数据生产方;
当待发布的所述目标变更数据的数据生产方属于所述多个专用发布通道所匹配的数据生产方时,从所述多个专用发布通道中选取与所述目标变更数据的数据生产方对应的专用发布通道。
12.如权利要求10所述的数据发布方法,其特征在于,所述建立专用发布通道,包括:
在满足预设条件时,建立专用发布通道,所述预设条件包括以下任一种:
待发布的所述目标变更数据的数据量大于预设数据量;
待发布的所述目标变更数据对应的数据生产方在历史时段内的数据发布量大于预设发布量;
待发布的所述目标变更数据对应的数据生产方的活跃度大于预设活跃度。
13.一种数据发布装置,其特征在于,所述装置包括:
生成单元,用于根据数据生产方生成的变更数据,生成所述变更数据对应的流水数据,其中,所述流水数据用于记录所述变更数据的数据变更日志信息,每条流水数据有空间唯一的流水号,由流水号服务维护所述流水号;
预处理单元,用于对所述流水数据进行预处理,所述预处理后的流水数据的数据量小于预处理前的所述流水数据的数据量;
缓存单元,用于将所述变更数据与所述预处理后的流水数据缓存至数据缓存层;
监控单元,用于监控所述流水号服务,以确定流水空间的流水号是否发生变更,所述流水空间为记录所述流水数据和所述流水号的数据集合;
发布单元,用于若确定流水空间的流水号发生变更,则根据发生变更的目标流水号,从所述数据缓存层中读取目标流水数据以及获取所述目标流水数据记录的目标变更数据,并将所述目标变更数据发布到数据使用方。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-12任一项所述的数据发布方法中的步骤。
15.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1-12任一项所述的数据发布方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110871410.3A CN115687374A (zh) | 2021-07-30 | 2021-07-30 | 数据发布方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110871410.3A CN115687374A (zh) | 2021-07-30 | 2021-07-30 | 数据发布方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115687374A true CN115687374A (zh) | 2023-02-03 |
Family
ID=85058462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110871410.3A Pending CN115687374A (zh) | 2021-07-30 | 2021-07-30 | 数据发布方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115687374A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116305218A (zh) * | 2023-05-17 | 2023-06-23 | 国网浙江省电力有限公司物资分公司 | 一种数据链路追踪及数据更新方法、装置及数据管理系统 |
-
2021
- 2021-07-30 CN CN202110871410.3A patent/CN115687374A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116305218A (zh) * | 2023-05-17 | 2023-06-23 | 国网浙江省电力有限公司物资分公司 | 一种数据链路追踪及数据更新方法、装置及数据管理系统 |
CN116305218B (zh) * | 2023-05-17 | 2023-08-11 | 国网浙江省电力有限公司物资分公司 | 一种数据链路追踪及数据更新方法、装置及数据管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11625752B2 (en) | Cryptographic anonymization for zero-knowledge advertising methods, apparatus, and system | |
US10410258B2 (en) | Graphical user interface for high volume data analytics | |
CN110019240B (zh) | 一种业务数据交互方法、装置及系统 | |
US8978034B1 (en) | System for dynamic batching at varying granularities using micro-batching to achieve both near real-time and batch processing characteristics | |
US9928251B2 (en) | System and method for distributed categorization | |
US20120215772A1 (en) | Grouping identity records to generate candidate lists to use in an entity and relationship resolution process | |
CN101908191A (zh) | 应用于电子商务的数据分析方法及系统 | |
US20200320039A1 (en) | Systems and methods for data distillation | |
US20240104088A1 (en) | Real time system for ingestion, aggregation, and identity association of data from user actions performed on websites or applications | |
CN115168400A (zh) | 外部数据管理系统及方法 | |
Wang et al. | Ess: An efficient storage scheme for improving the scalability of bitcoin network | |
CN114971714A (zh) | 一种基于大数据标签的精准客户运营方法和计算机设备 | |
CN115687374A (zh) | 数据发布方法、装置、存储介质及计算机设备 | |
CN113051413A (zh) | 一种多媒体信息处理方法、装置、电子设备及存储介质 | |
CN112231344B (zh) | 实时流数据查询方法及装置 | |
US20140317156A1 (en) | Data management for data aggregation | |
CN112527839A (zh) | 多源数据处理方法、系统、设备及存储介质 | |
CN116842106A (zh) | 资源线索的生成方法和装置 | |
Tedeschi | Trading network performance for cash in the bitcoin blockchain | |
US10558647B1 (en) | High performance data aggregations | |
US11232243B1 (en) | System and method for employing model repository | |
CN113971007B (zh) | 信息处理方法、装置、电子设备及介质 | |
CN116860541A (zh) | 业务数据采集方法、装置、计算机设备和存储介质 | |
CN116860476A (zh) | 一种信用风险筛查任务处理方法及装置 | |
Sarr et al. | Electrical Big Data’s Stream Management for Efficient Energy Control |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40081598 Country of ref document: HK |