CN111506569A - 数据存储方法、装置、电子装置 - Google Patents
数据存储方法、装置、电子装置 Download PDFInfo
- Publication number
- CN111506569A CN111506569A CN202010136861.8A CN202010136861A CN111506569A CN 111506569 A CN111506569 A CN 111506569A CN 202010136861 A CN202010136861 A CN 202010136861A CN 111506569 A CN111506569 A CN 111506569A
- Authority
- CN
- China
- Prior art keywords
- field
- data file
- original data
- data table
- user
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000013500 data storage Methods 0.000 title claims abstract description 20
- 238000005192 partition Methods 0.000 claims abstract description 57
- 238000013507 mapping Methods 0.000 claims abstract description 11
- 230000014509 gene expression Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000013523 data management Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
-
- 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/23—Updating
-
- 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/2455—Query execution
- G06F16/24552—Database cache management
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据存储方法、装置、电子装置,其中,该方法包括:获取用户基于指定业务导出的原始数据文件;将原始数据文件上传至针对用户和指定业务的第一存储容器中;解析原始数据文件,确定原始数据文件的数据表;确定数据表的分区字段;根据数据表中每条记录的分区字段值,分别将每条记录以列式存储文件的格式存储至第二存储容器中对应的分区目录,并建立每条记录与原始数据文件的映射。通过本发明,对数据表按照一个或多个字段的维度进行分区,提高了查询效率。
Description
技术领域
本发明涉及数据库领域,具体而言,涉及一种数据存储方法、装置、电子装置。
背景技术
数据湖是一种在系统或存储库中以自然格式存储数据的方法,数据湖对数据没有数据仓库和数据库的限制,它可以保存结构化、半结构化和非结构化等各种类型的数据,采用“读时模式(schema on read)”存储数据,也即,在用户上传数据时,不对数据进行检查和限制,数据加载仅仅是文件的复制和移动,便于用户将原始数据方便快捷的进行存储,尤其适用于在加载时无法确定查询需求、不能决定采用何种索引的情况。
随着对大数据的需求日益增长,企业逐渐开始采用数据湖存储数据,以达到更快捷获取大数据的目的。然而,由于数据湖采用读时模式存储数据,会降低数据的检索效率。现有技术中,通常采用每个用户在加载数据之后自行建立表结构、建立索引的方式来满足用户的检索需求,用户在每次加载数据之后都需要重复的建立表,效率较低。
发明内容
本发明实施例提供了一种数据存储方法、装置、电子装置,对数据表按照一个或多个字段的维度进行分区,提高了查询效率。
根据本发明的一个实施例,提供了一种数据存储方法,包括:获取用户基于指定业务导出的原始数据文件;将原始数据文件上传至针对用户和指定业务的第一存储容器中;解析原始数据文件,确定原始数据文件的数据表;确定数据表的分区字段;根据数据表中每条记录的分区字段值,分别将每条记录以列式存储文件的格式存储至第二存储容器中对应的分区目录,并建立每条记录与原始数据文件的映射。
可选的,确定原始数据文件的数据表包括:解析原始数据文件,建立原始数据文件的初始数据表;显示初始数据表的字段名以及预设行数的记录;接收用户对初始数据表的字段名的编辑操作;根据编辑操作确定数据表的字段名。
可选的,解析原始数据文件,建立原始数据文件的初始数据表,包括:根据原始数据文件中的标头,以预设格式生成初始数据表中的字段名。
可选的,在接收用户对初始数据表的字段名的编辑操作之后,该方法还包括:记录用户针对初始数据表中的字段名的编辑操作,其中,预设格式包括基于用户的历史编辑操作生成初始数据表中的字段名。
可选的,在根据原始数据文件中的标头,以预设格式生成初始数据表中的字段名之后,该方法还包括:针对原始数据文件中不存在标头的第一字段,与多个正则表达式分别进行匹配,其中,每个正则表达式预先配置有对应的字段名;如果在多个正则表达式中匹配到对应的正则表达式,将匹配到的正则表达式对应的字段名赋给第一字段。
可选的,在根据原始数据文件中的标头,以预设格式生成初始数据表中的字段名之后,该方法还包括:针对原始数据文件中不存在标头的第二字段,在第一存储容器中搜索第二字段的内容;将搜索排名最高的字段所对应的字段名赋给第二字段。
可选的,针对第二存储容器,以预设间隔时间为周期,统计用户在预设间隔时间内查询字段名的频次,在用户查询频次超过预设阈值的字段名时更新对第二存储容器内的分区字段。
可选的,将用户针对第二存储容器中的指定字段名进行查询的查询结果缓存表存储第二存储容器中,其中,在用户再次查询指定字段名时,第二存储容器中上次查询之后的新增数据表中查询,并将查询结果与查询结果缓存表合并之后显示。
根据本发明的另一个实施例,提供了一种数据存储装置,该装置包括:获取模块,用于获取用户基于指定业务导出的原始数据文件;上传模块,用于将原始数据文件上传至针对用户和指定业务的第一存储容器中;解析模块,用于解析原始数据文件,确定原始数据文件的数据表;确定模块,用于确定数据表的分区字段;执行模块,用于根据数据表中每条记录的分区字段值,分别将每条记录以列式存储文件的格式存储至第二存储容器中对应的分区目录,并建立每条记录与原始数据文件的映射。
可选的,解析模块包括:解析单元,用于解析原始数据文件,建立原始数据文件的初始数据表;显示单元,用于显示初始数据表的字段名以及预设行数的记录;单元,用于单元,用于接收用户对初始数据表的字段名的编辑操作;确定单元,用于根据编辑操作确定数据表的字段名。
可选的,解析模块,包括:生成单元,用于根据原始数据文件中的标头,以预设格式生成初始数据表中的字段名。
可选的,该装置还包括:记录模块,用于在接收用户对初始数据表的字段名的编辑操作之后,记录用户针对初始数据表中的字段名的编辑操作,其中,预设格式包括基于用户的历史编辑操作生成初始数据表中的字段名。
可选的,该装置还包括:匹配模块,用于在根据原始数据文件中的标头,以预设格式生成初始数据表中的字段名之后,针对原始数据文件中不存在标头的第一字段,与多个正则表达式分别进行匹配,其中,每个正则表达式预先配置有对应的字段名;第一命名模块,用于如果在多个正则表达式中匹配到对应的正则表达式,将匹配到的正则表达式对应的字段名赋给第一字段。
可选的,该装置还包括:搜索模块,用于在根据原始数据文件中的标头,以预设格式生成初始数据表中的字段名之后,针对原始数据文件中不存在标头的第二字段,在第一存储容器中搜索第二字段的内容;第二命名模块,用于将搜索排名最高的字段所对应的字段名赋给第二字段。
可选的,该装置还包括:统计模块,用于针对第二存储容器,以预设间隔时间为周期,统计用户在预设间隔时间内查询字段名的频次,在用户查询频次超过预设阈值的字段名时更新对第二存储容器内的分区字段。
可选的,该装置还包括:存储模块,用于将用户针对第二存储容器中的指定字段名进行查询的查询结果缓存表存储第二存储容器中;合并模块,用于在用户再次查询指定字段名时,第二存储容器中上次查询之后的新增数据表中查询,并将查询结果与查询结果缓存表合并之后显示。
根据本发明的又一个实施例,还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过获取用户基于指定业务导出的原始数据文件;将原始数据文件上传至针对用户和指定业务的第一存储容器中;解析原始数据文件,确定原始数据文件的数据表;确定数据表的分区字段;根据数据表中每条记录的分区字段值,分别将每条记录以列式存储文件的格式存储至第二存储容器中对应的分区目录,并建立每条记录与原始数据文件的映射,通过对数据表按照一个或多个字段的维度进行分区,提高了查询效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据存储方法的流程图;
图2是根据本发明实施例的数据存储装置的示意图;
图3是本发明实施例的一种电子装置的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本实施例提供了一种数据存储方法,可以应用于客户端侧,其中,客户端可以运行中移动终端、手持终端或类似的运算设备之中。运行在不同的运算设备仅是方案在执行主体上的差异,本领域人员可预见在不同运算设备中运行能够产生相同的技术效果。
本实施例提供了一种数据存储方法,能够用于构建数据湖,在用户上传数据时,不对数据进行检查和限制,数据加载仅仅是文件的复制和移动,便于用户将原始数据方便快捷的进行存储。本申请实施例提供的数据存储方法构建数据湖可以应用于包括数据管理平台和对象存储服务的系统架构,数据管理平台用于接收用户上传的原始数据文件,确定原始数据文件中结构化数据的字段名,并确定分区字段,每条记录对应的分区目录,将原始数据文件转换为指定格式的数据,存储至对象存储服务中指定的目录文件中。
如图1所示,本实施例提供的数据存储方法包括如下步骤:
步骤101,获取用户基于指定业务导出的原始数据文件;
用户导出的原始数据文件携带结构化数据,通过分隔符来划分每个字段。举例而言,原始数据文件可以是csv(Comma-Separated Values,逗号分隔值,简称csv,有时也称为字符分隔值)文件,csv文件以纯文本形式存储表格数据,包括数字和文本。
步骤102,将原始数据文件上传至针对用户和指定业务的第一存储容器中;
本实施例的执行方能够接收用户上传的原始数据文件,并在处理后存储至对应的第一存储容器中,本实施例的执行方可以称为数据管理平台,搭载在服务器上,以用于接收数据、上传数据并对数据进行处理。
用户可以是自然人或企业等,本实施例的执行方可以基于用户的账号ID来区分不同的用户。不同用户的数据是互相隔离的,相互之间的数据是不互通的,具体可以采用硬件隔离或软件隔离的方式。例如,在本实施例中,云存储服务器中通过桶(一种软件存储容器)来存储一个用户针对一种业务所上传的原始数据文件,每个桶针对一个用户以及一种指定业务不同用户针对不同业务的原始数据文件被存储在不同的桶中,以实现数据隔离的效果。
步骤103,解析原始数据文件,确定原始数据文件的数据表;
由于本实施例中的原始数据文件是结构化数据,因此,可以基于文件格式预先协议的方式划分各个字段,建立数据表。
在建立数据表时,需要确定数据表中每个字段的字段名。
一种可选的确定字段名的实施方式如下所述:
在原始数据文件中存在标头(header)的情况下,字段名可以采用原始数据文件中的标头。字段名的字符允许是英文、数字或指定的几个特定字符。在标头不符合要求的情况下,查找对应的英文翻译、或采用中文拼音作为字段名。
可选的,在建立表之后,还可以将数据表展示给用户,并展示具体的表数据前n行(预设行数)以便于用户核对字段名的命名是否合适,其中,数据表中每一列的表头(每一列所对应的字段名)可以被编辑,用户可以对各个字段名进行编辑,(包括修改、添加、删除、移动字符等)。在本实施例中,不需要显示全部的记录,用户不需要对所有记录核对,显示的记录仅用于提供给用户预览,根据预览的几行记录,用户可以确定每个字段的内容,从而根据字段内容对自动提供的字段名进行编辑。
可选的,可以记录用户针对基于原始数据文件中header所赋予的字段名的编辑操作,并在后续基于原始数据文件中header赋予字段名时,基于用户的历史编辑操作赋予字段名。例如,如果经过统计,用户多次将字段名中的特殊字符(如字符“_”)修改为空格,则后续在遇到英文和数字、不同词汇之间的连接字符均默认配置为空格。或者,如果用户将某一中文header修改为指定的英文词汇,则后续出现该中文词汇时,默认赋予字段名为用户指定的英文词汇,等等。
此外,如果针对某一个字段在原始数据文件中不存在header,可以采用以下任一可选的实施方式为对应字段赋予字段名:
一种可选的实施方式为,解析字段的内容,根据字段内容的格式特征确定字段要表达的内容,进而配置对应的字段名。具体的,将字段内容与多个正则表达式进行匹配,每个正则表达式预先配置有对应的字段名,例如,如果匹配到用于表示日期特征的正则表达式xxxx-xx-xx(其中,x均为数字),则确定该字段的字段名是“data”,如果匹配到用于表示业务类型特征的正则表达式“……基金”,则确定该字段的字段名为“types of funds”。
另一种可选的实施方式为,根据用户输入的指定业务,在同一种类业务的第一存储容器中利用指定搜索引擎搜索待确定字段名的字段内容,确定搜索排名最高的字段所对应的字段名,将其赋予至待确定字段名的字段内容。其中,搜索引擎的排名方式是根据匹配程度的高低排序,匹配程度越高,排序越高,反之亦然。搜索引擎的匹配方式可以是关键字匹配的方式。
如果无法确定字段名(例如,未匹配到正则表达式或未搜索到匹配结果),则可以利用默认的命名方式生成字段名,例如,column_x,x为累计的当前序号数值。
步骤104,确定数据表的分区字段;
分区字段是作为分区依据的字段。分区字段可以是预先配置的,或者基于用户历史查询频次统计结果确定的。
数据表包括多行多列。每一行为一个记录,每一列为不同记录针对同一字段名的字段内容。为了便于后续查询,需要基于某一个字段或多个字段对数据表进行分区,基于数据表中每条记录的分区字段具体值的不同,将对应记录放入所属的分区中。进而,在查询时可以不必遍历所有数据表,在对应分区的中进行查询即可,提高查询效率。
为了确定分区的依据,首先要执行本步骤,也即,确定数据表的分区字段。分区字段的确定方法可以是用户指定的,在向用户展示数据表时,用户可以指定一个或多个分区字段。如果用户为指定,则默认选取一个字段作为分区字段,例如,选择日期作为分区字段,将不同月份的记录存储至不同的分区中。再如,选择日期和性别作为分区字段,将不同月份、不同性别的记录存储至不同的分区中,例如,将2019年7月份男性的记录存储至分区1中,将2019年7月份女性的记录存储至分区2中,等等。
或者,作为分区依据的分区字段还可以是根据历史查询情况自动指定的,将历史查询次数最多的n个字段指定为分区字段,每隔指定周期重新确定分区字段。例如,在针对历史查询次数最多的1个字段作为分区字段时,历史查询中针对“项目单号”的字段查询次数最多,则将“项目单号”作为分区字段,后续可以每隔一周重新确定查询次数最多的字段,进而将数据表重新分区,更符合查询需求。
步骤105,根据数据表中每条记录的分区字段值,分别将每条记录以列式存储文件的格式存储至第二存储容器中对应的分区目录,并建立每条记录与原始数据文件的映射。
在写入数据时,是逐条记录写入的,在逐条存储每条记录时,基于该记录的分区字段值,将该记录存储至对应的分区目录(在存储容器中,以分区目录作为不同数据表文件的索引)中。
需要说明的是,数据表是存储在与原始数据文件不同的存储容器中,在用户需要查询数据时,并非基于原始数据文件进行查找,而是基于数据表进行查找。如果用户需要查看查找到的数据的原始数据,可以基于映射查找到原始数据文件。
原始数据文件是结构化数据文件(如csv格式文件),查询方式是逐行查找,查找效率较低,为了便于查询检索,本实施例中采用列式存储文件的格式(如parquet或orc格式)存储数据表,与原始数据文件不同,列式存储文件是逐列进行查找,在用户输入某一字段的字段值符合指定条件为查询条件时,针对列式存储文件的查找方式比较原始数据文件是效率更高速度更快的。
可选的,针对第二存储容器,可以每间隔指定周期,对用户查询字段的频率进行统计,针对用户频繁查询的字段再次分区。
例如,如果原来仅针对字段1和字段2进行分区,如果用户频繁针对字段1和字段3进行查询,则将第二存储容器中的数据表进行合并,合并为仅针对字段1进行分区,然后再针对字段3进行分区。
再如,如果原来仅针对日期进行查询,如果用户频繁针对2018年“性别”字段值为“男”的数据进行查询,则将第二存储容器中2018年度的数据表再次针对“性别字段”进行分区。
可选的,在数据表至少针对日期进行分区的应用场景中,用户还可以自主选择是否针对常用的查询条件所得到的查询结果生成缓存表,生成的缓存表可以缓存至第二存储容器中,在每次采用相同的查询条件进行查询时,对缓存的查询结果进行预加载,只针对在上次查询之后存储的新数据表进行查询,将历史的缓存结果和新增数据表查询的结果进行合并,将合并查询结果呈现给用户。本可选的实施方式针对周期更新的海量数据的查询过程有极大的效率提升效果。
本申请实施例在将原始数据文件存储起来(建立数据湖)之后,对原始数据文件执行建表处理,并建立数据表中记录与原始数据文件的映射,提供了可以反向查找到原始数据文件的前提条件,此外,对数据表按照一个或多个字段的维度进行分区,提高了查询效率,可以实现在一些分区中查找而不是在全部数据中进行查找。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种数据存储装置,该装置用于实现上述实施例1及其优选实施方式,对于本实施例中未详述的术语或实现方式,可参见实施例1中的相关说明,已经进行过说明的不再赘述。
如以下所使用的术语“模块”,是可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可以被构想的。
图2是根据本发明实施例的数据存储装置的示意图,如图2所示,该装置包括:获取模块10,上传模块20,解析模块30,确定模块40和执行模块50。
其中,获取模块,用于获取用户基于指定业务导出的原始数据文件;上传模块,用于将原始数据文件上传至针对用户和指定业务的第一存储容器中;解析模块,用于解析原始数据文件,确定原始数据文件的数据表;确定模块,用于确定数据表的分区字段;执行模块,用于根据数据表中每条记录的分区字段值,分别将每条记录以列式存储文件的格式存储至第二存储容器中对应的分区目录,并建立每条记录与原始数据文件的映射。
可选的,解析模块包括:解析单元,用于解析原始数据文件,建立原始数据文件的初始数据表;显示单元,用于显示初始数据表的字段名以及预设行数的记录;单元,用于单元,用于接收用户对初始数据表的字段名的编辑操作;确定单元,用于根据编辑操作确定数据表的字段名。
可选的,解析模块,包括:生成单元,用于根据原始数据文件中的标头,以预设格式生成初始数据表中的字段名。
可选的,该装置还包括:记录模块,用于在接收用户对初始数据表的字段名的编辑操作之后,记录用户针对初始数据表中的字段名的编辑操作,其中,预设格式包括基于用户的历史编辑操作生成初始数据表中的字段名。
可选的,该装置还包括:匹配模块,用于在根据原始数据文件中的标头,以预设格式生成初始数据表中的字段名之后,针对原始数据文件中不存在标头的第一字段,与多个正则表达式分别进行匹配,其中,每个正则表达式预先配置有对应的字段名;第一命名模块,用于如果在多个正则表达式中匹配到对应的正则表达式,将匹配到的正则表达式对应的字段名赋给第一字段。
可选的,该装置还包括:搜索模块,用于在根据原始数据文件中的标头,以预设格式生成初始数据表中的字段名之后,针对原始数据文件中不存在标头的第二字段,在第一存储容器中搜索第二字段的内容;第二命名模块,用于将搜索排名最高的字段所对应的字段名赋给第二字段。
可选的,该装置还包括:统计模块,用于针对第二存储容器,以预设间隔时间为周期,统计用户在预设间隔时间内查询字段名的频次,在用户查询频次超过预设阈值的字段名时更新对第二存储容器内的分区字段。
可选的,该装置还包括:存储模块,用于将用户针对第二存储容器中的指定字段名进行查询的查询结果缓存表存储第二存储容器中;合并模块,用于在用户再次查询指定字段名时,第二存储容器中上次查询之后的新增数据表中查询,并将查询结果与查询结果缓存表合并之后显示。
本申请实施例在将原始数据文件存储起来(建立数据湖)之后,对原始数据文件执行建表处理,并建立数据表中记录与原始数据文件的映射,提供了可以反向查找到原始数据文件的前提条件,此外,对数据表按照一个或多个字段的维度进行分区,提高了查询效率,可以实现在一些分区中查找而不是在全部数据中进行查找。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
实施例3
本发明的实施例还提供了一种计算机存储介质,该计算机存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。以电子装置为电子装置为例,图3是本发明实施例的一种电子装置的硬件结构框图。如图3所示,电子装置可以包括一个或多个(图3中仅示出一个)处理器302(处理器302可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器304,可选地,上述电子装置还可以包括用于通信功能的传输设备306以及输入输出设备308。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
存储器304可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的图像的识别方法对应的计算机程序,处理器302通过运行存储在存储器304内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器304可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器304可进一步包括相对于处理器302远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的无线网络。在一个实例中,传输装置306包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置306可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
获取用户基于指定业务导出的原始数据文件;
将所述原始数据文件上传至针对所述用户和所述指定业务的第一存储容器中;
解析所述原始数据文件,确定所述原始数据文件的数据表;
确定所述数据表的分区字段;
根据所述数据表中每条记录的分区字段值,分别将每条记录以列式存储文件的格式存储至第二存储容器中对应的分区目录,并建立每条记录与所述原始数据文件的映射。
2.根据权利要求1所述的方法,其特征在于,所述确定所述原始数据文件的数据表包括:
解析所述原始数据文件,建立所述原始数据文件的初始数据表;
显示所述初始数据表的字段名以及预设行数的记录;
接收用户对所述初始数据表的字段名的编辑操作;
根据所述编辑操作确定所述数据表的字段名。
3.根据权利要求2所述的方法,其特征在于,所述解析所述原始数据文件,建立所述原始数据文件的初始数据表,包括:
根据所述原始数据文件中的标头,以所述预设格式生成所述初始数据表中的字段名。
4.根据权利要求3所述的方法,其特征在于,在接收用户对所述初始数据表的字段名的编辑操作之后,所述方法还包括:
记录所述用户针对所述初始数据表中的字段名的编辑操作,
其中,所述预设格式包括基于所述用户的历史编辑操作生成所述初始数据表中的字段名。
5.根据权利要求3所述的方法,其特征在于,在根据所述原始数据文件中的标头,以所述预设格式生成所述初始数据表中的字段名之后,所述方法还包括:
针对所述原始数据文件中不存在标头的第一字段,与多个正则表达式分别进行匹配,其中,每个所述正则表达式预先配置有对应的字段名;
如果在所述多个正则表达式中匹配到对应的正则表达式,将匹配到的正则表达式对应的字段名赋给所述第一字段。
6.根据权利要求3所述的方法,其特征在于,在根据所述原始数据文件中的标头,以所述预设格式生成所述初始数据表中的字段名之后,所述方法还包括:
针对所述原始数据文件中不存在标头的第二字段,在所述第一存储容器中搜索所述第二字段的内容;
将搜索排名最高的字段所对应的字段名赋给所述第二字段。
7.根据权利要求1所述的方法,其特征在于,针对所述第二存储容器,以预设间隔时间为周期,统计用户在所述预设间隔时间内查询字段名的频次,在用户查询频次超过预设阈值的字段名时更新对所述第二存储容器内的分区字段。
8.一种数据存储装置,其特征在于,包括:
获取模块,用于获取用户基于指定业务导出的原始数据文件;
上传模块,用于将所述原始数据文件上传至针对所述用户和所述指定业务的第一存储容器中;
解析模块,用于解析所述原始数据文件,确定所述原始数据文件的数据表;
确定模块,用于确定所述数据表的分区字段;
执行模块,用于根据所述数据表中每条记录的分区字段值,分别将每条记录以列式存储文件的格式存储至第二存储容器中对应的分区目录,并建立每条记录与所述原始数据文件的映射。
9.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010136861.8A CN111506569B (zh) | 2020-03-02 | 2020-03-02 | 数据存储方法、装置、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010136861.8A CN111506569B (zh) | 2020-03-02 | 2020-03-02 | 数据存储方法、装置、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506569A true CN111506569A (zh) | 2020-08-07 |
CN111506569B CN111506569B (zh) | 2024-03-01 |
Family
ID=71875769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010136861.8A Active CN111506569B (zh) | 2020-03-02 | 2020-03-02 | 数据存储方法、装置、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506569B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112468494A (zh) * | 2020-11-26 | 2021-03-09 | 湖北航天信息技术有限公司 | 一种内外网互联网数据传输方法及装置 |
CN112597248A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种大数据分区存储方法及装置 |
CN112597148A (zh) * | 2020-11-25 | 2021-04-02 | 联想(北京)有限公司 | 一种数据表的连接方法和装置 |
CN113868282A (zh) * | 2021-08-06 | 2021-12-31 | 安徽希施玛数据科技有限公司 | 数据处理方法及装置、终端及计算机可读存储介质 |
CN114443651A (zh) * | 2021-12-31 | 2022-05-06 | 北京发现角科技有限公司 | 一种埋点数据到ods层的处理方法及装置 |
CN114610959A (zh) * | 2022-05-12 | 2022-06-10 | 恒生电子股份有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154748A (en) * | 1998-04-07 | 2000-11-28 | International Business Machines Corporation | Method for visually mapping data between different record formats |
US20020194196A1 (en) * | 2000-12-12 | 2002-12-19 | Weinberg Paul N. | Method and apparatus for transforming data |
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | 中国移动通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与系统 |
CN108205576A (zh) * | 2016-12-20 | 2018-06-26 | 航天信息股份有限公司 | 一种基于数据仓库工具hive分区存储使用和分析数据的方法及系统 |
CN108984177A (zh) * | 2018-06-21 | 2018-12-11 | 中国铁塔股份有限公司 | 一种数据处理方法及系统 |
CN110222017A (zh) * | 2019-05-13 | 2019-09-10 | 北京百度网讯科技有限公司 | 实时数据的处理方法、装置、设备及计算机可读存储介质 |
CN110647512A (zh) * | 2019-09-29 | 2020-01-03 | 北京思维造物信息科技股份有限公司 | 一种数据存储和分析方法、装置、设备和可读介质 |
-
2020
- 2020-03-02 CN CN202010136861.8A patent/CN111506569B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154748A (en) * | 1998-04-07 | 2000-11-28 | International Business Machines Corporation | Method for visually mapping data between different record formats |
US20020194196A1 (en) * | 2000-12-12 | 2002-12-19 | Weinberg Paul N. | Method and apparatus for transforming data |
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | 中国移动通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与系统 |
CN108205576A (zh) * | 2016-12-20 | 2018-06-26 | 航天信息股份有限公司 | 一种基于数据仓库工具hive分区存储使用和分析数据的方法及系统 |
CN108984177A (zh) * | 2018-06-21 | 2018-12-11 | 中国铁塔股份有限公司 | 一种数据处理方法及系统 |
CN110222017A (zh) * | 2019-05-13 | 2019-09-10 | 北京百度网讯科技有限公司 | 实时数据的处理方法、装置、设备及计算机可读存储介质 |
CN110647512A (zh) * | 2019-09-29 | 2020-01-03 | 北京思维造物信息科技股份有限公司 | 一种数据存储和分析方法、装置、设备和可读介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597148A (zh) * | 2020-11-25 | 2021-04-02 | 联想(北京)有限公司 | 一种数据表的连接方法和装置 |
CN112468494A (zh) * | 2020-11-26 | 2021-03-09 | 湖北航天信息技术有限公司 | 一种内外网互联网数据传输方法及装置 |
CN112597248A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种大数据分区存储方法及装置 |
CN112597248B (zh) * | 2020-12-26 | 2024-04-12 | 中国农业银行股份有限公司 | 一种大数据分区存储方法及装置 |
CN113868282A (zh) * | 2021-08-06 | 2021-12-31 | 安徽希施玛数据科技有限公司 | 数据处理方法及装置、终端及计算机可读存储介质 |
CN114443651A (zh) * | 2021-12-31 | 2022-05-06 | 北京发现角科技有限公司 | 一种埋点数据到ods层的处理方法及装置 |
CN114443651B (zh) * | 2021-12-31 | 2023-05-05 | 北京发现角科技有限公司 | 一种埋点数据到ods层的处理方法及装置 |
CN114610959A (zh) * | 2022-05-12 | 2022-06-10 | 恒生电子股份有限公司 | 数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111506569B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506569B (zh) | 数据存储方法、装置、电子装置 | |
JP6144700B2 (ja) | 半構造データのためのスケーラブルな分析プラットフォーム | |
CN107103032B (zh) | 一种分布式环境下避免全局排序的海量数据分页查询方法 | |
EP2924594A1 (en) | Data encoding and corresponding data structure in a column-store database | |
US8880463B2 (en) | Standardized framework for reporting archived legacy system data | |
CN103620601A (zh) | 在映射缩减过程中汇合表 | |
US11775767B1 (en) | Systems and methods for automated iterative population of responses using artificial intelligence | |
CN103714096A (zh) | 基于Lucene的倒排索引系统构建、数据处理方法及装置 | |
US11514498B2 (en) | System and method for intelligent guided shopping | |
CN112269816B (zh) | 一种政务预约事项相关性检索方法 | |
CN112613271A (zh) | 数据分页方法、装置、计算机设备及存储介质 | |
CN106649800A (zh) | 一种基于Solr的中文检索方法 | |
CN113849499A (zh) | 数据的查询方法、装置、存储介质及电子装置 | |
US11599396B2 (en) | Resegmenting chunks of data based on source type to facilitate load balancing | |
CN112527824B (zh) | 分页查询方法、装置、电子设备和计算机可读存储介质 | |
CN110362540B (zh) | 一种数据存储、访客数获取方法及装置 | |
CN110188106B (zh) | 一种数据管理方法和装置 | |
CN117493333A (zh) | 数据归档方法、装置、电子设备及存储介质 | |
CN111666278A (zh) | 数据存储、检索方法、电子设备及存储介质 | |
CN116226082A (zh) | 数据库模型的生成方法、装置、存储介质及电子设备 | |
CN108170693B (zh) | 推送热词的方法及装置 | |
CN112464049B (zh) | 号码详单下载方法、装置和设备 | |
CN112199463A (zh) | 数据查询方法、装置及设备 | |
CN115809248B (zh) | 数据查询方法和装置以及存储介质 | |
CN112364007B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |