一种表数据修改方法和装置
技术领域
本申请数据处理技术领域,尤其涉及一种表数据修改方法和装置。
背景技术
目前对于数据库中的实体表数据,例如:业务系统的配置数据等,这些实体表数据都是存储在数据库中的。在运维过程中,这些实体表数据有时需要频繁进行修改,在一些极端情况下,甚至需要对表结构进行修改。
按照当前的处理方式,如果需要进行上述修改,需要通过DBA(DatabaseAdministrator,数据库管理员)执行SQL(Structured Query Language,结构化查询语言)对表数据进行变更,因此,对运维人员的依赖过大,且如果是对表结构进行的修改,那就需要重新发布应用。
针对如何有效提高表数据修改的效率,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种表数据修改方法和装置,可以实现动态修改表数据的目的。
本申请提供一种表数据修改方法和装置是这样实现的:
一种表数据修改方法,所述方法包括:
获取用户在虚拟表系统的页面上对虚拟表格的修改操作;
根据所述修改操作修改所述虚拟表系统的数据库中与所述虚拟表格对应的字段,其中,所述字段用于记录与所述虚拟表格对应的表的表结构和表数据;
将修改后的字段中所记录的表结构和表数据提供给业务系统。
一种表数据修改装置,所述装置包括:
修改操作获取模块,用于获取用户在虚拟表系统的页面上对虚拟表格的修改操作;
字段修改模块,用于根据所述修改操作修改所述虚拟表系统的数据库中与所述虚拟表格对应的字段,其中,所述字段用于记录与所述虚拟表格对应的表的表结构和表数据;
提供模块,用于将修改后的字段中所记录的表结构和表数据提供给业务系统。
本申请提供的表数据修改方法和装置,通过提供一个虚拟表系统,在虚拟表系统的界面上可以呈现虚拟表格,用户可以灵活对该虚拟表格进行修改,这种修改会相应的反应到虚拟表系统的数据库的预定字段中,而该字段记录的就是与该虚拟表格对应的表的结构和数据,从而通过字段的修改实现了对表数据和表结构的修改,然后再将修改后的表提供给业务系统,从而使得业务系统不需要通过SQL修改数据库中的数据,就可以实现对表的修改,解决了现有技术中需要通过DBA执行SQL进行变更才能实现对表的修改的技术问题,达到了简单灵活动态修改表数据和表结构的技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的表数据修改方法的一种方法流程图;
图2是根据本申请实施例的虚拟表系统的页面的示意图;
图3是根据本申请实施例的对虚拟表系统的页面中多张表的一张表进行修改的示意图;
图4是根据本申请实施例的虚拟表系统与业务系统的架构示意图;
图5是根据本申请实施例的表数据修改装置的一种结构框图;
图6是根据本申请实施例的表数据修改装置的另一结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
下面结合附图对本申请所述的表数据修改方法和装置进行详细的说明。图1是本申请提出的表数据修改方法的一种实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块结构。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例提供的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
申请人考虑到,对数据库中表数据修改比较麻烦的主要原因是因为只能通过固有的SQL语句进行的,是直接面向数据库的一种修改,在数据库中,数据的存储格式和表结构等都是预先设置好的,且固定的,因此,如果需要对表结构进行修改,就需要重新进行业务应用的发布。因此,从建立一个虚拟表系统出发,该虚拟表系统有一个可视的修改页面,用户只需要在该界面对表进行修改即可,具体地,可以有表结构的修改,也可以有表数据的修改。因为虚拟表系统页面可视的,因此用户可以直接在上面修改,较为灵活。进一步的,在页面上对虚拟表的修改会反应到虚拟表系统的数据库中与虚拟表对应的字段中,而这个字段解析后得到的就是表数据和表结构(可以将字段解析后得到的表称之为实体表),从而通过页面上对虚拟表的修改,就可以实现对表的修改。具体的如图1所示,本申请提供的表数据修改方法的一种实施例可以包括:
步骤101:获取用户在虚拟表系统的页面上对虚拟表格的修改操作;
本申请的虚拟表系统的页面可以如图2所示,即,可以是类似于一般网页的界面,用户采用鼠标就可以对其进行操作,例如删除行,增加行列数据,修改表中的数据等等。如图2所示,为一个虚拟表的呈现界面,在该虚拟表界面中显示的就是实体表的数据,其对应的就是待修改实体表中的数据,可以对该表进行增删的操作,也可以对表中的数据进行修改,也可以对表的结构进行修改。
为了简化对表结构和表数据的理解区分,对表结构和表数据解释说明如下:
1)表结构,定义的是一个表的字段、类型、主键、外键、索引,这些基本的属性组成了数据库的表结构;
2)表数据,就是表里存放的具体数据内容。
简言之,表结构就好像是商场中的货架子,表数据就是货架子上分类摆放的商品。
例如,如下表1所示,为一个通讯录的配置表:
表1
姓名 |
电话 |
邮箱 |
小明 |
123456 |
76532@**.com |
小红 |
123455 |
62013@**.com |
张三 |
123632 |
46311@**.com |
李四 |
123479 |
25876@**.com |
王二麻 |
123412 |
39622@**.com |
在该表1中,表的结构就是一共三项:姓名、电话、邮箱,如果希望在该通讯录表中增加一项:地址,那么按照现有的方式,就需要重新发布应用,才能实现对表结构的修改,即,才能将“地址项”添加进去。
然后,通过虚拟表系统页面呈现之后,可以直接在虚拟表页面上进行修改,即增加一列数据,得到如表2所示的通讯录的配置表:
表2
姓名 |
电话 |
邮箱 |
地址 |
小明 |
123456 |
76532@**.com |
1路5号 |
小红 |
123455 |
62013@**.com |
7路15号 |
张三 |
123632 |
46311@**.com |
3路2号 |
李四 |
123479 |
25876@**.com |
5路6号 |
王二麻 |
123412 |
39622@**.com |
5路5号 |
相应的,获取到的用户操作就是在通讯录的配置表中增加了一列“地址”列,并相应的增加了各个联系人的地址,即,不仅对表结构进行了修改,对表数据也就行了修改。
本申请中,虚拟表系统可以如图3所示,包括多张表,用户可以按照图3所示,选择想要修改或者调整的表,然后点击该表之后,就可以出现对该特定表的修改界面,例如在图3中,就是在显示的4张表中在表1中增加行数据的示意图。
步骤102:根据所述修改操作修改所述虚拟表系统的数据库中与所述虚拟表格对应的字段,其中,所述字段用于记录与所述虚拟表格对应的表的表结构和表数据;
上述的虚拟表系统的页面中的所显示的表,在虚拟表系统的数据库中,是存储在字段中的,响应于对表的修改,虚拟表系统的数据库中所存储的字段也会相应修改,即通过字段记录对应表的表结构和表数据。
在虚拟表系统的数据库中,对于多张表可以采用如下表3的方式存储:
表3
# |
Name |
Datatype |
1 |
id |
BIGINT |
2 |
PLATFORM |
VARchar |
3 |
SYSTEM |
VARchar |
4 |
DATASOURCE |
VARchar |
5 |
TABLE_NAME |
VARchar |
6 |
ATTRIBUTE_VALUE |
TEXT |
在表3中,第5项:TABLE_NAME,记录的是表名,第6项:ATTRIBUTE_VALUE中可以记录表结构和表数据,在本申请中,ATTRIBUTE_VALUE中可以通过大字段来记录表结构和表数据,例如,可以通过json格式字符串来记录表征表结构和表数据的内容。
举例而言,可以通过如下的字符串:
{"MEMO":"TEST2","PARAM_TYPE":"TEST2","ID":"123","PARAM_NAME":"TEST2","PARAM_VALUE":"TEST2"}达到存储表数据的目的。
即,上述虚拟表系统数据库中与虚拟表格对应的字段可以是虚拟表系统数据库中存储的实体虚拟表中的属性值中的字段,该字段可以是大字段,例如:json格式字符串。
步骤103:将修改后的字段中所记录的表结构和表数据提供给业务系统。
在本申请中,修改后的表可以是应用在业务系统中,例如业务系统的静态配置数据等,因此,需要有一个接口将这些表数据提供给需要的业务系统。
直接将上述的大字段传输过去显然是不合适的,本申请可以先对修改后的字段进行解析,得到所述实体表所表征的对象格式,然后将解析得到的对象格式提供给应用该对象格式的业务系统,例如,可以是对字段进行解析,形成map,然后把map提供给业务系统,也可以对字段进行解析,形成collection。
其中,map用于保存具有"映射关系"的数据,因此,一般情况下,map集合里保存着两组值,一组值用于保存map里的key,另外一组值用于保存map里的value,其中,key和value都可以是任何引用类型的数据。因为map用于保存具有映射关系的数据,因此,通过在对字段进行解析形成map后,数据表中的映射关系也不会丢失,可以有效呈现数据表中的表结构和表数据。Collection表示一组对象,这些对象也称为collection的元素。一些collection允许有重复的元素,而另一些则不允许。一些collection是有序的,而另一些则是无序的。
业务系统可以直接识别读取类似于map和collection的这种保存具有映射关系的数据的对象格式,从而可以实现从自身数据库中获取实体表数据的功能。
本申请中,该虚拟表系统如图4所示,可以同时面向多个业务系统,这些业务系统中不再需要存储表结构的配置数据的数据库,只需要提供存储数据的缓存即可。这些业务系统所需要的表数据都放至该虚拟表系统(也可称为管控系统)中,每个业务系统都设置一个缓存,当该业务系统需要表数据,或者是与该业务系统对应的表数据需要修改时,就从虚拟表系统获取该业务系统对应的转换后的对象格式,即,虚拟表系统对字段进行解析得到map等对象格式后,就将解析得到的对象格式传送至业务系统的缓存中,当业务系统需要这些数据时,直接从缓存中读取即可。通过这种方式,如果希望对某个业务系统中的表数据或者表结构进行修改,也无需通过SQL语句进行,只需要在虚拟表系统的页面上进行可视化的修改,这种修改就将被反应到对应的业务系统。
在本申请实施例中,可以是虚拟表系统侧有数据修改,就随即将修改后的数据更新至对应业务系统的缓存中备用,也可以是业务系统每次需要调用数据时,就向虚拟表系统发起请求,以便得到实时最新的数据。
因为和现有的业务系统获取表数据的方式有所不同,需要建立业务系统与虚拟表系统之间的数据交互通道,因此,可以为每个业务系统设置一个用于从虚拟表系统获取数据的接口,通过该接口,那么业务系统自身就不需要存储这些表数据的数据库,只需要通过该接口向虚拟表系统请求所需的表数据即可,相应的,对表的修改也可以通过虚拟表系统完成。
需要说明书的是,在上例中,采用map和json字符串进行说明,仅是一种示意性描述,在实际实现的时候,也可以采用其它的对象格式和大字段,只要能够在属性值中实现对表的表示的大字段都可以,只要是能实现映射关系的对象格式也都可以,具体采用哪种,本申请对此不作限定。
基于同一发明构思,本发明实施例中还提供了一种表数据修改装置,如下面的实施例所述。由于表数据修改装置解决问题的原理与表数据修改方法相似,因此表数据修改装置的实施可以参见表数据修改方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图3是本发明实施例的表数据修改装置的一种结构框图,如图5所示,可以包括:修改操作获取模块501、字段修改模块502和提供模块503,下面对该结构进行说明。
修改操作获取模块501,可以用于获取用户在虚拟表系统的页面上对虚拟表格的修改操作;
字段修改模块502,可以用于根据所述修改操作修改所述虚拟表系统的数据库中与所述虚拟表格对应的字段,其中,所述字段用于记录与所述虚拟表格对应的表的表结构和表数据;
提供模块503,可以用于将修改后的字段中所记录的表结构和表数据提供给业务系统。
图6是本申请提供的提供模块503的一种实施例的模块结构示意图,如图6所示,提供模块可以包括:
解析单元601,可以用于对所述修改后的字段进行解析,得到表结构和表数据所表征的对象格式;提供单元602,可以用于将解析得到的对象格式提供给应用该对象格式的业务系统。
图6中的解析单元602具体可以用于将解析得到的对象格式更新至所述业务系统的预留缓存中,供所述业务系统使用,其中,对象格式可以包括但不限于以下至少之一:map格式、和collection。
上述的虚拟表系统数据库中与所述虚拟表格对应的字段可以是虚拟表系统数据库中存储的实体虚拟表中的属性值中的字段,该字段可以是json格式字符串。
上述的表数据修改方法和装置,可以应用于系统的静态配置数据。系统中静态配置数据是经常需要修改的,修改频率比较高,如果采用上述的表数据修改方法和装置,会大大减少对静态配置数据进行修改所需的工作量,且修改起来较为灵活方便,通过页面即可完成此类修改,大大减轻了运维压力。即,业务系统可以通过管控系统虚拟表来加载静态配置,在管控系统中,可动态修改配置数据,必要时甚至可以修改虚拟表结构,从而达到快速运维,降低运维成本的效果。
然而值得注意的是,上述虽然是采用系统的静态配置数据进行的说明,然而本申请中的表数据修改方法和装置适应于所有的需要应用数据表的系统,只要是需要调用数据表进行处理的系统,都可以接入该虚拟表系统进行数据的修改和更新,本申请对此不作限定。
本申请提供的表数据修改方法和装置,用户可以直接通过虚拟表系统的可视页面对表数据进行修改,这种修改将被直接反应到虚拟表系统的数据库中与虚拟表格对应的字段,而这个字段就是记录与虚拟表格对应的实体表的表结构和表数据,然后通过虚拟表系统将修改后的字段中所记录的表结构和表数据提供给业务系统,从而为业务系统提供所需的修改后的表数据,解决了现有技术中在对表数据进行修改时,需要通过DBA执行SQL进行变更才能实现对表的修改的技术问题,进一步的,因为在本申请中整个表结构和表数据是通过一个大字段记录的,因此表结构也是可以简单的修改的,而不需要重新发布应用。通过本申请提供的方式达到了简单灵活实现表修改的目的。
本申请中各个实施例所涉及的上述描述仅是本申请中的一些实施例中的应用,在某些标准、模型、方法的基础上略加修改后的实施方式也可以实行上述本申请各实施例的方案。当然,在符合本申请上述各实施例的中所述的处理方法步骤的其他无创造性的变形,仍然可以实现相同的申请,在此不再赘述。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、AtmelAT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。