CN112612818B - 一种数据处理方法及装置、计算设备和存储介质 - Google Patents
一种数据处理方法及装置、计算设备和存储介质 Download PDFInfo
- Publication number
- CN112612818B CN112612818B CN202011542519.4A CN202011542519A CN112612818B CN 112612818 B CN112612818 B CN 112612818B CN 202011542519 A CN202011542519 A CN 202011542519A CN 112612818 B CN112612818 B CN 112612818B
- Authority
- CN
- China
- Prior art keywords
- data
- written
- field
- time axis
- time
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
- G06F16/287—Visualization; Browsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据处理方法及装置、计算设备和存储介质,其中所述方法包括:获取原始数据,将原始数据转换为待写入数据,其中,待写入数据包括第一业务表名字段和第一时间范围字段;根据第一业务表名字段查询业务表对应的时间轴配置表,获取时间轴配置表中具有与第一业务表名字段对应的第二业务表名字段的历史数据,其中,历史数据包括第二业务表名字段和第二时间范围字段;根据待写入数据的第一时间范围字段和历史数据的第二时间范围字段,确定待写入数据和历史数据的时间轴关系,并基于待写入数据和历史数据的时间轴关系将所述待写入数据增加至业务表中,可以得到具有时间轴关系的业务表,无需人工操作,便于业务方的查询使用。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法及装置、计算设备和存储介质。
背景技术
在业务方项目中,业务方需要处理大量的数据,要求同一类数据具有时间轴属性,精确记录每个对象的在每个时间点的精确数据,能对未来生效数据进行动态展示。
现有技术中,业务方获取的数据并没有时间轴属性,需要人工手动增加,费时费力。
发明内容
本发明提供一种数据处理方法及装置、计算设备和存储介质,用以解决现有技术中存在的技术缺陷。
本发明提供一种数据处理方法,包括:
获取原始数据,将原始数据转换为待写入数据,其中,所述待写入数据包括第一业务表名字段和第一时间范围字段;
根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段;
根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
根据本发明提供的一种数据处理方法,将所述原始数据转换为待写入数据,包括:
判断写入命令为分布式写入命令或关系型写入命令;
若为分布式写入命令,将所述原始数据经过时间轴组件解析分别转换为第一待写入数据和第二待写入数据;
若为关系型写入命令,将所述原始数据经过时间轴组件解析转换为第一待写入数据。
根据本发明提供的一种数据处理方法,根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中,包括:
根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,判断所述待写入数据与所述历史数据的时间轴关系是否冲突;
若是,更新所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,以消除所述待写入数据与所述历史数据的时间轴关系的冲突,然后基于更新后的所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中;
若否,直接基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
根据本发明提供的一种数据处理方法,更新所述待写入数据的第一时间范围字段和历史数据的第二时间范围字段,以消除所述待写入数据与所述历史数据的时间轴关系的冲突,然后基于更新后的所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中,包括:
基于所述待写入数据的第一开始时间字段和所述历史数据的第二开始时间字段,确定所述待写入数据和所述历史数据的时间顺序;其中,所述第一时间范围字段包括第一开始时间字段和第一结束时间字段,所述第二时间范围字段包括第二开始时间字段和第二结束时间字段;
修改所述历史数据的第二开始时间字段或第二结束时间字段,以使所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段不重合,然后基于更新后的所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
根据本发明提供的一种数据处理方法,所述方法还包括:在删除或修改所述业务表中的目标历史数据的情况下,将目标历史数据删除或修改,并根据与所述业务表对应的时间轴配置表更改与所述目标历史数据的时间轴关系冲突的历史数据的第二时间范围字段,以生成更新后的业务表。
根据本发明提供的一种数据处理方法,基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中,包括:
若为分布式写入命令,基于所述待写入数据和所述历史数据的时间轴关系,将所述第一待写入数据增加至关系型数据库的业务表中,将所述第二待写入数据增加至分布式数据库的业务表中;
若为关系型写入命令,基于所述待写入数据和所述历史数据的时间轴关系,将所述第一待写入数据增加至所述关系型数据库的业务表中。
根据本发明提供的一种数据处理方法,所述方法还包括:
在接收到查询命令的情况下,确定查询命令对应的第三业务表名字段,判断查询的数据库是分布式数据库还是关系型数据库;
若是分布式数据库,确定主索引条件和次索引条件在所述分布式数据库的业务表中进行查询,若查询成功,返回第二格式的历史数据;若查询失败,根据所述第三业务表名字段在关系型数据库的业务表中查询并返回第一格式的历史数据;
若是关系型数据库,根据查询命令对应的第三业务表名字段在所述关系型数据库的业务表中查询并返回第一格式的历史数据。
本发明提供一种数据处理装置,包括:
转换模块,用于获取原始数据,将原始数据转换为待写入数据,其中,所述待写入数据包括第一业务表名字段和第一时间范围字段;
历史数据获取模块,用于根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段;
关系确定模块,用于根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据处理方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据处理方法的步骤。
本发明提供的数据处理方法及装置,通过将原始数据转换为待写入数据,然后根据待写入数据的第一业务表名字段在时间轴配置表中查询历史数据,以确定待写入数据与历史数据的时间轴关系,然后基于所述待写入数据和所述历史数据的时间轴关系将待写入数据写入业务表中,从而可以得到具有时间轴关系的业务表,无需人工操作,便于业务方的查询使用。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据处理方法的流程示意图之一;
图2是本发明提供的数据处理方法的流程示意图之二;
图3是本发明提供的一个新入职员工的写入数据的示意图;
图4是本发明提供的一个员工的删除业务数据的示意图;
图5是本发明提供的一个员工的修改业务数据的示意图;
图6是本发明提供的数据处理方法的流程示意图之三;
图7是本发明提供的数据处理装置的结构示意图;
图8是本发明提供的电子设备的结构示意图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本实施例涉及的名词术语进行解释。
业务表:业务方需要的业务数据,以业务表的形式存储。其中,有些业务表中的业务数据需要有时间轴顺序,以关联业务数据之间的关系。
时间轴配置表:通过配置管理器对需要接入时间轴的业务数据进行处理得到的配置表,用于确定原始数据的待写入数据与历史数据之间的关系。
配置关联表:与时间轴配置表有关联关系的表,存储于业务方的服务器,配置关联表与时间轴配置表为多对一的关系。例如,时间轴配置表为一员工档案表,配置关联表可以包括员工年龄表、员工学历表、员工工作经验表等等。
Sql(Structured Query Language,结构化查询语言):一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系型数据库。
ES(Elastic Search,分布式检索):它提供了一个分布式多用户能力的全文搜索引擎,检索快速、准确。
本发明实施例公开了一种数据处理方法,如图1所示,包括:
101、获取原始数据,将原始数据转换为待写入数据,其中,所述待写入数据包括第一业务表名字段和第一时间范围字段。
其中,待写入数据可以为多种,例如本实施例中,待写入数据包括两种:用于关系型数据库的第一待写入数据,其中关系型数据库例如为mysql数据库;用于分布式数据库的第二待写入数据,其中分布式数据库例如为es数据库。
具体地,在使用时,通过设置写入开关来决定写入的数据库。
若写开关配置的是关系型数据库,对应地生成分布式写入命令;
若写开关配置的是分布式数据库,对应地生成关系型写入命令。
步骤101包括:判断写入命令为分布式写入命令或关系型写入命令;若为分布式写入命令,将原始数据经过时间轴组件解析分别转换为第一待写入数据和第二待写入数据;若为关系型写入命令,将原始数据经过时间轴组件解析转换为第一待写入数据。
由上述步骤可见,无论是分布式写入命令还是关系型写入命令,数据都会存储至关系型数据库mysql。底层存储采用mysql数据库+es数据库,通过配置实现mysql数据库到es数据库的切换,能让业务数据快速具有时间轴的能力。
为防止网络问题、es服务宕机等问题,通过ribbon进行重试,重试达到配置次数后仍然失败,打印error报警,人工介入。
102、根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段。
其中,时间轴配置表为预先根据业务表生成。对应地,所述方法还包括:通过配置管理器,根据每个业务表中的历史数据,生成对应的时间轴配置表,其中,所述业务表中的历史数据的第二时间范围字段包括第二开始时间字段和第二结束时间字段。
下表1所示为一个时间轴配置表的例子。
表1
ID | Tenant_id | api_name | description | state | Es_read_state | Es_write_state |
1 | ajrenown | Order | 订单表 | 1 | 0 | 0 |
2 | urixjjwr | Order_detail | 订单详情表 | 1 | 0 | 0 |
3 | wongnnsl | Coupon | 优惠券表 | 1 | 0 | 0 |
其中,Tenant_id为租户ID,实现各个业务方的数据隔离;api_name字段为第二业务表名字段;state为业务数据的状态,0无效1有效;Es_read_state为es读状态,0为关闭1为开启;Es_write_state为es写状态,0为关闭1为开启。
需要说明的是,本实施例中,通过互相对应的第一业务表名字段和第二业务表名字段,可以找到与该待写入数据属于同一类型的历史数据。例如,待写入数据为员工A的一条待写入数据A1,其第一业务表名字段可以为员工档案,该待写入数据涉及未来一段时间的员工数据,其对应的第一时间范围字段为20/11/20~21/11/20。那么,根据待写入数据的第一业务表名字段“员工档案”,查找具有与第一业务表名字段对应的第二业务表名字段的历史数据,最终查找到员工A的历史数据A2和A3,对应的第二时间范围字段分别为20/11/1~20/12/11和21/01/01~21/12/31,也就意味着待写入数据A1与历史数据A2和A3产生了时间轴的冲突关系。
103、根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
具体地,步骤103中的基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中,包括:
若为分布式写入命令,基于所述待写入数据和所述历史数据的时间轴关系,将所述第一待写入数据增加至关系型数据库的业务表中,将所述第二待写入数据增加至分布式数据库的业务表中;
若为关系型写入命令,基于所述待写入数据和所述历史数据的时间轴关系,将第一待写入数据增加至关系型数据库的业务表中。
例如,待写入数据为一条优惠订单数据A,其第一业务表名字段可以为优惠订单,该待写入数据只涉及最近3天的优惠措施,其对应的第一时间范围字段为20/11/10~20/11/12。那么,根据待写入数据的第一业务表名字段“优惠订单”,查找具有与该第一业务表名字段对应的第二业务表名字段的历史数据,最终查找到历史数据B和C,对应的第二时间范围字段分别为20/11/1~20/11/11和20/11/12~20/11/13,也就意味着待写入数据A与历史数据B和C产生了时间轴的冲突关系,则需要调整历史数据B和C的时间范围,以消除待写入数据A与历史数据B和C时间轴的冲突关系,然后才可以将数据A加入业务表中,形成时间轴关联的业务表。
本发明提供的数据处理方法,通过将原始数据转换为待写入数据,然后根据待写入数据的第一业务表名字段在时间轴配置表中查询历史数据,以确定待写入数据与历史数据的时间轴关系,然后基于待写入数据和历史数据的时间轴关系将待写入数据写入业务表中,从而可以得到具有时间轴关系的业务表,无需人工操作,便于业务方的查询使用。
本发明实施例还公开了一种数据处理方法,如图2所示,包括下述步骤201~205:
201、获取原始数据,将原始数据转换为待写入数据,其中,待写入数据包括第一业务表名字段和第一时间范围字段。
具体地,在使用时,通过设置写入开关来决定写入的数据库。
若写开关配置的是关系型数据库mysql,对应地生成分布式写入命令;若写开关配置的是分布式数据库es,对应地生成关系型写入命令。
本实施例中,使业务方项目具有时间轴的能力,底层存储采用mysql+es,采用springboot搭建项目,采用druid作为数据库连接池,对关系型数据库mysql的操作采用mybatis,通过配置灵活实现数据从关系型数据库mysql和分布式数据库es之间的切换。
具体地,在转换过程中,步骤201包括步骤S211~S213:
步骤S211、判断写入命令为分布式写入命令或关系型写入命令,若为分布式写入命令,执行步骤S212,若为关系型写入命令,执行步骤S213。
步骤S212、若为分布式写入命令,将所述原始数据经过时间轴组件解析分别转换为第一待写入数据和第二待写入数据;
若为分布式写入命令,基于原始数据和历史数据的时间轴关系,将第一待写入数据增加至关系型数据库mysql的业务表中,将第二待写入数据增加至分布式数据库es的业务表中。
步骤S213、若为关系型写入命令,将所述原始数据经过时间轴组件解析转换为第一待写入数据。
若为关系型写入命令,基于待写入数据和历史数据的时间轴关系,将第一待写入数据增加至关系型数据库mysql的业务表中。为防止网络问题、分布式数据库es服务宕机等问题,通过ribbon进行重试,重试达到配置次数后仍然失败,打印error报警,人工介入。
通过步骤S211~S213,可以实现将原始数据转换为对应格式的待写入数据,以备后续步骤中将待写入数据写入业务表中。
202、根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段。
其中,时间轴配置表为预先根据业务表生成。对应地,所述方法还包括:通过配置管理器,根据每个业务表中的历史数据,生成对应的时间轴配置表。
本实施例中,时间轴配置表的历史数据分别有对应的第二业务表名字段,对应不同类别的业务。例如待写入数据M1包括第一业务表名字h2,历史数据H1、H2、H3、H4、H5的第二业务表名字段分别为h1、h2、h3、h2、h1,通过互相对应的第一业务表名字段和第二业务表名字段,可以找到与该待写入数据M1属于同一类型的历史数据H2和H4。
203、根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,判断待写入数据与历史数据的时间轴关系是否冲突,若是,执行步骤204,若否,执行步骤205。
其中,历史数据为时间轴配置表中的已存数据。为了将待写入数据加入业务表中,需要根据时间轴判断该待写入数据是否与已存的历史数据产生时间轴关系的冲突,并在消除时间轴关系的冲突后才能将待写入数据写入业务表中。
具体地,时间轴上的每个时间点的数据通过在业务表里增加开始时间字段effDate字段、结束时间effEndDate字段,实现时间轴数据(精确到秒)。通过该两个字段,便可以确定待写入数据在时间轴上的时间区间。
然后,通过待写入数据的第一开始时间字段和第一结束时间字段,历史数据的第二开始时间字段和第二结束时间字段,来判断待写入数据与历史数据的时间轴关系是否冲突。
例如待写入数据M1的第一开始时间字段为11/15,第一结束时间字段为11/30,历史数据H2的第二开始时间字段为11/11,第二结束时间字段为11/16,则待写入数据和历史数据H4产生时间轴关系的冲突;历史数据H4的第二开始时间字段为11/10,第二结束时间字段为11/14,则待写入数据和历史数据H4不产生时间轴关系的冲突。
204、更新所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,以消除所述待写入数据与所述历史数据的时间轴关系的冲突,然后基于更新后的所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
具体地,步骤204包括:基于待写入数据的第一开始时间字段和历史数据的第二开始时间字段,确定待写入数据和历史数据的时间顺序;其中,第一时间范围字段包括第一开始时间字段和第一结束时间字段,第二时间范围字段包括第二开始时间字段和第二结束时间字段;修改历史数据的第二开始时间字段或第二结束时间字段,以使待写入数据的第一时间范围字段和历史数据的第二时间范围字段不重合,然后基于更新后的待写入数据和历史数据的时间轴关系将待写入数据增加至所述业务表中。
例如待写入数据M1的开始时间为11/15,结束时间为11/30,历史数据H2的开始时间为11/11,结束时间为11/16,则待写入数据M1和历史数据H2产生时间轴关系的冲突,那么修改历史数据H2的结束时间为11/14,以使待写入数据M1和历史数据H2消除时间轴关系的冲突;历史数据H4的开始时间为11/25,结束时间为12/14,那么修改历史数据H4的开始时间为12/1,以使待写入数据M1和历史数据H4消除时间轴关系的冲突。
205、直接基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
例如待写入数据M1的开始时间为11/15,结束时间为11/30,历史数据H4的开始时间为11/10,结束时间为11/14,则待写入数据M1和历史数据H4不产生时间轴关系的冲突,那么直接将待写入数据M1增加至业务表中。
本发明提供的数据处理方法,通过将原始数据转换为待写入数据,然后根据待写入数据的第一业务表名字段在时间轴配置表中查询历史数据,以确定待写入数据与历史数据的时间轴关系,然后基于所述待写入数据和所述历史数据的时间轴关系消除待写入数据和历史数据的时间轴冲突的关系,然后将待写入数据写入业务表中,从而可以得到具有时间轴关系的业务表,无需人工操作,便于业务方的查询使用。
另外,本实施例的底层存储采用关系型数据库mysql和分布式数据库es,通过配置实现在读写过程中的关系型数据库mysql和分布式数据库es的切换,能让业务数据快速具有时间轴的能力。
具体地,以一个新增员工数据为例对本实施例的数据处理方法进行说明。
参见图3,图3示出了一个新入职员工的写入数据的过程。
(1)员工6号入职,新增员工的6号待写入数据,包括年龄、学历、工作经验等。
(2)员工8号离职,新增员工的8号待写入数据,包括离职原因等。
(3)补录员工的4号待写入数据,包括面试数据,岗位要求数据等。
在步骤(1)中,
新增员工6号待写入数据在业务表中的时间范围字段:effDate=6,effEndDate=∞;
在步骤(2)中,新增员工8号待写入数据,由于8号数据与原来的6号数据产生了时间轴关系的冲突,则需要更改6号数据的结束时间字段:
6号数据的时间范围字段:effDate=6,effEndDate=7;
8号数据的时间范围字段:effDate=8,effEndDate=∞。
在步骤(3)中,新增员工4号待写入数据,由于4号待写入数据与原来的6号数据不产生时间轴关系的冲突,则:
4号数据的时间范围字段:effDate=4,effEndDate=5;
6号数据的时间范围字段:effDate=6,effEndDate=7;
8号数据的时间范围字段:effDate=8,effEndDate=∞。
可选地,除去新增数据之外,本实施例的数据处理方法还包括:删除、修改以及查询数据。
可选地,所述方法还包括:
在删除或修改所述业务表中的目标历史数据的情况下,将目标历史数据删除或修改,并根据与所述业务表对应的时间轴配置表更改与所述目标历史数据的时间轴关系冲突的历史数据的第二时间范围字段,以生成更新后的业务表。
对于与所述目标历史数据的时间轴关系并不冲突的历史数据的第二时间范围字段,则无需修改。
其中,所述修改业务表中的历史数据包括修改历史数据的顺序。
参见图4,图4示出了一个员工的删除业务数据的过程。该员工具有4号数据、6号数据和8号数据。
(1)删除员工的4号数据,对6号和8号的数据并没有时间轴关系的冲突,则:
6号数据的时间范围字段:effDate=6,effEndDate=7;
8号数据的时间范围字段:effDate=8,effEndDate=∞。
(2)删除员工的6号数据,对4号的数据产生时间轴关系的冲突,对8号的数据并不产生时间轴关系的冲突,则:
4号数据的时间范围字段:effDate=4,effEndDate=7;
8号数据的时间范围字段:effDate=8,effEndDate=∞。
(3)删除员工8号数据,对4号的数据并不产生时间轴关系的冲突,对6号的数据产生时间轴关系的冲突,则:
4号数据的时间范围字段:effDate=4,effEndDate=5
6号数据的时间范围字段:effDate=6,effEndDate=∞
参见图5,图5示出了一个员工的修改业务数据的过程。该员工具有4号数据、6号数据和8号数据:
4号数据的时间范围字段:effDate=4,effEndDate=5;
6号数据的时间范围字段:effDate=6,effEndDate=7;
8号数据的时间范围字段:effDate=8,effEndDate=∞。
将员工4号的生效时间改为3号,对6号和8号的数据并不产生时间轴关系的冲突,则:
3号数据的时间范围字段:effDate=3,effEndDate=5;
6号数据的时间范围字段:effDate=6,effEndDate=7;
8号数据的时间范围字段:effDate=8,effEndDate=∞。
将员工4号的生效时间改为7号,对6号的数据产生时间轴关系的冲突,对8号的数据并不时间轴关系的冲突,则:
6号数据的时间范围字段:effDate=6,effEndDate=6;
7号数据的时间范围字段:effDate=7,effEndDate=7;
8号数据的时间范围字段:effDate=8,effEndDate=∞。
将员工4号的生效时间改为10号,对6号的数据不产生时间轴关系的冲突,对8号的数据产生时间轴关系的冲突,则:
6号数据的时间范围字段:effDate=6,effEndDate=7;
8号数据的时间范围字段:effDate=8,effEndDate=9;
10号数据的时间范围字段:effDate=10,effEndDate=∞。
参见图6,本实施例的方法还包括对数据进行查询的过程,包括下述步骤601~604:
601、在接收到查询命令的情况下,确定查询命令对应的第三业务表名字段,判断查询的数据库是分布式数据库还是关系型数据库,若是分布式数据库,执行步骤602,若是关系型数据库,执行步骤604。
具体地,查询命令通过es读开关来确定。若es读开关为开启,则查询的数据库为分布式数据库;若es读开关为关闭,则查询的数据库为关系型数据库。
602、确定主索引条件和次索引条件在所述分布式数据库的业务表中进行查询,判断查询是否成功,若是,执行步骤603,若否,执行步骤604。
具体地,根据第三业务表名字段apiname确定需要查询的主索引条件,然后解析入参拼接查询条件,执行es主索引条件的查询;
根据relation_api_name、relation_field、field值作为次索引条件,然后解析入参拼接查询条件,执行es次索引条件的查询。
603、返回第二格式的历史数据。
本实施例中,第一格式为mysql格式,第二格式为分布式格式es。
604、根据所述第三业务表名字段在关系型数据库的业务表中查询并返回第一格式的历史数据。
通过步骤601~604可见,在分布式数据库es中查询不到相应的历史数据时,就转去关系型数据库mysql进行降维查询,以确保查询的历史数据的返回。
下面对本发明提供的数据处理装置进行描述,下文描述的数据处理装置与上文描述的数据处理方法可相互对应参照。
本发明实施例还公开了一种数据处理装置,参见图7,包括:
转换模块701,用于获取原始数据,将原始数据转换为待写入数据,其中,所述待写入数据包括第一业务表名字段和第一时间范围字段;
历史数据获取模块702,用于根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段;
关系确定模块703,用于根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
可选地,转换模块701,具体用于:
判断写入命令为分布式写入命令或关系型写入命令;
若为分布式写入命令,将所述原始数据经过时间轴组件解析分别转换为第一待写入数据和第二待写入数据;
若为关系型写入命令,将所述原始数据经过时间轴组件解析转换为第一待写入数据。
可选地,所述装置还包括:配置模块,用于通过配置管理器,根据每个业务表中的历史数据,生成对应的时间轴配置表,其中,所述业务表中的历史数据包括业务开始字段和业务结束字段。
可选地,关系确定模块703,具体用于:
根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,判断所述待写入数据与所述历史数据的时间轴关系是否冲突;
若是,更新所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,以消除所述待写入数据与所述历史数据的时间轴关系的冲突,然后基于更新后的所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中;
若否,直接基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
可选地,关系确定模块703,具体用于:
基于所述待写入数据的第一开始时间字段和所述历史数据的第二开始时间字段,确定所述待写入数据和所述历史数据的时间顺序;其中,所述第一时间范围字段包括第一开始时间字段和第一结束时间字段,所述第二时间范围字段包括第二开始时间字段和第二结束时间字段;
修改所述历史数据的第二开始时间字段或第二结束时间字段,以使所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段不重合,然后基于更新后的所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
可选地,所述装置还包括:删改模块,用于在删除或修改所述业务表中的目标历史数据的情况下,将目标历史数据删除或修改,并根据与所述业务表对应的时间轴配置表更改与所述目标历史数据的时间轴关系冲突的历史数据的第二时间范围字段,以生成更新后的业务表。
可选地,所述装置还包括:关系确定模块703,用于:若为分布式写入命令,基于所述待写入数据和所述历史数据的时间轴关系,将所述第一待写入数据增加至关系型数据库的业务表中,将所述第二待写入数据增加至分布式数据库的业务表中;
若为关系型写入命令,基于所述待写入数据和所述历史数据的时间轴关系,将所述第一待写入数据增加至所述关系型数据库的业务表中。
可选地,所述装置还包括:查询模块,用于在接收到查询命令的情况下,确定查询命令对应的第三业务表名字段,判断查询的数据库是分布式数据库还是关系型数据库;
若是分布式数据库,确定主索引条件和次索引条件在所述分布式数据库的业务表中进行查询,若查询成功,返回第二格式的历史数据;若查询失败,根据所述第三业务表名字段在关系型数据库的业务表中查询并返回第一格式的历史数据;
若是关系型数据库,根据查询命令对应的第三业务表名字段在所述关系型数据库的业务表中查询并返回第一格式的历史数据。
本发明提供的数据处理装置,通过将原始数据转换为待写入数据,然后根据待写入数据的第一业务表名字段在时间轴配置表中查询历史数据,以确定待写入数据与历史数据的时间轴关系,然后基于所述待写入数据和所述历史数据的时间轴关系将待写入数据写入业务表中,从而可以得到具有时间轴关系的业务表,无需人工操作,便于业务方的查询使用。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行数据处理方法,包括:
获取原始数据,将原始数据转换为待写入数据,其中,所述待写入数据包括第一业务表名字段和第一时间范围字段;
根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段;
根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据处理方法,包括:
获取原始数据,将原始数据转换为待写入数据,其中,所述待写入数据包括第一业务表名字段和第一时间范围字段;
根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段;
根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的数据处理方法,包括:
获取原始数据,将原始数据转换为待写入数据,其中,所述待写入数据包括第一业务表名字段和第一时间范围字段;
根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段;
根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取原始数据,将原始数据转换为待写入数据,其中,所述待写入数据包括第一业务表名字段和第一时间范围字段;
根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段;
根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中,得到具有时间轴关系的业务表。
2.根据权利要求1所述的数据处理方法,其特征在于,将所述原始数据转换为待写入数据,包括:
判断写入命令为分布式写入命令或关系型写入命令;
若为分布式写入命令,将所述原始数据经过时间轴组件解析分别转换为第一待写入数据和第二待写入数据;
若为关系型写入命令,将所述原始数据经过时间轴组件解析转换为第一待写入数据。
3.根据权利要求1所述的数据处理方法,其特征在于,根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中,包括:
根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,判断所述待写入数据与所述历史数据的时间轴关系是否冲突;
若是,更新所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,以消除所述待写入数据与所述历史数据的时间轴关系的冲突,然后基于更新后的所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中;
若否,直接基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
4.根据权利要求3所述的数据处理方法,其特征在于,更新所述待写入数据的第一时间范围字段和历史数据的第二时间范围字段,以消除所述待写入数据与所述历史数据的时间轴关系的冲突,然后基于更新后的所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中,包括:
基于所述待写入数据的第一开始时间字段和所述历史数据的第二开始时间字段,确定所述待写入数据和所述历史数据的时间顺序;其中,所述第一时间范围字段包括第一开始时间字段和第一结束时间字段,所述第二时间范围字段包括第二开始时间字段和第二结束时间字段;
修改所述历史数据的第二开始时间字段或第二结束时间字段,以使所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段不重合,然后基于更新后的所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中。
5.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:
在删除或修改所述业务表中的目标历史数据的情况下,将目标历史数据删除或修改,并根据与所述业务表对应的时间轴配置表更改与所述目标历史数据的时间轴关系冲突的历史数据的第二时间范围字段,以生成更新后的业务表。
6.根据权利要求2所述的数据处理方法,其特征在于,基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中,包括:
若为分布式写入命令,基于所述待写入数据和所述历史数据的时间轴关系,将所述第一待写入数据增加至关系型数据库的业务表中,将所述第二待写入数据增加至分布式数据库的业务表中;
若为关系型写入命令,基于所述待写入数据和所述历史数据的时间轴关系,将所述第一待写入数据增加至所述关系型数据库的业务表中。
7.根据权利要求6所述的数据处理方法,其特征在于,所述方法还包括:
在接收到查询命令的情况下,确定查询命令对应的第三业务表名字段,判断查询的数据库是分布式数据库还是关系型数据库;
若是分布式数据库,确定主索引条件和次索引条件在所述分布式数据库的业务表中进行查询,若查询成功,返回第二格式的历史数据;若查询失败,根据所述第三业务表名字段在关系型数据库的业务表中查询并返回第一格式的历史数据;
若是关系型数据库,根据查询命令对应的第三业务表名字段在所述关系型数据库的业务表中查询并返回第一格式的历史数据。
8.一种数据处理装置,其特征在于,包括:
转换模块,用于获取原始数据,将原始数据转换为待写入数据,其中,所述待写入数据包括第一业务表名字段和第一时间范围字段;
历史数据获取模块,用于根据所述第一业务表名字段查询业务表对应的时间轴配置表,获取所述时间轴配置表中具有与所述第一业务表名字段对应的第二业务表名字段的历史数据,其中,所述历史数据包括第二业务表名字段和第二时间范围字段;
关系确定模块,用于根据所述待写入数据的第一时间范围字段和所述历史数据的第二时间范围字段,确定所述待写入数据和所述历史数据的时间轴关系,并基于所述待写入数据和所述历史数据的时间轴关系将所述待写入数据增加至所述业务表中,得到具有时间轴关系的业务表。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述数据处理方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011542519.4A CN112612818B (zh) | 2020-12-21 | 2020-12-21 | 一种数据处理方法及装置、计算设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011542519.4A CN112612818B (zh) | 2020-12-21 | 2020-12-21 | 一种数据处理方法及装置、计算设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612818A CN112612818A (zh) | 2021-04-06 |
CN112612818B true CN112612818B (zh) | 2022-04-15 |
Family
ID=75244538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011542519.4A Active CN112612818B (zh) | 2020-12-21 | 2020-12-21 | 一种数据处理方法及装置、计算设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612818B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468213A (zh) * | 2021-07-26 | 2021-10-01 | 中兴飞流信息科技有限公司 | 一种基于多数据源配置的动态切换数据源方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105046601A (zh) * | 2015-07-09 | 2015-11-11 | 传成文化传媒(上海)有限公司 | 用户数据处理方法和*** |
CN105095255A (zh) * | 2014-05-07 | 2015-11-25 | 中兴通讯股份有限公司 | 一种数据索引创建方法及装置 |
CN108388958A (zh) * | 2018-01-31 | 2018-08-10 | 中国地质大学(武汉) | 一种二维姿态机动卫星任务规划技术研究的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243664B (zh) * | 2011-08-22 | 2013-04-03 | 西北大学 | 一种复合字段的数据存储及查询方法 |
CN104112008A (zh) * | 2014-07-16 | 2014-10-22 | 深圳市国泰安信息技术有限公司 | 一种多表数据关联查询优化方法和装置 |
CN106294792B (zh) * | 2016-08-15 | 2019-05-31 | 上海携程商务有限公司 | 关联查询***的建立方法及建立*** |
CN106407360B (zh) * | 2016-09-07 | 2020-07-24 | 广州视源电子科技股份有限公司 | 一种数据的处理方法及装置 |
CN111915046B (zh) * | 2019-05-09 | 2024-02-20 | 北京百度网讯科技有限公司 | 用于输出信息的方法和装置 |
CN110442595B (zh) * | 2019-07-26 | 2022-07-22 | 南京南瑞继保电气有限公司 | 一种通用sql报表数据集构建的方法与装置 |
-
2020
- 2020-12-21 CN CN202011542519.4A patent/CN112612818B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095255A (zh) * | 2014-05-07 | 2015-11-25 | 中兴通讯股份有限公司 | 一种数据索引创建方法及装置 |
CN105046601A (zh) * | 2015-07-09 | 2015-11-11 | 传成文化传媒(上海)有限公司 | 用户数据处理方法和*** |
CN108388958A (zh) * | 2018-01-31 | 2018-08-10 | 中国地质大学(武汉) | 一种二维姿态机动卫星任务规划技术研究的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112612818A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109977110B (zh) | 数据清洗方法、装置及设备 | |
CN111522816B (zh) | 基于数据库引擎的数据处理方法、装置、终端及介质 | |
US8103704B2 (en) | Method for database consolidation and database separation | |
AU695765B2 (en) | Method and apparatus for data storage and retrieval | |
US9390176B2 (en) | System and method for recursively traversing the internet and other sources to identify, gather, curate, adjudicate, and qualify business identity and related data | |
CN113297320B (zh) | 分布式数据库***及数据处理方法 | |
US20070192374A1 (en) | Virtual repository management to provide functionality | |
CN103678556A (zh) | 列式数据库处理的方法和处理设备 | |
US8442959B2 (en) | Methods and systems for automated processing of fallout orders | |
CN110597844B (zh) | 异构数据库数据统一访问方法及相关设备 | |
CN113792077B (zh) | 一种数据处理方法、程序产品、可读介质和电子设备 | |
US8965879B2 (en) | Unique join data caching method | |
KR20200094074A (ko) | 인덱스 관리 방법, 장치, 기기 및 저장 매체 | |
CN112612818B (zh) | 一种数据处理方法及装置、计算设备和存储介质 | |
EP2662783A1 (en) | Data archiving approach leveraging database layer functionality | |
CN116628018A (zh) | 一种数据查询方法、装置、服务器及存储介质 | |
CN106844497A (zh) | 一种数据库代码的检查装置和方法 | |
CN116467310A (zh) | 无效索引的无锁标记方法、存储介质和计算机设备 | |
US20230066110A1 (en) | Creating virtualized data assets using existing definitions of etl/elt jobs | |
CN111061759A (zh) | 数据查询方法及装置 | |
JP2017010376A (ja) | マートレス検証支援システムおよびマートレス検証支援方法 | |
CN115809268B (zh) | 一种基于分片索引的自适应查询方法和装置 | |
CN117093597B (zh) | 数据处理方法及装置 | |
CN115599976B (zh) | 用户分群方法、装置、电子设备及存储介质 | |
JP2013171495A (ja) | データ管理装置、データ管理方法及びデータ管理プログラム |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210708 Address after: 100085 Floor 101 102-1, No. 35 Building, No. 2 Hospital, Xierqi West Road, Haidian District, Beijing Applicant after: Seashell Housing (Beijing) Technology Co.,Ltd. Address before: Unit 05, room 112, 1st floor, office building, Nangang Industrial Zone, economic and Technological Development Zone, Binhai New Area, Tianjin 300457 Applicant before: BEIKE TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |