CN116680270A - 数据表转换方法、装置和存储介质 - Google Patents

数据表转换方法、装置和存储介质 Download PDF

Info

Publication number
CN116680270A
CN116680270A CN202310686963.0A CN202310686963A CN116680270A CN 116680270 A CN116680270 A CN 116680270A CN 202310686963 A CN202310686963 A CN 202310686963A CN 116680270 A CN116680270 A CN 116680270A
Authority
CN
China
Prior art keywords
data table
preset
field
annotation information
target
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
Application number
CN202310686963.0A
Other languages
English (en)
Inventor
欧阳志群
彭驰
衣佳忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202310686963.0A priority Critical patent/CN116680270A/zh
Publication of CN116680270A publication Critical patent/CN116680270A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据表转换方法、装置和存储介质,涉及通信技术领域,用于高效且便捷地将新字段添加在由横表转换得到的纵表中,以降低资源浪费。该方法包括:获取待转换数据表;待转换数据表包括按行存储的多个字段;调用预设转换服务对待转换数据表进行转换处理,得到目标数据表;预设转换服务用于确定多个字段中与预设注解信息存在对应关系的目标字段;目标数据表包括按列存储的目标字段和预设注解信息。

Description

数据表转换方法、装置和存储介质
技术领域
本申请属于计算机技术领域,尤其涉及一种数据表转换方法、装置和存储介质。
背景技术
为了更高效地存储和查询数据,通常可以将数据库中按行存储的数据表,转换为按列存储的数据表,也可以称为横表转纵表。
目前,在实现横表转纵表时,一般是通过查询数据语句(也可以称为select语句)和联合关键字(也可以称为union关键字)结合的方式。若要在转换得到的纵表中添加新字段,这种方式需要修改结构化查询语言(s tructured query language,SQL)脚本,实现时较为复杂且效率较低,容易导致大量的冗余代码,造成存储资源和计算资源等资源的浪费。
发明内容
本申请提供一种数据表转换方法、装置和存储介质,用于高效且便捷地将新字段添加在由横表转换得到的纵表中,以降低资源浪费。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据表转换方法,包括:获取待转换数据表;待转换数据表包括按行存储的多个字段;调用预设转换服务对待转换数据表进行转换处理,得到目标数据表;预设转换服务用于确定多个字段中与预设注解信息存在对应关系的目标字段;目标数据表包括按列存储的目标字段和预设注解信息。
可选地,预设注解信息包括原字段名、字段定义、字段排序和字段类型中的至少一种,以及与至少一种字段名一一对应的至少一个字段值。
可选地,调用预设转换服务对待转换数据表进行转换处理,得到目标数据表的方法,具体包括:调用第一预设类遍历多个字段,确定与注解信息存在对应关系的目标字段;第一预设类用于读取按行存储的数据表;调用第二预设类将目标字段和注解信息添加在目标数据表的列中;第二预设类用于生成按列存储的数据表。
可选地,该数据表转换方法,还包括:响应于注解编辑指令,获取与注解编辑指令对应的指定注解信息;将指定注解信息添加为预设注解信息。
第二方面,提供一种数据表转换装置,包括:获取单元和调用单元;
获取单元,用于获取待转换数据表;待转换数据表包括按行存储的多个字段;
调用单元,用于调用预设转换服务对待转换数据表进行转换处理,得到目标数据表;预设转换服务用于确定多个字段中与预设注解信息存在对应关系的目标字段;目标数据表包括按列存储的目标字段和预设注解信息。
可选地,预设注解信息包括原字段名、字段定义、字段排序和字段类型中的至少一种,以及与至少一种字段名一一对应的至少一个字段值。
可选地,调用单元,具体用于:
调用第一预设类遍历多个字段,确定与注解信息存在对应关系的目标字段;第一预设类用于读取按行存储的数据表;
调用第二预设类将目标字段和注解信息添加在目标数据表的列中;第二预设类用于生成按列存储的数据表。
可选地,该数据表转换装置,还包括:添加单元;
获取单元,还用于响应于注解编辑指令,获取与注解编辑指令对应的指定注解信息;
添加单元,用于将指定注解信息添加为预设注解信息。
第三方面,提供一种数据表转换装置,包括存储器和处理器;存储器用于存储计算机执行指令,处理器与存储器通过总线连接;当数据表转换装置运行时,处理器执行存储器存储的计算机执行指令,以使数据表转换装置执行如第一方面的数据表转换方法。
该数据表转换装置可以是网络设备,也可以是网络设备中的一部分装置,例如网络设备中的芯片系统。该芯片系统用于支持网络设备实现第一方面及其任意一种可能的实现方式中所涉及的功能,例如,接收、确定、分流上述数据表转换方法中所涉及的数据和/或信息。该芯片系统包括芯片,也可以包括其他分立器件或电路结构。
第四方面,提供一种计算机可读存储介质,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行如第一方面的数据表转换方法。
需要说明的是,上述计算机指令可以全部或者部分存储在第一计算机可读存储介质上。其中,第一计算机可读存储介质可以与数据表转换装置的处理器封装在一起的,也可以与数据表转换装置的处理器单独封装,本申请对此不作限定。
在本申请中,上述数据表转换装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
本申请提供的技术方案至少带来以下有益效果:
基于上述任一方面,本申请中,在获取包括按行存储的多个字段的待转换数据表后,可以调用预设转换服务确定多个字段中与预设注解信息存在对应关系的目标字段,以对待转换数据表进行转换处理,得到包括按列存储的目标字段和预设注解信息的目标数据表。
基于此,本申请可以通过在预设注解信息中添加所需的新字段,并调用预设转换服务对横表形式的待转换数据表进行转换,从而将所需的新字段添加在纵表形式的目标数据表中。相比于需要修改SQL脚本以添加新字段的方式,本申请可以通过修改注解信息添加新字段,实现过程较为简单,可以避免产生大量的冗余代码,降低存储资源和计算资源的浪费。因此,本申请可以用于高效且便捷地将新字段添加在由横表转换得到的纵表中,以降低资源浪费。
附图说明
图1为本申请实施例提供的一种数据表转换系统的结构示意图;
图2为本申请实施例提供的一种数据表转换装置的硬件结构示意图;
图3为本申请实施例提供的一种数据表转换方法的流程示意图;
图4为本申请实施例提供的另一种数据表转换方法的流程示意图;
图5为本申请实施例提供的另一种数据表转换方法的流程示意图;
图6为本申请实施例提供的一种数据表转换装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了便于清楚描述本申请实施例的技术方案,在本申请实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
此外,本申请实施例和权利要求书及附图中的术语“包括”和“具有”不是排他的。例如,包括了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,还可以包括没有列出的步骤或模块。
为了便于理解本申请,现对本申请涉及到的相关要素进行描述。
为了更高效地存储和查询数据,通常可以将数据库中按行存储的数据表,转换为按列存储的数据表,也可以称为横表转纵表。在横表中,一个记录的各个属性分别作为不同的字段存储在同一行中。而纵表中可以将每个属性单独存储在一列中,能够更好地利用空间,同时也能够减少字段间的冗余数据。
目前,在实现横表转纵表时,主要有两种方式。第一种方式是通过se lect语句和union关键字结合的方式。即将横表中每个字段通过select语句分别查出来,然后使用union关键字合并查询结果,得到纵表。第一种方式的实现代码如下:
select id,name,’语文’Subject,“语文分数”Grade
from t_s tudent
where id=#{id}
union
select id,name,’数学’Subject,“数学分数”Grade
from t_s tudent
where id=#{id}
union
select id,name,’英语’Subject,“英语分数”Grade
from t_s tudent
where id=#{id}
union
select id,name,’体育’Subject,“体育分数”Grade
from t_s tudent
where id=#{id}。
这种方式在添加新字段时,需要修改SQL脚本以增加union语句,实现时较为复杂且效率较低,容易导致大量的冗余代码,造成存储资源和计算资源等资源的浪费。
第二种方式是使用SQL语句中的逆透视命令(也可以称为UNPIVOT命令)将横表转换成纵表,实现代码如下:
Select u.KEY,u.VAL
From T_BR_ERROR_MOBILE
UNPIVOT
(
VAL
for KEY in(MOBILE,FAILED_REASON,DISTRICT)
)u。
一种该代码实现时得到的数据示例如下表1所示。
表1
KEY VAL
1 MOBILE 188********
2 FAILED_REASON 未匹配到该号码
3 MOBILE 188********
4 FAILED_REASON ID错误或者无权限
5 MOBILE 188********
6 FAILED_REASON 未匹配到该号码
7 MOBILE 188********
8 FAILED_REASON 未匹配到该号码
第二种方式借助Oracle数据库的UNPIVOT命令实现,生成的纵表结构只有两个字段,即横表原有的字段名和字段值,无法添加字段排序等其它新字段,且无法在其它数据库(例如MySQL数据库)中使用,难以便捷地实现新字段的添加。
针对上述问题,本申请实施例提供了一种数据表转换方法,在获取包括按行存储的多个字段的待转换数据表后,可以调用预设转换服务确定多个字段中与预设注解信息存在对应关系的目标字段,以对待转换数据表进行转换处理,得到包括按列存储的目标字段和预设注解信息的目标数据表。
基于此,本申请可以通过在预设注解信息中添加所需的新字段,并调用预设转换服务对横表形式的待转换数据表进行转换,从而将所需的新字段添加在纵表形式的目标数据表中。相比于需要修改SQL脚本以添加新字段的方式,本申请可以通过修改注解信息添加新字段,实现过程较为简单,可以避免产生大量的冗余代码,降低存储资源和计算资源的浪费。因此,本申请可以用于高效且便捷地将新字段添加在由横表转换得到的纵表中,以降低资源浪费。
该数据表转换方法适用于数据表转换系统。图1示出了该数据表转换系统100的一种结构。如图1所示,该数据表转换系统100可以包括:数据表转换装置101和数据表采集装置102。数据表转换装置101和数据表采集装置102之间可以通信连接。
在实际应用中,数据表转换系统100也可以包括多个数据表采集装置102。为了便于理解,本申请以一个数据表采集装置102为例进行说明。
可选的,图1中的数据表转换装置101和数据表采集装置102可以是集成于同一个设备内的功能模块,也可以是两个相互独立设置的设备。本公开实施例对此不作限制。
容易理解的是,当数据表转换装置101和数据表采集装置102是集成于同一个设备内的功能模块时,数据表转换装置101和数据表采集装置102之间的通信方式为设备内部模块之间的通信。这种情况下,二者之间的通信流程与“数据表转换装置101和数据表采集装置102相互独立设置的情况下,二者之间的通信流程”相同。
为了便于理解,本申请主要以数据表转换装置101和数据表采集装置102相互独立设置为例进行说明。
一种可能的方式中,数据表转换装置101可以配置有数据转换服务(也可以称为数据转换方法)、第一预设类和第二预设类等代码程序,以实现相关的数据处理功能。
一种可能的方式中,数据表采集装置102可以配置基于各种数据库实现的存储模块,可以用于提供数据存储服务。
可选地,图1中的数据表转换装置101和数据表采集装置102可以是终端,也可以是服务器,还可以是其他类型的电子设备。图1中所示为数据表转换装置101和数据表采集装置102的一种设备形态示例,不用于限制数据表转换装置101和数据表采集装置102的设备形态。
当数据表转换装置101和数据表采集装置102是终端时,该终端可以是为指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(radio access network,RAN)与一个或多个核心网进行通信。无线终端可以是移动终端,如具有移动终端的计算机,也可以是便携式、袖珍式、手持式、计算机内置的移动装置,它们与无线接入网交换语言和/或数据,例如,手机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)。本申请实施例对此不作任何限制。
当数据表转换装置101和数据表采集装置102是服务器时,该服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本申请实施例对此不作任何限制。
如图2所示,为本申请实施例提供的数据表转换装置101和数据表采集装置102的一种硬件结构示意图。该数据表转换装置101和数据表采集装置102包括处理器21,存储器22、通信接口23、总线24。处理器21,存储器22以及通信接口23之间可以通过总线24连接。
处理器21是数据表转换装置101和数据表采集装置102的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器21可以是一个CPU,也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
作为一种实施例,处理器21可以包括一个或多个CPU,例如图2中所示的CPU0和CPU1。
存储器22可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
一种可能的实现方式中,存储器22可以独立于处理器21存在,存储器22可以通过总线24与处理器21相连接,用于存储指令或者程序代码。处理器21调用并执行存储器22中存储的指令或程序代码时,能够实现本申请下述实施例提供的数据表转换方法。
另一种可能的实现方式中,存储器22也可以和处理器21集成在一起。
通信接口23,用于数据表转换装置101和数据表采集装置102与其他设备通过通信网络连接,所述通信网络可以是以太网,无线接入网,无线局域网(wireless local areanetworks,WLAN)等。通信接口23可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
总线24,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图2中示出的结构并不构成对数据表转换装置101和数据表采集装置102的限定,除图2所示部件之外,数据表转换装置101和数据表采集装置102可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图3所示,为本申请实施例提供的一种数据表转换方法的流程示意图。该数据表转换方法可以应用于图1所示的数据表转换系统100中的数据表转换装置101。该数据表转换方法包括:S301-S302。
S301、数据表转换装置获取待转换数据表。
其中,待转换数据表可以包括按行存储的多个字段。即待转换数据表可以是横表形式的数据表。字段可以对应有字段名和字段值。例如,字段名可以地址,字段值可以是该地址的详细信息(例如某市某区等)。
一种可能的方式中,结合图1,数据表采集装置可以配置有存储模块。该存储模块可以存储有多个横表形式的数据表。数据表转换装置可以响应于指向于待转换数据表的数据表转换指令,向数据表采集装置发送携带有待转换数据表的标识信息的数据表获取请求。响应于该数据表获取请求,数据表采集装置可以基于待转换数据表的标识信息,读取到存储模块中存储的待转换数据表,并向数据表转换装置发送待转换数据表。相应的,数据表转换装置可以接收到数据表采集装置发送的待转换数据表。
一种可能的方式中,指向于待转换数据表的数据表转换指令可以由工作人员预先设置的定时触发命令触发,也可以由工作人员通过配置有输入模块的终端设备触发。本申请实施例对此不作限制。
S302、数据表转换装置调用预设转换服务对待转换数据表进行转换处理,得到目标数据表。
其中,预设转换服务可以配置有多个预设注解信息与目标字段的对应关系。预设转换服务可以用于确定多个字段中与预设注解信息存在对应关系的目标字段。
一种可能的方式中,目标数据表可以是纵表形式的数据表,可以包括按列存储的目标字段和预设注解信息。
一种可能的方式中,预设注解信息可以是代码程序中的特殊标记。这些标记可以在代码程序运行时被读取,并执行相应的处理。
一种可能的方式中,预设注解信息可以包括原字段名、字段定义(也可以称为字段解释)、字段排序和字段类型中的至少一种字段名。这些信息可以对应于目标数据表中的具体列,用于对原横表(即待转换数据表)中的字段信息进行补充。
一种可能的方式中,预设注解信息中还可以包括与至少一种字段名一一对应的至少一个字段值,即与原字段名、字段定义、字段排序和字段类型分别对应的字段值。例如,原字段名对应的字段值可以是订单编码,字段定义对应的字段值可以是具体的订单编码(例如1**1**2),字段排序对应的字段值可以是1,字段类型对应的字段值可以是隐式基础信息。
一种可能的示例中,本申请实施例提供一种关于预设注解信息的示例性定义代码。该示例性定义代码如下:
@Retent ion(Retent ionPol icy.RUNTIME)
@Target({ElementType.FIELD})
publ ic@interface ExtFieldAnnotat ion{
/**
*原横表数据库字段名,例如ORDER_CODE
*/
St r ing key();
/**
*横表字段解释,例如:订单编码
*/
Str ing keyAs();
/**
*横表转纵表后字段排序,例如:1
*/
int orderNum();
/**
*原横表字段类型(可按需求自定义字段),例如Str ing
*/
St r ing type();
}
一种可能的方式中,数据表转换装置获取到待转换数据表后,可以调用预设转换服务,确定多个字段中与预设注解信息存在对应关系的目标字段,以进一步将多个字段中的全部目标字段提取处理,并将提取到的目标字段和对应的预设注解信息生成为一列记录,即将待转换数据表中目标字段的字段名、字段值和对应的预设注解信息生成为一列对象,从而对待转换数据表进行转换处理,得到目标数据表。
一种可能的方式中,若待转换数据表包括的多个字段中存在与预设注解信息没有对于关系的字段,则不会被添加在目标数据表中。
一种实施例中,结合图3,在上述S302中,即数据表转换装置调用预设转换服务对待转换数据表进行转换处理,得到目标数据表时,如图4所示,本申请实施例提供一种可选的实现方式,包括:S401-S402。
S401、数据表转换装置调用第一预设类遍历多个字段,确定与注解信息存在对应关系的目标字段。
其中,第一预设类可以用于读取按行存储的数据表。
一种可能的方式中,第一预设类可以是与预设转换方法关联的类。数据表转换装置调用预设转换方法后,可以进一步调用第一预设类,通过反射遍历的方式遍历多个字段。若数据表转换装置确定一个字段存在预设注解信息,则可以确定该一个字段为目标字段,并读取该字段的字段名和字段值,以及预设注解信息中配置的内容,以进一步生成一列新的记录。
一种可能的方式中,第一预设类可以包括有工作人员预先定义的数据说明和一组操作数据或传递消息的函数,以实现读取按行存储的数据表的功能。
一种可能的示例中,本申请实施例提供一种第一预设类的示例性定义代码。该示例性定义代码如下:
@Data
publ ic c lass Order{
/**
*订单id
*/
Pr ivate s tr ing ordered;
/**
*创建人id
*/
Pr ivate s tr ing creator id;
@ExtFieldAnnotat ion(key="ORDER_CODE",keyAs="订单号",orderNum=1,type="BASE.HIDDEN")
Pr ivate s tr ing ORDERCODE;
@ExtFieldAnnotat ion(key="WX_PAY_ORDER_ID",keyAs="WX支付单号",orderNum=2,type="BUSINESS.STRING")
Pr ivate s tr ing WXPAYORDERID;
@ExtFieldAnnotat ion(key="BUSINESS_PAY_ORDER_ID",keyAs="商户支付单号",orderNum=2,type="BUSINESS.STRING")
Pr ivate s tr ing BUSINESSPAYORDERID;
@ExtFieldAnnotat ion(key="KF_VALET",keyAs="客服代客下单",orderNum=3,type="BASE.HIDDEN")
Pr ivate s tr ing KFVALET;
@ExtFieldAnnotat ion(key="NOTE",keyAs="订单备注",orderNum=7,type="BUSINESS.STRING")
Pr ivate s tr ing NOTE;
@ExtFieldAnnotat ion(key="PRE_PAID_NAME",keyAs="预缴费系统用户名",orderNum=15,type="BUSINESS.STRING")
Pr ivate s tr ing PREPAIDNAME;
@ExtFieldAnnotat ion(key="CONTACT_ADDRESS",keyAs="收货地址",orderNum=20,type="BUSINESS.STRING")
Pr ivate s tr ing CONTACTADDRESS;
@ExtFieldAnnotat ion(key="CONTACT_ADDRESS_LEVEL7",keyAs="收货地址7级地址",orderNum=20,type="BUSINESS.STRING")
Pr ivate s tr ing CONTACTADDRESSLEVEL7;
@ExtFieldAnnotat ion(key="CONTACT_ADDRESS_HOME_NAME",keyAs="收货地址门牌号",orderNum=20,type="BUSINESS.STRING")
Pr ivate s tr ing CONTACTADDRESSHOMENAME;
@ExtFieldAnnotat ion(key="GD_ADDRESS",keyAs="广电地址",orderNum=20,type="BUSINESS.STRING")
Pr ivate s tr ing GDADDRESS;
}
S402、数据表转换装置调用第二预设类将目标字段和注解信息添加在目标数据表的列中。
其中,第二预设类可以用于生成按列存储的数据表。
一种可能的方式中,第二预设类可以是与预设转换方法关联的类。数据表转换装置调用预设转换方法后,并调用第一预设类读取到目标字段的字段名和字段值,以及预设注解信息中配置的内容后,可以进一步调用第二预设类,将读取到目标字段的字段名和字段值,以及预设注解信息中配置的内容生成一列新的记录。数据表转换装置遍历待转换数据表包括的多段后,可以生成纵表结构的目标数据表。
一种可能的方式中,第二预设类可以包括有工作人员预先定义的数据说明和一组操作数据或传递消息的函数,以实现生成按列存储的数据表的功能。
一种可能的示例中,本申请实施例提供一种第二预设类的示例性定义代码。该示例性定义代码如下:
@Bui lder
@Data
publ ic c lass ExtField{
@TableFie ld(va lue=“ID”)
@ApiModeProper ty(va lue=“id”)
pr ivate Str ing id;
@ApiModeProper ty(va lue=“字段名”)
r ivate Str ing key;
@ApiModeProper ty(va lue=“字段解释”)
pr ivate Str ing keyAs;
@ApiModeProper ty(va lue=“字段值”)
pr ivate Str ing va l;
@ApiModeProper ty(va lue=“字段类型”)
pr ivate Str ing type;
@ApiModeProper ty(va lue=“字段排序”)
pr ivate Integer orderNum;
@ApiModeProper ty(va lue=“创建时间”)
pr ivate Loca lDateTime createTime;
@ApiModeProper ty(va lue=“字段备注”)
pr ivate Str ing note;
}
一种可能的方式中,预设转换服务可以由工作人员预先配置的方法实现。该方法与第一预设类和第二预设类的定义代码相关联。
一种可能的示例中,本申请实施例提供一种预设转换服务的示例性定义代码。该示例性定义代码如下:
publ ic Li s t<ExtField>transferHor izonta lToExt(order order){
纵表对象列表
Li s t<ExtField>ExtFields=new ArrayLi s t<>();
获取并遍历横表结构类Order的字段
Field[]dec laredFields=order.getClas s().getDec laredFields();
For(Field f ie ld:dec laredFields){
判断字段是否有注解ExtFieldAnnotat ion
If(f ield.i sAnnotat ionPresent(ExtFie ldAnnotat ion.c lass)){
ExtFieldAnnotat ion Annotat ion=f ield.getAnnotat ion(ExtFieldAnnotat ion.c lass);
f ield.setAccess ible(true);
try{
获取原横表字段值
St r ing va lue=(Str ing)f ie ld.get(order);
将原横表中某一字段转换成纵表中的一条记录
ExtField extField=ExtField.bui lder()
.id(order.getOrderId())
.key(annotat ion.key())
.keyAs(annotat ion.keyAs())
.va l(va lue))
.type(annotat ion.type())
.orderNum(annotat ion.orderNum())
.bui ld();
将纵表记录加入纵表列表中
extFields.add(extField);
}catch(IllegalAccessException e){
Log.error(“反射获取对象属性值异常:{}”,e.getMessage());
Throw new CustomException(“反射获取对象属性值异常,字段:”+annotation.keyAs()+“,”+field.getName());
}
}
一种实施例中,如图5所示,本申请实施例提供的数据表转换方法,还包括:S501-S502。
S501、数据表转换装置响应于注解编辑指令,获取与注解编辑指令对应的指定注解信息。
一种可能的方式中,数据表转换装置可以是配置有鼠标和键盘等输入模块的终端设备。工作人员可以通过数据表转换装置配置的输入模块,执行注解编辑操作,以编辑指定注解信息。数据表转换装置可以响应于与该注解编辑操作对应的注解编辑指令,获取与注解编辑指令对应的指定注解信息,即工作人员编辑的指定注解信息。
S502、数据表转换装置将指定注解信息添加为预设注解信息。
一种可能的方式中,数据表转换装置获取与注解编辑指令对应的指定注解信息后,可以将该指定注解信息添加为预设注解信息,即添加在预设转换服务中,以支持对于预设注解信息的按需自定义。基于此,本申请可以实现对于预设注解信息的按需扩展。
本申请实施例中,在获取包括按行存储的多个字段的待转换数据表后,可以调用预设转换服务确定多个字段中与预设注解信息存在对应关系的目标字段,以对待转换数据表进行转换处理,得到包括按列存储的目标字段和预设注解信息的目标数据表。
基于此,本申请可以通过在预设注解信息中添加所需的新字段,并调用预设转换服务对横表形式的待转换数据表进行转换,从而将所需的新字段添加在纵表形式的目标数据表中。相比于需要修改SQL脚本以添加新字段的方式,本申请可以通过修改注解信息添加新字段,实现过程较为简单,可以避免产生大量的冗余代码,降低存储资源和计算资源的浪费。因此,本申请可以用于高效且便捷地将新字段添加在由横表转换得到的纵表中,以降低资源浪费。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对查询响应装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选地,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图6所示,为本申请实施例提供的一种数据表转换装置的结构示意图。该数据表转换装置可以用于执行如图3-图5所示的数据表转换方法。该数据表转换装置包括:获取单元601和调用单元602;
获取单元601,用于获取待转换数据表;待转换数据表包括按行存储的多个字段;例如,结合图3,获取单元601可以用于执行S301。
调用单元602,用于调用预设转换服务对待转换数据表进行转换处理,得到目标数据表;预设转换服务用于确定多个字段中与预设注解信息存在对应关系的目标字段;目标数据表包括按列存储的目标字段和预设注解信息。例如,结合图3,调用单元602可以用于执行S302。
可选地,预设注解信息包括原字段名、字段定义、字段排序和字段类型中的至少一种,以及与至少一种字段名一一对应的至少一个字段值。
可选地,调用单元602,具体用于:
调用第一预设类遍历多个字段,确定与注解信息存在对应关系的目标字段;第一预设类用于读取按行存储的数据表;例如,结合图4,调用单元602可以用于执行S401。
调用第二预设类将目标字段和注解信息添加在目标数据表的列中;第二预设类用于生成按列存储的数据表。例如,结合图4,调用单元602可以用于执行S402。
可选地,该数据表转换装置,还包括:添加单元603;
获取单元601,还用于响应于注解编辑指令,获取与注解编辑指令对应的指定注解信息;例如,结合图5,获取单元601可以用于执行S501。
添加单元603,用于将指定注解信息添加为预设注解信息。例如,结合图5,添加单元603可以用于执行S502。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种数据表转换方法,其特征在于,所述方法包括:
获取待转换数据表;所述待转换数据表包括按行存储的多个字段;
调用预设转换服务对所述待转换数据表进行转换处理,得到目标数据表;所述预设转换服务用于确定所述多个字段中与预设注解信息存在对应关系的目标字段;所述目标数据表包括按列存储的所述目标字段和所述预设注解信息。
2.根据权利要求1所述的数据表转换方法,其特征在于,所述预设注解信息包括原字段名、字段定义、字段排序和字段类型中的至少一种字段名,以及与所述至少一种字段名一一对应的至少一个字段值。
3.根据权利要求2所述的数据表转换方法,其特征在于,所述调用预设转换服务对所述待转换数据表进行转换处理,得到目标数据表,包括:
调用第一预设类遍历所述多个字段,确定与所述注解信息存在对应关系的所述目标字段;所述第一预设类用于读取按行存储的数据表;
调用第二预设类将所述目标字段和所述注解信息添加在所述目标数据表的列中;所述第二预设类用于生成按列存储的数据表。
4.根据权利要求1-3任一项所述的数据表转换方法,其特征在于,所述方法还包括:
响应于注解编辑指令,获取与所述注解编辑指令对应的指定注解信息;
将所述指定注解信息添加为预设注解信息。
5.一种数据表转换装置,其特征在于,包括:获取单元和调用单元;
所述获取单元,用于获取待转换数据表;所述待转换数据表包括按行存储的多个字段;
所述调用单元,用于调用预设转换服务对所述待转换数据表进行转换处理,得到目标数据表;所述预设转换服务用于确定所述多个字段中与预设注解信息存在对应关系的目标字段;所述目标数据表包括按列存储的所述目标字段和所述预设注解信息。
6.根据权利要求5所述的数据表转换装置,其特征在于,所述预设注解信息包括原字段名、字段定义、字段排序和字段类型中的至少一种。
7.根据权利要求6所述的数据表转换装置,其特征在于,所述调用单元,具体用于:
调用第一预设类遍历所述多个字段,确定与所述注解信息存在对应关系的所述目标字段;所述第一预设类用于读取按行存储的数据表;
调用第二预设类将所述目标字段和所述注解信息添加在所述目标数据表的列中;所述第二预设类用于生成按列存储的数据表。
8.根据权利要求5-7任一项所述的数据表转换装置,其特征在于,还包括:添加单元;
所述获取单元,还用于响应于注解编辑指令,获取与所述注解编辑指令对应的指定注解信息;
所述添加单元,用于将所述指定注解信息添加为预设注解信息。
9.一种数据表转换装置,其特征在于,包括存储器和处理器;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过总线连接;当所述数据表转换装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述数据表转换装置执行如权利要求1-4任一项所述的数据表转换方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机执行指令,当所述计算机执行指令在计算机上运行时,使得所述计算机执行如权利要求1-4任一项所述的数据表转换方法。
CN202310686963.0A 2023-06-09 2023-06-09 数据表转换方法、装置和存储介质 Pending CN116680270A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310686963.0A CN116680270A (zh) 2023-06-09 2023-06-09 数据表转换方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310686963.0A CN116680270A (zh) 2023-06-09 2023-06-09 数据表转换方法、装置和存储介质

Publications (1)

Publication Number Publication Date
CN116680270A true CN116680270A (zh) 2023-09-01

Family

ID=87780627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310686963.0A Pending CN116680270A (zh) 2023-06-09 2023-06-09 数据表转换方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN116680270A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117540704A (zh) * 2024-01-10 2024-02-09 智慧足迹数据科技有限公司 一种数据表的数据逆透视转换方法、装置、设备及介质
CN118331994A (zh) * 2024-06-13 2024-07-12 杭州兆林科技有限公司 一种使用层叠透视来合并数据的方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117540704A (zh) * 2024-01-10 2024-02-09 智慧足迹数据科技有限公司 一种数据表的数据逆透视转换方法、装置、设备及介质
CN117540704B (zh) * 2024-01-10 2024-04-30 智慧足迹数据科技有限公司 一种数据表的数据逆透视转换方法、装置、设备及介质
CN118331994A (zh) * 2024-06-13 2024-07-12 杭州兆林科技有限公司 一种使用层叠透视来合并数据的方法和装置
CN118331994B (zh) * 2024-06-13 2024-08-23 杭州兆林科技有限公司 一种使用层叠透视来合并数据的方法和装置

Similar Documents

Publication Publication Date Title
CN116680270A (zh) 数据表转换方法、装置和存储介质
CN110162512B (zh) 一种日志检索方法、装置及存储介质
CN109617647B (zh) 报文转换方法、装置、计算机设备及计算机可读存储介质
US20210240784A1 (en) Method, apparatus and storage medium for searching blockchain data
CN109241384B (zh) 一种科研信息的可视化方法及装置
CN108388640B (zh) 一种数据转换方法、装置以及数据处理系统
CN106326243B (zh) 一种数据处理方法及装置
WO2023231665A1 (zh) 分布式事务处理方法、系统、设备及可读存储介质
CN113010542B (zh) 业务数据处理方法、装置、计算机设备及存储介质
CN111694866A (zh) 数据搜索及存储方法、数据搜索系统、装置、设备及介质
CN113704307A (zh) 数据查询方法、装置、服务器及计算机可读存储介质
CN111241180A (zh) 一种信息处理的方法、装置、设备及存储介质
CN111159040A (zh) 一种测试数据生成方法、装置、设备及存储介质
CN103678591A (zh) 自动执行多业务单据统计处理的装置和方法
CN113282850B (zh) 资源标签管理方法、装置、电子设备、系统及存储介质
CN111324645B (zh) 区块链的数据处理方法及装置
CN111767451A (zh) 一种搜索方法、电子设备与计算机可读存储介质
CN102360370A (zh) 数据集中管理系统及方法
CN113296912B (zh) 任务处理方法及装置、系统、存储介质、电子设备
CN111639936B (zh) 交易信息的获取方法、装置、电子设备及可读存储介质
US20220100719A1 (en) Techniques for performing lifecycle operations on a data store
CN114217790A (zh) 接口编排调度方法、装置、电子设备及介质
CN114265633A (zh) 自助设备的应用参数配置、查询方法、设备和存储介质
CN114547066A (zh) 核电业务数据的标准化方法、装置和计算机设备
CN114020769A (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