CN111797279B - 一种存储数据的方法及装置 - Google Patents

一种存储数据的方法及装置 Download PDF

Info

Publication number
CN111797279B
CN111797279B CN202010693076.2A CN202010693076A CN111797279B CN 111797279 B CN111797279 B CN 111797279B CN 202010693076 A CN202010693076 A CN 202010693076A CN 111797279 B CN111797279 B CN 111797279B
Authority
CN
China
Prior art keywords
content
semi
field
structured data
row
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
Application number
CN202010693076.2A
Other languages
English (en)
Other versions
CN111797279A (zh
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.)
Xi'an Data Rujin Information Technology Co ltd
Original Assignee
Xi'an Data Rujin Information Technology 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 Xi'an Data Rujin Information Technology Co ltd filed Critical Xi'an Data Rujin Information Technology Co ltd
Priority to CN202010693076.2A priority Critical patent/CN111797279B/zh
Publication of CN111797279A publication Critical patent/CN111797279A/zh
Application granted granted Critical
Publication of CN111797279B publication Critical patent/CN111797279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/86Mapping to a database

Landscapes

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

Abstract

本发明提供了一种存储数据的方法及装置,其中,该存储数据的方法包括:针对待存储半结构化数据集中的每条半结构化数据,依据该半结构化数据包含的字段,对该字段包含的内容进行编码,得到编码字段内容;分别以各字段为列构建数据库表,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,每条半结构化数据对应数据库表中的一行;将构建的数据库表存储至关系型数据库。可以提高数据的挖掘价值。

Description

一种存储数据的方法及装置
技术领域
本发明涉及数据存储技术领域,具体而言,涉及一种存储数据的方法及装置。
背景技术
随着通信技术以及互联网络的迅猛发展,各行业的数据量均呈现出几何级数的增长。数据已经成为企业或公司重要的资产,由于关系型数据库具有可用二维表结构来实现数据的逻辑表达,并能够利用结构化查询语言(SQL,Structured Query Language)语法进行数据,非常高效和方便。因而,通过大数据技术采集原始数据,从中提取出结构化数据,将提取出的结构化数据存储在关系型的分析数据库中,基于该分析数据库进行数据挖掘,从而引导企业或公司的发展、布局,或为企业或公司的发展提供参考。但是,由于结构化数据在海量数据(采集的原始数据)中占比较小,使得可用于分析和挖掘的分析数据库中存储的数据量较少,降低了数据挖掘价值。
发明内容
有鉴于此,本发明的目的在于提供存储数据的方法及装置,以提高数据的挖掘价值。
第一方面,本发明实施例提供了存储数据的方法,包括:
针对待存储半结构化数据集中的每条半结构化数据,依据该半结构化数据包含的字段,对该字段包含的内容进行编码,得到编码字段内容;
分别以各字段为列构建数据库表,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,每条半结构化数据对应数据库表中的一行;
将构建的数据库表存储至关系型数据库。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,包括:
在所述数据库表中新增半结构化数据对应的行;
在新增行中,定位所述半结构化数据的编码字段内容对应的字段所在的列,将该编码字段内容填充至所述新增行中定位的列中。
结合第一方面或第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述方法还包括:
接收统计分析请求,依据所述统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为clickhouse数据库;
调用数组连接指令,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;
调用应用程序接口统计指令,对展开的列中的内容进行统计。
结合第一方面或第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述方法还包括:
设置一递增表,将结构化查询语句统计分析请求与所述递增表进行左关联,依据所述结构化查询语句统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为AnalyticDB数据库;
调用API split_part函数,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;
基于关联的递增表,对展开的列中的内容进行统计。
第二方面,本发明实施例还提供了一种存储数据的装置,包括:
编码模块,用于针对待存储半结构化数据集中的每条半结构化数据,依据该半结构化数据包含的字段,对该字段包含的内容进行编码,得到编码字段内容;
写入模块,用于分别以各字段为列构建数据库表,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,每条半结构化数据对应数据库表中的一行;
存储模块,用于将构建的数据库表存储至关系型数据库。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述写入模块包括:
行处理单元,用于分别以各字段为列构建数据库表,在所述数据库表中新增半结构化数据对应的行;
定位写入单元,用于在新增行中,定位所述半结构化数据的编码字段内容对应的字段所在的列,将该编码字段内容填充至所述新增行中定位的列中。
结合第二方面或第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第二种可能的实施方式,其中,还包括:
第一统计分析模块,用于接收统计分析请求,依据所述统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为clickhouse数据库;调用数组连接指令,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;调用应用程序接口统计指令,对展开的列中的内容进行统计。
结合第二方面或第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,还包括:
第二统计分析模块,用于设置一递增表,将结构化查询语句统计分析请求与所述递增表进行左关联,依据所述结构化查询语句统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为AnalyticDB数据库;调用API split_part函数,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;基于关联的递增表,对展开的列中的内容进行统计。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
本发明实施例提供的存储数据的方法及装置,针对待存储半结构化数据集中的每条半结构化数据,依据该半结构化数据包含的字段,对该字段包含的内容进行编码,得到编码字段内容;分别以各字段为列构建数据库表,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,每条半结构化数据对应数据库表中的一行;将构建的数据库表存储至关系型数据库。这样,通过提取半结构化数据包含的字段,对字段包含的多个内容进行编码,并填充至该字段对应的行列中,实现以数据库二维逻辑表来表现该半结构化数据,能够存储在关系型数据库中,有效扩充了分析数据库存储的数据量,使得分析数据库中可用于分析和挖掘的数据量增大,数据的挖掘价值得到有效提升。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的存储数据的方法流程示意图;
图2示出了本发明实施例所提供的存储数据的装置结构示意图;
图3为本申请实施例提供的一种计算机设备300的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种存储数据的方法及装置,下面通过实施例进行描述。
相对于存储在关系型数据库等分析数据库中的结构化数据,非结构化数据不能实现以数据库二维逻辑表来表现,例如,办公文档、文本、图片、报表、图像和音视频等。其中,办公文档、文本、报表等为具有可识别模式(例如,标记)的文本数据,称之为半结构化数据,因而,本发明实施例中,通过对该具有可识别模式的半结构化数据进行编码,使之形成数据库二维逻辑表,能够存储至分析数据库,从而有效扩充分析数据库存储的数据量,在进行数据挖掘时能够提供更多的半结构化数据挖掘样本,使更多的半结构化数据参与到数据挖掘中,从而提高数据的挖掘价值。
图1示出了本发明实施例所提供的存储数据的方法流程示意图。如图1所示,该方法包括:
步骤101,针对待存储半结构化数据集中的每条半结构化数据,依据该半结构化数据包含的字段,对该字段包含的内容进行编码,得到编码字段内容;
本发明实施例中,半结构化数据包括但不限于:办公文档、文本、报表。作为一可选实施例,以半结构化数据为一条项目年度收益信息数据为例,假设该项目年度收益信息数据包括数组字段和基本哈希(Hash)字段,数组字段包含的内容为参与项目的员工姓名列表,基本哈希字段包含的内容为不同城市的营业额,单位为万。其中,员工姓名列表示例如下:
[‘小马’,‘小美’,‘小天’]
不同城市的营业额示例如下:
{‘北京’:14,‘上海’:24,‘西安’:33}
本发明实施例中,对员工姓名列表进行编码得到的编码字段内容为:
“小马;小美;小天”
对不同城市的营业额进行编码得到的编码字段内容为:
“北京:14,上海:24,西安:33’
步骤102,分别以各字段为列构建数据库表,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,每条半结构化数据对应数据库表中的一行;
本发明实施例中,再以项目年度收益信息数据为例,该数据包括数组字段和基本哈希字段,构建的数据库表包括2列,列名以字段进行标识。本发明实施例中,以field_1表示数组字段,以field_2表示基本哈希字段。
本发明实施例中,作为一可选实施例,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,包括:
A11,在所述数据库表中新增半结构化数据对应的行;
A12,在新增行中,定位所述半结构化数据的编码字段内容对应的字段所在的列,将该编码字段内容填充至所述新增行中定位的列中。
本发明实施例中,对于每一半结构化数据,将数组字段对应的编码字段内容填充至数据库表中该半结构化数据对应的行中的数组字段列,将基本哈希字段对应的编码字段内容填充至数据库表中该半结构化数据对应的行中的基本哈希字段列。这样,通过对字段对应的多个内容进行编码,使之成为一个整体的编码字段内容,整体的编码字段内容具有结构化数据的特点,从而实现在关系型数据库中存储的目的。
本发明实施例中,在将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列后,得到的数据库表如表1所示。
表1
field_1 field_2
“小马;小美;小天” “北京:14,上海:24,西安:33’
本发明实施例中,假设待存储半结构化数据集包含两条半结构化数据,另一条项目年度收益信息数据也包括数组字段和基本哈希字段,数组字段包含的内容为员工姓名列表,示例如下:
[‘小马’,‘小天’,‘小李’]
对员工姓名列表进行编码得到的编码字段内容为:
“小马;小天;小李”
基本哈希字段包含的内容为不同城市的营业额,单位为万,示例如下:
{‘北京’:14,‘深圳’:21,‘西安’:13}
对不同城市的营业额进行编码得到的编码字段内容为:
“北京:14,深圳:21,西安:13’
则得到的数据库表如表2所示。
表2
field_1 field_2
“小马;小美;小天” “北京:14,上海:24,西安:33’
“小马;小天;小李” “北京:14,深圳:21,西安:13’
本发明实施例中,作为一可选实施例,待存储半结构化数据集包含的各半结构化数据可以包含不同的字段。若半结构化数据包含数据库表中的一字段,将该字段对应的编码字段内容填充至该半结构化数据所在行的该字段对应的列中。
步骤103,将构建的数据库表存储至关系型数据库。
本发明实施例的存储数据的方法,针对待存储半结构化数据集中的每条半结构化数据,依据该半结构化数据包含的字段,对该字段包含的内容进行编码,得到编码字段内容;分别以各字段为列构建数据库表,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,每条半结构化数据对应数据库表中的一行;将构建的数据库表存储至关系型数据库。这样,通过提取半结构化数据包含的字段,对字段包含的多个内容进行编码,并填充至该字段对应的行列中,实现以数据库二维逻辑表来表现该半结构化数据,使之转化为结构化数据,能够存储在性能非常高的关系型数据库中,有效扩充了分析数据库存储的数据量,使得分析数据库中可用于分析和挖掘的数据量增大,数据的挖掘价值得到有效提升,提升实时在线分析方面的性能;同时,由于半结构化数据存储在性能非常高的关系型数据库中,也能实现半结构化数据查询性能的提升。
本发明实施例中,作为一可选实施例,该方法还包括:
A21,接收统计分析请求,依据所述统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为clickhouse数据库;
A22,调用数组连接指令,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;
A23,调用应用程序接口统计指令,对展开的列中的内容进行统计。
本发明实施例中,对半结构化数据进行编码存储至关系型数据库后,利用SQL语法和关系型数据库提供的API完成对数据的分析。
本发明实施例中,以统计个人参与的项目个数为例,统计分析请求中的统计关键词可以是数组字段名,通过查询匹配,可以得到表2中的field_1列为与统计关键词相匹配的目标列。以目标列中的行“小马;小美;小天”为例,将编码字段内容“小马;小美;小天”展开为3列。
本发明实施例中,实现上述统计分析的程序代码段如下:
select choice as name,count(*)from entries ARRAY JOIN splitByChar(';',field_1)as choice
本发明实施例中,对于按照城市统计营业额进行统计分析的情形,对应的程序代码段如下:
select city,sum(num)as turnover form(select substring(choice,1,position(choice,':'))as city,toUInt32(substring(choice,position(choice,':')))as num from entries ARRAY JOIN splitByChar(',',field_1)as choice)group bycity
本发明实施例中,作为另一可选实施例,该方法还包括:
A31,设置一递增表,将结构化查询语句统计分析请求与所述递增表进行左关联,依据所述结构化查询语句统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为AnalyticDB数据库;
本发明实施例中,设置的递增表(incre_table)如表3所示。
表3
A32,调用API split_part函数,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;
A33,基于关联的递增表,对展开的列中的内容进行统计。
本发明实施例中,使用递增表进行关联,完成一列数据(编码字段内容)到多列数据(内容)的扩展,再使用API split_part函数进行数据分解,再使用sum函数完成统计。
本发明实施例中,实现上述统计分析的程序代码段如下:
with T2 as(select split_part(a.field_1,';',b.subindex)as choice,1ascount from entries as a join incre_table as b on b.subindex<(length(a.field_1)-length(replace(a.field_1,';',”))+1))select choice,COUNT(*)FROM T2 GROUP BYchoice;
本发明实施例中,对于按照城市统计营业额进行统计分析的情形,对应的程序代码段如下:
with T2 as(select split_part(a.field_1,',',b.subindex)as choice,1ascount from entries as a join incre_table as b on b.subindex<(length(a.field_1)-length(replace(a.field_1,',',”))+1))select split_part(a.field_1,':',1)ascity,sum(split_part(a.field_1,':',2))as turnover FROM T2 GROUP BY split_part(a.field_1,',',1)as name
本发明实施例中,对于统计个人参与的项目个数,统计分析结果如表4所示。
表4
name count(*)
小马 2
小美 1
小天 2
小李 1
本发明实施例中,对于按照城市统计营业额进行统计分析,统计分析结果如表5所示。
表5
city turnover(万)
北京 28
上海 24
深圳 21
西安 46
图2示出了本发明实施例所提供的存储数据的装置结构示意图。如图2所示,该装置包括:
编码模块201,用于针对待存储半结构化数据集中的每条半结构化数据,依据该半结构化数据包含的字段,对该字段包含的内容进行编码,得到编码字段内容;
本发明实施例中,半结构化数据包括但不限于:办公文档、文本、报表。
写入模块202,用于分别以各字段为列构建数据库表,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,每条半结构化数据对应数据库表中的一行;
本发明实施例中,作为一可选实施例,写入模块202包括:
行处理单元(图中未示出),用于分别以各字段为列构建数据库表,在所述数据库表中新增半结构化数据对应的行;
定位写入单元,用于在新增行中,定位所述半结构化数据的编码字段内容对应的字段所在的列,将该编码字段内容填充至所述新增行中定位的列中。
本发明实施例中,对于每一半结构化数据,将数组字段对应的编码字段内容填充至数据库表中该半结构化数据对应的行中的数组字段列,将基本哈希字段对应的编码字段内容填充至数据库表中该半结构化数据对应的行中的基本哈希字段列。
存储模块203,用于将构建的数据库表存储至关系型数据库。
本发明实施例中,作为一可选实施例,该装置还包括:
第一统计分析模块(图中未示出),用于接收统计分析请求,依据所述统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为clickhouse数据库;调用数组连接指令,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;调用应用程序接口统计指令,对展开的列中的内容进行统计。
本发明实施例中,作为另一可选实施例,该装置还包括:
第二统计分析模块(图中未示出),用于设置一递增表,将结构化查询语句统计分析请求与所述递增表进行左关联,依据所述结构化查询语句统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为AnalyticDB数据库;调用API split_part函数,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;基于关联的递增表,对展开的列中的内容进行统计。
如图3所示,本申请一实施例提供了一种计算机设备300,用于执行图1中的存储数据的方法,该设备包括存储器301、处理器302及存储在该存储器301上并可在该处理器302上运行的计算机程序,其中,上述处理器302执行上述计算机程序时实现上述存储数据的方法的步骤。
具体地,上述存储器301和处理器302能够为通用的存储器和处理器,这里不做具体限定,当处理器302运行存储器301存储的计算机程序时,能够执行上述存储数据的方法。
对应于图1中的存储数据的方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述存储数据的方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述存储数据的方法。
在本申请所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种存储数据的方法,其特征在于,包括:
针对待存储半结构化数据集中的每条半结构化数据,依据该半结构化数据包含的字段,对该字段包含的内容进行编码,得到编码字段内容;
分别以各字段为列构建数据库表,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,每条半结构化数据对应数据库表中的一行;
将构建的数据库表存储至关系型数据库;
所述方法还包括:接收统计分析请求,依据所述统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为clickhouse数据库;调用数组连接指令,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;调用应用程序接口统计指令,对展开的列中的内容进行统计。
2.根据权利要求1所述的方法,其特征在于,所述将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,包括:
在所述数据库表中新增半结构化数据对应的行;
在新增行中,定位所述半结构化数据的编码字段内容对应的字段所在的列,将该编码字段内容填充至所述新增行中定位的列中。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
设置一递增表,将结构化查询语句统计分析请求与所述递增表进行左关联,依据所述结构化查询语句统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为AnalyticDB数据库;
调用API split_part函数,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;
基于关联的递增表,对展开的列中的内容进行统计。
4.一种存储数据的装置,其特征在于,包括:
编码模块,用于针对待存储半结构化数据集中的每条半结构化数据,依据该半结构化数据包含的字段,对该字段包含的内容进行编码,得到编码字段内容;
写入模块,用于分别以各字段为列构建数据库表,将半结构化数据对应的各编码字段内容存储至数据库表中该半结构化数据对应的行列,每条半结构化数据对应数据库表中的一行;
存储模块,用于将构建的数据库表存储至关系型数据库;
第一统计分析模块,用于接收统计分析请求,依据所述统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为clickhouse数据库;调用数组连接指令,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;调用应用程序接口统计指令,对展开的列中的内容进行统计。
5.根据权利要求4所述的装置,其特征在于,所述写入模块包括:
行处理单元,用于分别以各字段为列构建数据库表,在所述数据库表中新增半结构化数据对应的行;
定位写入单元,用于在新增行中,定位所述半结构化数据的编码字段内容对应的字段所在的列,将该编码字段内容填充至所述新增行中定位的列中。
6.根据权利要求4或5所述的装置,其特征在于,还包括:
第二统计分析模块,用于设置一递增表,将结构化查询语句统计分析请求与所述递增表进行左关联,依据所述结构化查询语句统计分析请求中包含的统计关键词,从关系型数据库中,获取与所述统计关键词相匹配的目标列,所述关系型数据库为AnalyticDB数据库;调用API split_part函数,针对所述目标列中的每一行,依据该行中的编码字段内容中包含的分隔符,将该编码字段内容展开为多个列,其中,每一分隔符对应的内容为一列;基于关联的递增表,对展开的列中的内容进行统计。
7.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至3任一所述的存储数据的方法的步骤。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至3任一所述的存储数据的方法的步骤。
CN202010693076.2A 2020-07-17 2020-07-17 一种存储数据的方法及装置 Active CN111797279B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010693076.2A CN111797279B (zh) 2020-07-17 2020-07-17 一种存储数据的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010693076.2A CN111797279B (zh) 2020-07-17 2020-07-17 一种存储数据的方法及装置

Publications (2)

Publication Number Publication Date
CN111797279A CN111797279A (zh) 2020-10-20
CN111797279B true CN111797279B (zh) 2024-01-19

Family

ID=72807691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010693076.2A Active CN111797279B (zh) 2020-07-17 2020-07-17 一种存储数据的方法及装置

Country Status (1)

Country Link
CN (1) CN111797279B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395294B (zh) * 2020-11-27 2023-07-18 浪潮云信息技术股份公司 一种数据库数据管理方法及系统、数据库
CN113220943B (zh) * 2021-06-04 2022-09-30 上海天旦网络科技发展有限公司 一种半结构化流量数据中的目标信息定位方法及系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197876A (zh) * 2006-12-06 2008-06-11 中兴通讯股份有限公司 一种对消息类业务数据进行多维分析的方法和系统
CN102929930A (zh) * 2012-09-24 2013-02-13 南京大学 小样本自动化Web文本数据抽取模板生成与抽取方法
CN103678339A (zh) * 2012-09-06 2014-03-26 阿里巴巴集团控股有限公司 数据回流、关系型数据库中的数据访问方法及系统
CN103810197A (zh) * 2012-11-09 2014-05-21 北京亿赞普网络技术有限公司 一种基于Hadoop的数据处理方法及其系统
CN104933044A (zh) * 2014-03-17 2015-09-23 北京奇虎科技有限公司 应用卸载原因的分类方法及分类装置
CN105447099A (zh) * 2015-11-11 2016-03-30 中国建设银行股份有限公司 日志结构化信息提取方法及装置
CN108446391A (zh) * 2018-03-23 2018-08-24 万帮充电设备有限公司 数据的处理方法、装置、电子设备和计算机可读介质
CN109271411A (zh) * 2018-09-28 2019-01-25 中国平安财产保险股份有限公司 报表生成方法、装置、计算机设备及存储介质
CN109597845A (zh) * 2018-10-23 2019-04-09 中国平安财产保险股份有限公司 报表配置方法、装置、计算机设备及存储介质
CN109684374A (zh) * 2018-11-28 2019-04-26 海南电网有限责任公司信息通信分公司 一种时间序列数据的键值对的提取方法及装置
CN110019969A (zh) * 2017-12-05 2019-07-16 北京京东尚科信息技术有限公司 处理半结构化数据的方法和系统
CN111274484A (zh) * 2020-01-20 2020-06-12 上海风秩科技有限公司 一种管理交互数据的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539378B2 (en) * 1997-11-21 2003-03-25 Amazon.Com, Inc. Method for creating an information closure model
US20050091231A1 (en) * 2003-10-24 2005-04-28 Shankar Pal System and method for storing and retrieving XML data encapsulated as an object in a database store
US20120016901A1 (en) * 2010-05-18 2012-01-19 Google Inc. Data Storage and Processing Service

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197876A (zh) * 2006-12-06 2008-06-11 中兴通讯股份有限公司 一种对消息类业务数据进行多维分析的方法和系统
CN103678339A (zh) * 2012-09-06 2014-03-26 阿里巴巴集团控股有限公司 数据回流、关系型数据库中的数据访问方法及系统
CN102929930A (zh) * 2012-09-24 2013-02-13 南京大学 小样本自动化Web文本数据抽取模板生成与抽取方法
CN103810197A (zh) * 2012-11-09 2014-05-21 北京亿赞普网络技术有限公司 一种基于Hadoop的数据处理方法及其系统
CN104933044A (zh) * 2014-03-17 2015-09-23 北京奇虎科技有限公司 应用卸载原因的分类方法及分类装置
CN105447099A (zh) * 2015-11-11 2016-03-30 中国建设银行股份有限公司 日志结构化信息提取方法及装置
CN110019969A (zh) * 2017-12-05 2019-07-16 北京京东尚科信息技术有限公司 处理半结构化数据的方法和系统
CN108446391A (zh) * 2018-03-23 2018-08-24 万帮充电设备有限公司 数据的处理方法、装置、电子设备和计算机可读介质
CN109271411A (zh) * 2018-09-28 2019-01-25 中国平安财产保险股份有限公司 报表生成方法、装置、计算机设备及存储介质
CN109597845A (zh) * 2018-10-23 2019-04-09 中国平安财产保险股份有限公司 报表配置方法、装置、计算机设备及存储介质
CN109684374A (zh) * 2018-11-28 2019-04-26 海南电网有限责任公司信息通信分公司 一种时间序列数据的键值对的提取方法及装置
CN111274484A (zh) * 2020-01-20 2020-06-12 上海风秩科技有限公司 一种管理交互数据的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
中文图书机读目录部分字段著录细节的规范;戴建陆;;科技情报开发与经济(29);第54-55+63页 *
车辆管理系统的设计与实现;夏琮;;时代汽车(06);第20-23页 *

Also Published As

Publication number Publication date
CN111797279A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
CN109885773B (zh) 一种文章个性化推荐方法、系统、介质及设备
CN111339427B (zh) 一种图书信息推荐方法、装置、系统及存储介质
CN107943952B (zh) 一种基于Spark框架进行全文检索的实现方法
US20170235726A1 (en) Information identification and extraction
CN111506621B (zh) 一种数据统计方法及装置
CN102915365A (zh) 基于Hadoop的分布式搜索引擎构建方法
EP2973046B1 (en) System and method for compressing data in database
CN111797279B (zh) 一种存储数据的方法及装置
CN116910221A (zh) 一种基于相似度检索提升大规模语言模型响应速度的方法
Shakhovska et al. Big Data Model" Entity and Features"
CN114356968A (zh) 查询语句生成方法、装置、计算机设备及存储介质
Zheng et al. INSPIRE: A framework for incremental spatial prefix query relaxation
CN111950729A (zh) 一种知识库构建方法、装置、电子设备和可读存储装置
US10877998B2 (en) Highly atomized segmented and interrogatable data systems (HASIDS)
CN113407702B (zh) 员工合作关系强度量化方法、系统、计算机和存储介质
CN108399177B (zh) 一种基于数据库的数据处理方法及其系统
Anantha et al. Context Tuning for Retrieval Augmented Generation
Jian et al. Based on automatic correlation keyword grouping and combination based deep information search corresponding to specific language big data—Case of leisure recreation
Wangmo et al. Efficient Subgraph Indexing for Biochemical Graphs.
Arab et al. MDMP: a new algorithm to create inverted index files in BigData, using MapReduce
CN111079391B (zh) 一种报表的生成方法及装置
CN111221846B (zh) 一种sql语句的自动翻译方法及装置
CN111159218B (zh) 数据处理方法、装置及可读存储介质
Gong et al. Research on the performance of segmentation of text classification based on CNICC
Cary Scaling geospatial searches in large spatial databases

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
GR01 Patent grant
GR01 Patent grant