CN115098568A - 数据处理方法、装置、设备、介质和程序产品 - Google Patents
数据处理方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN115098568A CN115098568A CN202210844787.4A CN202210844787A CN115098568A CN 115098568 A CN115098568 A CN 115098568A CN 202210844787 A CN202210844787 A CN 202210844787A CN 115098568 A CN115098568 A CN 115098568A
- Authority
- CN
- China
- Prior art keywords
- data
- array
- field
- header
- fields
- 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
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/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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- 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)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据处理方法,可以应用于大数据技术领域。该数据处理方法包括:获取列式数据库的待处理数据,待处理数据包括多个对象,每个对象包括多个字段;统计多个对象中每个对象的多个字段,得到表头数组和数据数组;基于表头数组,生成至少一个列头数据;以及基于至少一个列头数据,以表格的形式展示数据数组。本公开还提供了一种数据处理装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及大数据领域,具体涉及金融领域的大数据处理,更具体地涉及一种数据处理方法、装置、设备、介质和程序产品。
背景技术
列式数据库是一种以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。列式数据库通常将每列数据串联起来,以一系列一维的字符串的形式将数据写到内存或硬盘中。由于每条数据列数不一,当数据量过大时,在UI界面展示出的数据就会让人眼花缭乱。操作者在对列式数据库中进行查询等操作时,也会体验不佳。
发明内容
鉴于上述问题,本公开提供了一种的数据处理方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种数据处理方法,包括:获取列式数据库的待处理数据,待处理数据包括多个对象,每个对象包括多个字段;统计多个对象中每个对象的多个字段,得到表头数组和数据数组;基于表头数组,生成至少一个列头数据;以及基于至少一个列头数据,以表格的形式展示数据数组。
根据本公开的实施例,待处理数据包括M个对象,每个对象的多个字段包括至少一个第一字段和至少一个第二字段;统计多个对象中每个对象的多个字段,得到表头数组和数据数组包括:遍历多个对象的第1个对象,得到第1个对象的至少一个第一字段和至少一个第二字段;基于至少一个第一字段生成表头数组,基于至少一个第二字段生成数据数组;遍历多个对象的第m个对象,得到第m个对象的至少一个第一字段和至少一个第二字段,m=2,3,…,M-1,M,M为正整数;以及基于第m个对象的至少一个第一字段更新表头数组,基于第m个对象的至少一个第二字段更新数据数组。
根据本公开的实施例,至少一个第一字段包括多个第一字段,基于至少一个第一字段生成表头数组,包括:基于所述多个字段的类型,获取多个字段中每个字段的至少一个第一字段,得到多个第一字段,多个第一字段具有相同类型;以及对多个第一字段进行合并,得到表头数组。
根据本公开的实施例,基于第m个对象的至少一个第一字段更新表头数组,基于第m个对象的至少一个第二字段更新数据数组,包括:将第m个对象的至少一个第一字段分别与表头数组的元素进行对比,得到新增第一字段,将第m个对象的至少一个第二字段与数据数组的元素进行对比,得到新增第二字段;以及基于新增第一字段更新表头数组,基于新增第二字段更新数据数组。
根据本公开的实施例,基于至少一个列头数据,以表格的形式展示数据数组,包括:获取至少一个列头数据中的行键;从数据数组中获取与行键对应的至少一个元素;以及以至少一个元素为行头,以至少一个列头数据为列头,展示数据数组中与至少一个列头对应的元素。
根据本公开的实施例,的数据处理方法,还包括:获取新增对象;将新增对象的多个字段拼接为json格式的数据;以及通过列式数据库的接口,在表格中增加json格式的数据。
根据本公开的实施例,通过js插件将列头数据和数据数组转换成json数据;以及通过表格转换函数将json数据以表格的形式展示;其中,表格转换函数包括修改数据函数、复制数据函数、删除数据函数、数据定位函数和命名函数。
本公开的第二方面提供了一种数据处理装置,包括:获取模块,用于获取列式数据库的待处理数据,待处理数据包括多个对象,每个对象包括多个字段;统计模块,用于统计多个对象中每个对象的多个字段,得到表头数组和数据数组;生成模块,用于基于表头数组,生成至少一个列头数据;以及展示模块,用于基于至少一个列头数据,以表格的形式展示数据数组。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述数据处理方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述数据处理方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。
通过本公开提供的数据处理方法,将列式数据库中的长短不一的多个一维字符串以表格的形式进行展示,使得用户可以以表格的形式直观地查看列式数据库的数据,并且直接在界面上对表格中的数据进行操作,提高对列式数据库中数据的利用率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例数据处理方法、装置、设备、介质和程序产品的系统架构图;
图2示意性示出了根据本公开实施例数据处理方法、装置、设备、介质和程序产品的应用场景图;
图3示意性示出了根据本公开实施例的数据处理方法的流程图;
图4示意性示出了根据本公开实施例的生成表头数组和数据数组的流程图;
图5示意性示出了根据本公开实施例的展示数据数组的流程图;
图6示意性示出了根据本公开另一实施例的数据处理方法的流程图;
图7示意性示出了根据本公开实施例的数据处理装置的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现数据处理方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
需要说明的是,本公开提供的数据处理方法和装置可用于大数据领域,还可以用于金融领域的大数据处理领域,也可用于除金融领域之外的任意领域,本公开的数据处理方法和装置的应用领域不做限定。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
本公开的实施例提供了一种数据处理方法,获取列式数据库的待处理数据,待处理数据包括多个对象,每个对象包括多个字段;统计多个对象中每个对象的多个字段,得到表头数组和数据数组;基于表头数组,生成至少一个列头数据;以及基于至少一个列头数据,以表格的形式展示数据数组。
图1示意性示出了根据本公开实施例数据处理方法、装置、设备、介质和程序产品的系统架构图。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103、网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的数据处理方法一般可以由服务器105执行。相应地,本公开实施例所提供的数据处理装置一般可以设置于服务器105中。本公开实施例所提供的数据处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开实施例数据处理方法、装置、设备、介质和程序产品的应用场景图。
如图2所述,对列式数据库中的数据进行查询时,UI界面210展示的数据包括以一维字符串存储的两列数据。例如,[{″ED3011″:″0″,″ED3033″:″19″,″ED3012″:″454″,″ED3034″:″0″},{″ED3035″:″27″,″ED3014″:″195″,″ED3036″:″20″}]。由于列式数据库的一维字符串形式,导致查询结果无法较为直观地体现出数据之间的关系,从而用户也无法从查询结果中快速确定目标信息。当查询结果的内容过多时,UI界面210所展示的内容就很显得更加混乱和杂乱无章。
本申请公开的数据处理方法对列式数据库的查询结果进行处理,可以将一维字符串转换成表格,例如表格220。以表格220的形式展示列式数据库的查询结果,可以使得查询结果更加直观。
以下将基于图2描述的场景,通过图3~图6对公开实施例的数据处理方法进行详细描述。
图3示意性示出了根据本公开实施例的数据处理方法的流程图。
如图3所示,该实施例的数据处理包括操作S310~操作S330。
在操作S310,获取列式数据库的待处理数据,待处理数据包括多个对象,每个对象包括多个字段。
在本公开实施例中,响应于用户查询列式数据库中数据的操作,可以获取列式数据库中的数据。查询的结果可以作为列式数据库的待处理数据。待处理数据可以包括多列一维字符串。每列一维字符串的长度可以不相同。
在操作S320,统计多个对象中每个对象的多个字段,得到表头数组和数据数组。
在本公开实施例中,字段可以是以键值对的形式存在的。统计至多个对象中每个对象的多个字段,得到多个键值对的关键字和键值。在存在多个关键字的情况下,筛除多个关键字中重复的关键字,以确保表头数组中每个关键字只出现一次。相应地,每个关键字对应的键值组成数据数组。
在操作S330,基于表头数组,生成至少一个列头数据。
在本公开实施例中,对表头数组中的关键字进行整理,得到至少一个列头数据。在表头数组中的关键词均不相同的情况下,可以直接将表头数组中的关键字作为列头数据。在表头数组存在相同的关键词的情况下,可以对多个关键字进行适当的合并,以减少列头数据,从而简化表格。
在操作S340,基于至少一个列头数据,以表格的形式展示数据数组。
在本公开实施例中,根据表头数据中关键字和数据数组中键值的对应关系,在表格中列头数据关联的位置展示对应的键值。
例如,返回参见图2,待处理数据可以包括两列一维字符串,[{″ED3011″:″0″,″ED3033″:″19″,″ED3012″:″454″,″ED3034″:″0″},{″ED3035″:″27″,″ED3014″:″195″,″ED3036″:″20″}]。其中,待处理数据包括2个对象:{″ED3011″:″0″,″ED3033″:″19″,″ED3012″:″454″,″ED3034″:″0″}和{″ED3035″:″27″,″ED3014″:″195″,″ED3036″:″20″}。第一个对象包括4个字段,第二个对象包括3个字段,每个字段以键值对的形式表示。通过统计7个字段,得到表头数组[ED3011,ED3033,ED3012,ED3034,ED3035,ED3014,ED3036],以及数据数组[0,19,454,0,27,195,20]。
在多个字段的每个字段的关键字均不相同的情况下,可以直接将表头数组中的关键字可以直接作为列头数据,得到列头数据ED3011,ED3033,ED3012,ED3034,ED3035,ED3014,ED3036。根据表头数据中关键字和数据数组中键值的对应关系,在表格中列头数据关联的位置展示对应的键值,展示结果参见图2中表格210。
在本公开实施例中,用户在UI界面中对列式数据库进行查询操作,前端将查询的参数发送到后端服务层,查询的参数可以是应用名、表名、rowkey、页数等。后端服务层使用http将查询到的数据组织成json数据,发送到中间件层,经过前端加工后以表格的形式呈现。
在本公开实施例中,在操作S340基于至少一个列头数据,以表格的形式展示数据数组的步骤包括通过js插件将列头数据和数据数组转换成json数据;以及通过表格转换函数将json数据以表格的形式展示。表格转换函数包括修改数据函数、复制数据函数、删除数据函数、数据定位函数和命名函数。
例如,前端可以采用elementui架构和js插件。js插件用于生成支持各种编辑操作的表格。将表头数组和数据数组可以输入js插件中生成表格的函数,生产各行相应的表格。例如,可以根据js插件的json数组来生成表格并展示数据。用户在操作页面上对生成的表格中可以执行多种操作。例如,在表格的单元格中可以修改数据。例如,对于部分需要增减行的表格可以通过右键弹出菜单进行增加或者删除行。例如,通过回车键可增加表格的行数,或者选中表格中的某行后按Del键可将该行删除。例如,在表格中可执行Ctrl+C和Ctrl+V的复制粘贴操作,选择多个单元格批量复制。例如,通过Alt+Enter键可进行单元格内部的换行,通过tab键可以定位到右边的单元格,通过回车键可以定位到下方的单元格,通过上下左右键也可定位到相应单元格。例如,可以在表格中新增列并且给新增列进行重命名。
例如,后端可以采用springboot架构。通过http通信方式将前端传来的数据发送到中间件层,以及将中间件层的数据返回前端页面。后端和数据库之间的中间件层,可以采用springboot+dds服务架构,用于沟通后端服务层和数据库。
通过本公开实施例,用户可以列表的形式直观地查看列式数据库的数据,并且直接在界面上新增、修改和删除数据等操作,提高对列式数据库中数据的利用率。
图4示意性示出了根据本公开实施例的生成表头数组和数据数组的流程图。
如图4所示,待处理数据包括M个对象,每个对象的多个字段包括至少一个第一字段和至少一个第二字段。在操作S320统计多个对象中每个对象的多个字段,得到表头数组和数据数组的步骤包括操作S410~操作S440。
在操作S410,遍历多个对象的第1个对象,得到第1个对象的至少一个第一字段和至少一个第二字段。
在操作S420,基于至少一个第一字段生成表头数组,基于至少一个第二字段生成数据数组。
在操作S430,遍历多个对象的第m个对象,得到第m个对象的至少一个第一字段和至少一个第二字段,m=2,3,…,M-1,M,M为正整数。
在操作S440,基于第m个对象的至少一个第一字段更新表头数组,基于第m个对象的至少一个第二字段更新数据数组。
在本公开实施例中,依次遍历M个对象。根据遍历的第一个对象的多个字段生成表头数组和数据数组,并根据后续遍历的多个对象的多个字段依次更新表头数组和数据数组。根据对每个对象的遍历结果逐次更新表头数组,可以确保表头数组可以覆盖所有字段中的第一的数据不重复。
第一字段可以是多个字段中以字符表示的部分,第二字段可以是多个字段中以数值表示的部分。表头数组的元素与数据数组的元素一一对应。数据数组可以包括多个子数组,数据数组的每个子数组的元素数量与表头数组的元素数量相同。
在至少一个第一字段包括多个第一字段的情况下,在操作S420基于至少一个第一字段生成表头数组,基于至少一个第二字段生成数据数组中基于至少一个第一字段生成表头数组的步骤,包括基于多个字段的类型,获取多个字段中每个字段的至少一个第一字段,得到多个第一字段,多个第一字段具有相同类型;以及对多个第一字段进行合并,得到表头数组。
在每个对象包括多个字段的情况下,可以根据每个对象的多个字段之间的关联关系,适当地合并部分字段,以减少表头数组中的数据,简化表格。例如,可以将多个字段中的字符部分进行合并。
在操作S440基于第m个对象的至少一个第一字段更新表头数组,基于第m个对象的至少一个第二字段更新数据数组的步骤,包括将第m个对象的至少一个第一字段与表头数组的元素进行对比,得到新增第一字段,将第m个对象的至少一个第二字段与数据数组的元素进行对比,得到新增第二字段;以及基于新增第一字段更新表头数组,基于新增第二字段更新数据数组。
例如,将第2个对象的至少一个第一字段与当前表头数组中的元素进行对比,在确定第2个对象的至少一个第一字段相对于当前表头数组中的元素具有新增字段的情况下,将新增字段的字符部分添加到当前表头数组中,数值部分相应地添加到当前的数据数组中。在当前表头数组已经存在新增字段的字符部分,而数据数组不存在新增字段的数值部分的情况下,可以对当前表头数组不更新,并在数据数组中增加一个子数组,将新增字段的数值部分添加到增加的子数组中。
图5示意性示出了根据本公开实施例的展示数据数组的流程图。
如图5所示,在操作S340基于至少一个列头数据,以表格的形式展示数据数组的步骤包括操作S510~操作S530。
在操作S510,获取至少一个列头数据中的行键。
在操作S520,从数据数组中获取与行键对应的至少一个元素。
在操作S530,以至少一个元素为行头,以至少一个列头数据为列头,展示数据数组中与至少一个列头对应的元素。
在本公开实施例中,表头数组包括多个元素,表头数组的一个元素对应数据数组中的至少一个元素。在数据数组包括两个子数组的情况下,表头数组的一个元素可能与数据数组中的一个元素对应,表头数组的一个元素也可能与数据数组中的两个元素对应。
例如,表头数组可以包括行键、类簇、纵列和键值等。对于行键,行键对应的数据数组的元素数量与数据数组的子数组数量相同。在数据数组包括两个子数组的情况下,行键与数据数组中的两个元素对应。
在生成展示表格时,从表头数组中选择一个元素作为主键,确保表格中出现数据冗余的现象,而导致冗余数据无法辨别的问题。例如,通过表格展示商品信息时,存在具有相同商品名称的商品。避免商品信息混淆,可以选择商品的编号作为主键,形成每个商品的唯一标识。
例如,可以选择行键作为主键,以行键对应的数据数组中的元素为行头及列头数据为列头构建表格。例如,在数据数组包括两个子数组,每个数据包括三个元素的情况下,行键与数据数组中的两个元素对应,从而可以构建包括两个行头和三个列头的表格
通过本公开实施例,在表头数组中选择行键作为主键,形成每个对象的唯一标识信息,避免表格中出现数据混淆,无法辨别的问题。
本公开提供一种数据处理方法的实施例。
例如,从列式数据库查询到的待处理数据可以为[{rowkey:1,family:′family1′,column:′column1′,value:1},{rowkey:1,family:′family1′,column:′column2′,value:2},{rowkey:2,family:′family1′,column:′column1′,value:3}]。待处理数据包括3个对象,每个对象可认为是一个实体,一个实体为列式数据库中的一个单元格。
对待处理数据的3个对象依次进行遍历。
第一次遍历的对象为待处理数据中的第1个对象{rowkey:1,family:′family1′,column:′columnl′,value:1},第1个对象的多个字段包括rowkey:1、family:′family1′、column:′column1′和value:1。统计多个字段的字符部分,生成表头数据[′rowkey′,′family1:column1′],统计多个字段的数值部分,生成数据数组[[1,′1′]]。
由于在字段iamily:′family1′、字段column:′column1′和字段value:1中,字段family:′family1′和字段column:′columnl′的键值对均由字符组成,因此对字段family:′family1′和字段column:′column1′进行合并,得到′family1:columnl′。根据同一个对象中多个字段之间的关联关系,将字段family:′family1′、字段column:′column1′和字段value:1进行合并,得到字符部分′family1:column1′和数值部分1。
第二次遍历的对象为待处理数据中的第2个对象{rowkey:1,family:′family1′,column:′column2′,value:2},第2个对象的多个字段包括rowkey:1、family:′family1′、column:′column2′和value:2。新增字段为column:′column2′和value:2。根据当前表头数据中字段的形式,可认为新增字段的字符部分为family1:column2,数值部分为2。因此,更新表头数组为[′rowkey′,′family1:column1′,′family1:column2′],更新数据数组为[[1,′1′,′2′]]。
第三次遍历的对象为待处理数据中的第3个对象{rowkey:2,family:′family1′,column:′column1′,value:3},第3个对象的多个字段包括rowkey:2、family:′family1′、column:′columnl′和value:3。新增字段为rowkey:2和value:3。根据当前表头数据中字段的形式,可认为新增字段的字符部分在当前表头数组已存在,数值部分为2和3。因此,表头数组不更新,更新数据数组为[[1,′1`′,′2′],[2,′3′,″]]。在子数组[2,′3′,″]中,与表头数组中′family1:column2′对应的数值为空值。
对待处理数据中的对象全部遍历后,更新完成的表头数组为[′rowkey′,′family1:columnl′,′family1:column2′],更新完成的数据数组为[[1,′1′,12′],[2,′3′,″]]。表头数组的三个元素与数据数组中第一子数组的三个元素一一对应,表头数组的三个元素也与数据数组中第二子数组的三个元素一一对应。
更新完成的表头数组包括元素′rowkey′、′family1:column1′和′family1:column2′。更新完成的数据数组包括两个子数组,第一个子数组包括元素1、′1′和第二个子数组包括元素2、′3′和空值。行键rowkey对应两个元素1和2,构建的表格可以包括两个行头和三个列头。构建的表格可以如下表所示:
rowkey | family1:column1 | family 1:column2 | |
1 | 1 | 1 | 2 |
2 | 2 | 3 |
通过本公开的实施例,对待处理数据的多个对象依次遍历,再对每一个对象遍历完成后,都可以根据遍历结果的新增字段对表头数组和/或数据数组进行逐次更新,以避免表头数组中出现重复元素。对表头数组和数据数组逐次更新也可以保证表头数组与数据数组之间清晰的对应的关系。
图6示意性示出了根据本公开实施例的展示数据数组的流程图。
如图6所示,数据处理方法在操作S310~操作S330的基础上还包括操作S610~操作S630。
在操作S610,获取新增对象;
在操作S620,将新增对象的多个字段拼接为json格式的数据;以及
在操作S630,通过列式数据库的接口,在表格中增加json格式的数据。
在本公开实施例中,新增对象可以是通过导入excel的批量新增数据。新增对象的多个字段可以通过fastjson工具拼接为json格式的数据。拼接后地json格式的数据可使新增对象的多个字段的数据形式与表格展示的数据形式相同。
通过数据库的应用程序接口(Application Program Interface,API)将拼接后的json数据输入到js插件中,使新增对象的信息也可以以统一的形式在表格中呈现,便于用户查看。
基于上述数据处理方法,本公开还提供了一种数据处理装置。以下将结合图7对该装置进行详细描述。
图7示意性示出了根据本公开实施例的数据处理装置的结构框图。
如图7所示,该实施例的数据处理装置700包括获取模块710、统计模块720、生成模块730和展示模块740。
获取模块710用于获取列式数据库的待处理数据,待处理数据包括多个对象,每个对象包括至少一个字段。在一实施例中,获取模块710可以用于执行前文描述的操作S310,在此不再赘述。
统计模块720用于统计至少一个字段,得到表头数组和数据数组。在一实施例中,统计模块720可以用于执行前文描述的操作S320,在此不再赘述。
生成模块730用于基于表头数组,生成至少一个列头数据。在一实施例中,生成模块730可以用于执行前文描述的操作S330,在此不再赘述。
展示模块740用于基于至少一个列头数据,以表格的形式展示数据数组。在一实施例中,展示模块740可以用于执行前文描述的操作S340,在此不再赘述。
根据本公开的实施例,待处理数据包括M个对象,至少一个字段包括多个字段。统计模块720包括第一遍历单元、生成单元、第二遍历单元和更新单元。第一遍历单元用于遍历多个对象的第1个对象,得到第1个对象的多个字段。生成单元用于基于多个字段的第一字段生成表头数组,基于多个字段的第二字段生成数据数组。第二遍历单元,用于遍历多个对象的第m个对象,得到第m个对象的多个字段,m=2,3,…,M-1,M,M为正整数。更新单元用于基于多个字段中第一字段更新表头数组,基于多个字段中的第二字段更新数据数组。
生成单元还用于获取多个字段中的多个第一字段,多个第一字段具有相同类型;以及对多个第一字段进行合并,得到表头数组。
更新单元还用于将第m个对象的多个字段分别与表头数组的字段和数据数组的字段进行对比,得到新增第一字段和新增第二字段;以及基于新增第一字段更新表头数组,基于新增第二字段更新数据数组。
根据本公开的实施例,展示模块740包括:第一获取单元、第二获取单元和展示单元。第一获取单元用于获取至少一个列头数据中的行键。第二获取单元用于从数据数组中获取与行键对应的至少一个元素。展示单元用于以至少一个元素为行头,以至少一个列头数据为列头,展示数据数组中与至少一个列头对应的数据。
根据本公开的实施例,数据处理装置还包括增加模块。增加模板包括第三获取单元、拼接单元和增加单元。第三获取单元用于获取新增对象。拼接单元用于将新增对象的多个字段拼接为json格式的数据。增加单元用于通过列式数据库的接口,在表格中增加json格式的数据。
根据本公开的实施例,获取模块710、统计模块720、生成模块730和展示模块740中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块710、统计模块720、生成模块730和展示模块740中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者获取模块710、统计模块720、生成模块730和展示模块740中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现数据处理方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的数据处理方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种数据处理方法,包括:
获取列式数据库的待处理数据,所述待处理数据包括多个对象,每个所述对象包括多个字段;
统计所述多个对象中每个对象的多个字段,得到表头数组和数据数组;
基于所述表头数组,生成至少一个列头数据;以及
基于所述至少一个列头数据,以表格的形式展示所述数据数组。
2.根据权利要求1所述的数据处理方法,其中,所述待处理数据包括M个对象,所述每个对象的多个字段包括至少一个第一字段和至少一个第二字段;所述统计所述多个对象中每个对象的多个字段,得到表头数组和数据数组,包括:
遍历所述多个对象的第1个对象,得到所述第1个对象的至少一个第一字段和至少一个第二字段;
基于所述至少一个第一字段生成表头数组,基于所述至少一个第二字段生成数据数组;
遍历所述多个对象的第m个对象,得到所述第m个对象的至少一个第一字段和至少一个第二字段,m=2,3,…,M-1,M,M为正整数;以及
基于所述第m个对象的至少一个第一字段更新所述表头数组,基于所述第m个对象的至少一个第二字段更新所述数据数组。
3.根据权利要求2所述的数据处理方法,其中,所述至少一个第一字段包括多个第一字段;所述基于所述至少一个第一字段生成表头数组,包括:
基于所述多个字段的类型,获取所述多个字段中每个字段的至少一个第一字段,得到多个第一字段,所述多个第一字段具有相同类型;以及
对所述多个第一字段进行合并,得到所述表头数组。
4.根据权利要求2所述的数据处理方法,其中,所述基于所述第m个对象的至少一个第一字段更新所述表头数组,基于所述第m个对象的至少一个第二字段更新所述数据数组,包括:
将所述第m个对象的至少一个第一字段与所述表头数组的元素进行对比,得到新增第一字段,将所述第m个对象的至少一个第二字段与所述数据数组的元素进行对比,得到新增第二字段;以及
基于所述新增第一字段更新所述表头数组,基于所述新增第二字段更新所述数据数组。
5.根据权利要求1所述的数据处理方法,其中,所述基于所述至少一个列头数据,以表格的形式展示所述数据数组,包括:
获取所述至少一个列头数据中的行键;
从所述数据数组中获取与所述行键对应的至少一个元素;以及
以所述至少一个元素为行头,以所述至少一个列头数据为列头,展示所述数据数组中与所述至少一个列头对应的元素。
6.根据权利要求1所述的数据处理方法,还包括:
获取新增对象;
将所述新增对象的多个字段拼接为json格式的数据;以及
通过所述列式数据库的接口,在所述表格中增加所述json格式的数据。
7.根据权利要求1所述的数据处理方法,所述基于所述至少一个列头数据,以表格的形式展示所述数据数组,包括:
通过js插件将所述列头数据和所述数据数组转换成json数据;以及
通过表格转换函数将所述json数据以表格的形式展示;
其中,所述表格转换函数包括修改数据函数、复制数据函数、删除数据函数、数据定位函数和命名函数。
8.一种数据处理装置,包括:
获取模块,用于获取列式数据库的待处理数据,所述待处理数据包括多个对象,每个所述对象包括多个字段;
统计模块,用于统计所述多个对象中每个对象的多个字段,得到表头数组和数据数组;
生成模块,用于基于所述表头数组,生成至少一个列头数据;以及
展示模块,用于基于所述至少一个列头数据,以表格的形式展示所述数据数组。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210844787.4A CN115098568A (zh) | 2022-07-18 | 2022-07-18 | 数据处理方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210844787.4A CN115098568A (zh) | 2022-07-18 | 2022-07-18 | 数据处理方法、装置、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115098568A true CN115098568A (zh) | 2022-09-23 |
Family
ID=83299412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210844787.4A Pending CN115098568A (zh) | 2022-07-18 | 2022-07-18 | 数据处理方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098568A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167365A (zh) * | 2023-04-18 | 2023-05-26 | 安徽思高智能科技有限公司 | 一种基于表格模板的流程图生成方法 |
-
2022
- 2022-07-18 CN CN202210844787.4A patent/CN115098568A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167365A (zh) * | 2023-04-18 | 2023-05-26 | 安徽思高智能科技有限公司 | 一种基于表格模板的流程图生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10338977B2 (en) | Cluster-based processing of unstructured log messages | |
US8601438B2 (en) | Data transformation based on a technical design document | |
US20180165347A1 (en) | Multi-dimensional analysis using named filters | |
US20090119581A1 (en) | Method and apparatus for providing auto-completion of information using strings | |
US20170351989A1 (en) | Providing supply chain information extracted from an order management system | |
CN109241403B (zh) | 项目推荐方法、装置、机器设备和计算机可读存储介质 | |
US10255363B2 (en) | Refining search query results | |
WO2014179819A2 (en) | Software design pattern for adapting a graph database visualization software | |
US11734324B2 (en) | Systems and methods for high efficiency data querying | |
JP6862531B2 (ja) | ガイド付きデータ探索 | |
CN111125266A (zh) | 数据处理方法、装置、设备及存储介质 | |
US10397306B2 (en) | System and method for translating versioned data service requests and responses | |
US20220035807A1 (en) | Systems and methods for data type identification and adjustment | |
US10394637B2 (en) | Systems and methods for data validation and processing using metadata | |
CN113076729B (zh) | 用于报表导入的方法及系统、可读存储介质及电子设备 | |
CN113760839A (zh) | 日志数据压缩处理方法、装置、电子设备和存储介质 | |
CN115098568A (zh) | 数据处理方法、装置、设备、介质和程序产品 | |
CN112507017A (zh) | 一种数据表转换的方法和装置 | |
US20230153357A1 (en) | Method of processing an observation information, electronic device and storage medium | |
US20150254366A1 (en) | Application software, electronic forms, and associated methods | |
CN113395292B (zh) | 报文处理方法、装置、电子设备及存储介质 | |
JP2024518051A (ja) | スキーマレスデータの効率的なストレージおよびクエリ | |
CN115292313A (zh) | 一种伪列实现方法、装置、电子设备及存储介质 | |
US20180189499A1 (en) | Dynamic security report generator | |
US20230153301A1 (en) | Evaluating stored query results |
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 |