CN113297200A - 数据存储和获取方法、装置、电子设备及可读存储介质 - Google Patents
数据存储和获取方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113297200A CN113297200A CN202010591748.9A CN202010591748A CN113297200A CN 113297200 A CN113297200 A CN 113297200A CN 202010591748 A CN202010591748 A CN 202010591748A CN 113297200 A CN113297200 A CN 113297200A
- Authority
- CN
- China
- Prior art keywords
- data set
- level
- level data
- data
- index
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种数据存储和获取方法、装置、电子设备及可读存储介质,所述方法包括:存储多个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值;针对包含至少一个第一级数据集合的第二级数据集合,生成第二级索引,所述第一级数据集合包含至少一个所述数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。根据本公开实施例,能够有效降低索引的数据量,从而提高数据查询性能。
Description
技术领域
本公开涉及计算机应用技术领域,具体涉及一种数据存储和获取方法、装置、电子设备及可读存储介质。
背景技术
随着自动驾驶技术的兴起,需要用高精地图决定车辆的行驶路线,保证车辆和乘客的安全。高精地图的生成依赖于底层的点云数据。点云数据体量巨大,种类庞大,如何有效管理与高效查询,成为一个高精地图生产的难题。
现有技术中,由于点云数据的数据量巨大,索引数据量随之增加,导致数据查询速度和性能下降,对点云数据的高效利用形成阻碍。
发明内容
为了解决相关技术中的问题,本公开实施例提供一种数据存储和获取方法、装置、电子设备及可读存储介质。
第一方面,本公开实施例中提供了一种数据存储方法。
具体地,所述数据存储方法,包括:
存储多个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值;
针对包含至少一个第一级数据集合的第二级数据集合,生成第二级索引,所述第一级数据集合包含至少一个所述数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
结合第一方面,本公开在第一方面的第一种实现方式中,所述方法还包括:针对所述第一级数据集合,生成第一级索引,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
结合第一方面,本公开在第一方面的第二种实现方式中,所述方法还包括:存储所述第一级索引、第二级索引和第三级索引。
结合第一方面,本公开在第一方面的第三种实现方式中,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括交通工具或点云中的点。
结合第一方面,本公开在第一方面的第四种实现方式中,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
结合第一方面,本公开在第一方面的第五种实现方式中,所述方法还包括:基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录,以形成所述第一级数据集合;和/或基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合,以形成所述第二级数据集合,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
结合第一方面的第五种实现方式,本公开在第一方面的第六种实现方式中,所述指定属性值包括空间位置信息。
结合第一方面,本公开在第一方面的第七种实现方式中,所述针对第二级数据集合,生成第二级索引,包括:根据所述第一级数据集合中的对象的属性值,确定所述第一级数据集合的属性值统计信息;基于所述第一级数据集合的属性值统计信息,生成所述第二级索引。
结合第一方面的第七种实现方式,本公开在第一方面的第八种实现方式中,所述针对第三级数据集合,生成第三级索引,包括:根据所述第二级数据集合中的第一级数据集合的属性值统计信息,确定所述第二级数据集合的属性值统计信息;基于所述第二级数据集合的属性值统计信息,生成所述第三级索引。
结合第一方面,本公开在第一方面的第九种实现方式中,所述存储多个对象的数据记录,包括:根据所述第一级数据集合的以下至少一项特性将所述第一级数据集合存储在数据库中或数据文件中:数据新旧程度;实际被访问频率;预测被访问概率。
第二方面,本公开实施例中提供了一种数据获取方法。
具体地,所述数据获取方法,包括:
基于查询条件,根据第三级索引确定相应的第三级数据集合中的目标第二级数据集合;
基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合;
获取所述目标第一级数据集合中的数据,
其中:
所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
所述第一级数据集合包含至少一个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值。
结合第二方面,本公开在第二方面的第一种实现方式中,所述获取所述目标第一级数据集合中的数据,包括:基于所述查询条件,根据所述目标第一级数据集合的第一级索引,获取所述目标第一级数据集合中的目标数据记录,其中,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
结合第二方面,本公开在第二方面的第二种实现方式中,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括交通工具或点云中的点。
结合第二方面,本公开在第二方面的第三种实现方式中,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
结合第二方面,本公开在第二方面的第四种实现方式中,所述第一级数据集合是基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录形成的;和/或所述第二级数据集合是基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合形成的,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
结合第二方面的第四种实现方式,本公开在第二方面的第五种实现方式中,所述指定属性值包括空间位置信息。
结合第二方面,本公开在第二方面的第六种实现方式中,所述第二级索引是基于所述第一级数据集合的属性值统计信息生成的,所述第一级数据集合的属性值统计信息是根据所述第一级数据集合中的对象的属性值确定的。
结合第二方面的第六种实现方式,本公开在第二方面的第七种实现方式中,所述第三级索引是基于所述第二级数据集合的属性值统计信息生成的,所述第二级数据集合的属性值统计信息是根据所述第二级数据集合中的第一级数据集合的属性值统计信息确定的。
结合第二方面,本公开在第二方面的第八种实现方式中,所述获取所述目标第一级数据集合中的数据,包括:根据所述目标第一级数据集合的元数据,确定所述目标第一级数据集合中的数据的存储位置在数据库中或数据文件中;根据所述目标第一级数据集合中的数据的存储位置,获取所述目标第一级数据集合中的数据。
结合第二方面,本公开在第二方面的第九种实现方式中,所述方法还包括:根据所述第二级索引和/或所述第三级索引对初始查询请求进行改写,得到所述查询条件。
第三方面,本公开实施例中提供了一种点云数据存储方法。
具体地,所述点云数据存储方法,包括:
存储点云中的多个点的数据记录,每个点的所述数据记录包括所述点的一个或多个属性值;
针对包含至少一个第一级数据集合的第二级数据集合,生成第二级数据索引,所述第一级数据集合包含至少一个所述点的数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
第四方面,本公开实施例中提供了一种点云数据获取方法。
具体地,所述点云数据获取方法,包括:
基于查询条件,根据第三级索引确定点云数据中相应的第三级数据集合中的目标第二级数据集合,其中,所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合,其中,所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
获取所述目标第一级数据集合中的点的数据记录,所述第一级数据集合包括点云中的至少一个点的数据记录,所述数据记录包括相应点的一个或多个属性值。
第五方面,本公开实施例中提供了一种数据存储装置。
具体地,所述数据存储装置,包括:
第一存储模块,被配置为存储多个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值;
第一生成模块,被配置为针对包含至少一个第一级数据集合的第二级数据集合,生成第二级索引,所述第一级数据集合包含至少一个所述数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
第二生成模块,被配置为针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
结合第五方面,本公开在第五方面的第一种实现方式中,所述装置还包括:第三生成模块,被配置为针对所述第一级数据集合,生成第一级索引,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
结合第五方面,本公开在第五方面的第二种实现方式中,所述装置还包括:第二存储模块,被配置为存储所述第一级索引、第二级索引和第三级索引。
结合第五方面,本公开在第五方面的第三种实现方式中,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括交通工具或点云中的点。
结合第五方面,本公开在第五方面的第四种实现方式中,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
结合第五方面,本公开在第五方面的第五种实现方式中,所述装置还包括:第一划分模块,被配置为基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录,以形成所述第一级数据集合;和/或第二划分模块,被配置为基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合,以形成所述第二级数据集合,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
结合第五方面的第五种实现方式,本公开在第五方面的第六种实现方式中,所述指定属性值包括空间位置信息。
结合第五方面,本公开在第五方面的第七种实现方式中,所述针对第二级数据集合,生成第二级索引,包括:根据所述第一级数据集合中的对象的属性值,确定所述第一级数据集合的属性值统计信息;基于所述第一级数据集合的属性值统计信息,生成所述第二级索引。
结合第五方面的第七种实现方式,本公开在第五方面的第八种实现方式中,所述针对第三级数据集合,生成第三级索引,包括:根据所述第二级数据集合中的第一级数据集合的属性值统计信息,确定所述第二级数据集合的属性值统计信息;基于所述第二级数据集合的属性值统计信息,生成所述第三级索引。
结合第五方面,本公开在第五方面的第九种实现方式中,所述存储多个对象的数据记录,包括:根据所述第一级数据集合的以下至少一项特性将所述第一级数据集合存储在数据库中或数据文件中:数据新旧程度;实际被访问频率;预测被访问概率。
第六方面,本公开实施例中提供了一种数据获取装置。
具体地,所述数据获取装置,包括:
第一确定模块,被配置为基于查询条件,根据第三级索引确定相应的第三级数据集合中的目标第二级数据集合;
第二确定模块,被配置为基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合;
第一获取模块,被配置为获取所述目标第一级数据集合中的数据,
其中:
所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
所述第一级数据集合包含至少一个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值。
结合第六方面,本公开在第六方面的第一种实现方式中,所述获取所述目标第一级数据集合中的数据,包括:基于所述查询条件,根据所述目标第一级数据集合的第一级索引,获取所述目标第一级数据集合中的目标数据记录,其中,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
结合第六方面,本公开在第六方面的第二种实现方式中,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括交通工具或点云中的点。
结合第六方面,本公开在第六方面的第三种实现方式中,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
结合第六方面,本公开在第六方面的第四种实现方式中,所述第一级数据集合是基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录形成的;和/或所述第二级数据集合是基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合形成的,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
结合第六方面的第四种实现方式,本公开在第六方面的第五种实现方式中,所述指定属性值包括空间位置信息。
结合第六方面,本公开在第六方面的第六种实现方式中,所述第二级索引是基于所述第一级数据集合的属性值统计信息生成的,所述第一级数据集合的属性值统计信息是根据所述第一级数据集合中的对象的属性值确定的。
结合第六方面的第六种实现方式,本公开在第六方面的第七种实现方式中,所述第三级索引是基于所述第二级数据集合的属性值统计信息生成的,所述第二级数据集合的属性值统计信息是根据所述第二级数据集合中的第一级数据集合的属性值统计信息确定的。
结合第六方面,本公开在第六方面的第八种实现方式中,所述获取所述目标第一级数据集合中的数据,包括:根据所述目标第一级数据集合的元数据,确定所述目标第一级数据集合中的数据的存储位置在数据库中或数据文件中;根据所述目标第一级数据集合中的数据的存储位置,获取所述目标第一级数据集合中的数据。
结合第六方面,本公开在第六方面的第九种实现方式中,所述装置还包括:改写模块,被配置为根据所述第二级索引和/或所述第三级索引对初始查询请求进行改写,得到所述查询条件。
第七方面,本公开实施例中提供了一种点云数据存储装置。
具体地,所述点云数据存储装置,包括:
第三存储模块,被配置为存储点云中的多个点的数据记录,每个点的所述数据记录包括所述点的一个或多个属性值;
第四生成模块,被配置为针对包含至少一个第一级数据集合的第二级数据集合,生成第二级数据索引,所述第一级数据集合包含至少一个所述点的数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
第五生成模块,被配置为针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
第八方面,本公开实施例中提供了一种点云数据获取装置。
具体地,所述点云数据获取装置,包括:
第三确定模块,被配置为基于查询条件,根据第三级索引确定点云数据中相应的第三级数据集合中的目标第二级数据集合,其中,所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
第四确定模块,被配置为基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合,其中,所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
第二获取模块,被配置为获取所述目标第一级数据集合中的点的数据记录,所述第一级数据集合包括点云中的至少一个点的数据记录,所述数据记录包括相应点的一个或多个属性值。
第九方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面、第一方面的第一种实现方式至第九种实现方式、第二方面、第二方面的第一种实现方式至第九种实现方式、第三方面、第四方面中任一项所述的方法。
第十方面,本公开实施例中提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的第一种实现方式至第九种实现方式、第二方面、第二方面的第一种实现方式至第九种实现方式、第三方面、第四方面中任一项所述的方法。
根据本公开实施例提供的技术方案,能够有效降低索引的数据量,从而提高数据查询性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开的实施例的数据存储方法的存储组织方案的示例性结构示意图;
图2示出根据本公开的实施例的数据存储方法的流程图;
图3示出根据本公开的实施例的数据获取方法的数据查询访问流程图;
图4示出根据本公开的实施例的数据获取方法的流程图;
图5示出根据本公开的实施例的点云数据存储方法的流程图;
图6示出根据本公开的实施例的点云数据获取方法的流程图;
图7示出根据本公开的实施例的数据存储装置的结构框图;
图8示出根据本公开的实施例的数据获取装置的结构框图;
图9示出根据本公开的实施例的点云数据存储装置的结构框图;
图10示出根据本公开的实施例的点云数据获取装置的结构框图;
图11示出根据本公开的实施例的电子设备的结构框图;
图12示出适于用来实现根据本公开实施例的文本数据处理的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
随着自动驾驶技术的兴起,需要用高精地图决定车辆的行驶路线,保证车辆和乘客的安全。而高精地图的生成依赖于底层的点云数据。点云数据体量巨大,种类庞大,如何有效管理与高效查询,成为高精地图生产的难题。
现有技术中,由于点云数据的数据量巨大,索引数据量随之增加,导致数据查询速度和性能下降,对点云数据的高效利用形成阻碍。
考虑到上述缺陷,本公开实施例提供的技术方案存储多个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值;针对第二级数据集合,生成第二级索引,所述第二级数据集合包含至少一个第一级数据集合,所述第一级数据集合包含至少一个所述数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
该技术方案能够有效降低索引的数据量,从而提高数据查询性能。
图1示出根据本公开的实施例的数据存储方法的存储组织方案的示例性结构示意图。
如图1所示,每个数据集合B中包含若干数据集合P和数据集合S,其中数据集合P彼此之间无交集,数据集合S彼此之间无交集,数据集合P和数据集合S之间彼此无交集。数据集合B共同组成数据集合C,数据集合B之间彼此无交集。
在本公开的实施例中,数据集合P和数据集合S可以用于存储点云中的点的数据记录,所述数据记录包括点的属性值。
数据集合P表示存储在数据库中的Patch(块)数据集合。Patch数据集合可以包括一定范围内的点的数据记录或者一定数量的点的数据记录。例如,每个Patch数据集合可以包括1立方米的立方体空间内的点的数据记录或者1000个点的数据记录。数据集合P可以用于存储点云数据中的热数据,所述热数据例如可以是以下任意一种或多种数据:新近获取的数据、实际被访问率较高的数据、预测被访问率较高的数据。
数据集合S表示存储在数据文件中的Patch数据集合。数据集合S可以用于存储点云数据中的冷数据,所述冷数据例如可以是以下任意一种或多种数据:早先获取的数据、实际被访问率较低的数据、预测被访问率较低的数据。
上述数据集合P和数据集合S均可以存储在本地或者其他设备中。在对大量的数据进行管理时,将热数据存储在数据库中,在需要查询时可以直接从数据库中获取数据,数据查询效率高、速度快,将冷数据存储在数据文件中,与从数据库获取数据相比,从数据文件获取数据需要进行数据文件读取、解析等操作,速度略慢,但数据文件能够存储的数据量大,适合于大量冷数据的存储和管理。
数据集合B表示Bucket(桶)数据集合,表示一组Patch数据集合的集合,例如可以为一定范围或者一定数量的Patch数据集合的集合,这些Patch数据集合具有相同的元数据方案。例如,Patch数据集合包括1立方米的立方体空间内的点的数据记录,则Bucket数据集合可以为125立方米的立方体空间内的上述Patch数据集合的集合。或者,Patch数据集合是1000个点的数据记录,则Bucket数据集合可以为1000个Patch数据集合的集合。
根据本公开的实施例,针对每个Bucket数据集合,可以存储该Bucket数据集合中所有Patch数据集合的空间范围、统计信息、访问方式、以及对应的索引等。其中,统计信息例如可以包括点的属性值的最大值、最小值、平均值等,访问方式例如可以包括从数据库访问或从数据文件访问和/或访问路径等。
图2示出根据本公开的实施例的数据存储方法的流程图。如图2所示,所述数据存储方法包括以下步骤S201–S203:
在步骤S201中,存储多个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值;
在步骤S202中,针对包含至少一个第一级数据集合的第二级数据集合,生成第二级索引,所述第一级数据集合包含至少一个所述数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
在步骤S203中,针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
根据本公开的实施例,所述对象的数据记录包含该对象的一个或多个属性值。
例如,当对象为点云数据中的点时,所述点的属性值可以包含该点的以下至少一种或多种数据:空间数据、时空数据、时态数据。根据本公开的实施例,空间数据例如可以包括空间位置信息,时空数据例如可以包括空间位置信息、数据采集时间、反射强度信息、颜色信息、采集设备等,时态数据例如可以包括按照预设规则组织时空数据得到的数据,例如按照空间位置信息将一段时间内多次采集的时空数据组织起来,可以反映同一坐标位置的时空数据变化情况。
例如,当对象为交通工具时,所述交通工具的属性值可以包含以下至少一种或多种数据:空间数据、时空数据、时态数据。根据本公开的实施例,空间数据例如可以包括空间位置信息,时空数据例如可以包括空间位置信息、数据采集时间、速度、方向、预测到达时间、采集设备等,时态数据例如可以包括按照预设规则组织时空数据得到的数据,例如按照交通工具的ID将该交通工具的一系列时空数据组织起来,可以反映该交通工具的行驶情况。
例如,当对象为楼盘时,所述楼盘的属性值可以包含该楼盘的名称、地理位置、开发时间、开发商、户型、售价等。
根据本公开的实施例,所述第二级数据集合例如可以是Bucket数据集合,所述第一级数据集合例如可以是Patch数据集合。如图1所示,数据集合B(即Bucket数据集合)中包含多个数据集合P和数据集合S(即Patch数据集合),其中,Patch数据集合中包含对象(例如,点云中的点)的数据记录。
根据本公开的实施例,针对任一数据集合的索引例如可以包括以下至少一种:所述数据集合的空间范围索引,所述数据集合的属性最大值索引、所述数据集合的属性最小值索引、所述数据集合的属性平均值索引。通过第二级索引,可以查询第二级数据集合中的第一级数据集合。例如,可以利用第二级索引查询Bucket数据集合中符合查询条件的Patch数据集合。
通过第三级索引,可以查询第三级数据集合中的第二级数据集合。例如,第三级数据集合为包含多个Bucket数据集合的集合,利用第三级索引,能够查询出符合查询条件的Bucket数据集合。
根据本公开实施例提供的技术方案,能够有效降低索引的数据量,从而提高数据查询性能。例如,假设第三级数据集合包含1000个Bucket数据集合,每个Bucket数据集合中包含1000个Patch数据集合,一个Patch数据集合中包含1000个点云的点的数据记录,则将点的数据记录按照Bucket和Patch方式进行存储时,每次基于单个索引关键字针对点进行的检索要处理的索引数量最大为3000,而不按照Bucket和Patch方式进行存储时,每次基于单个索引关键字针对点进行的检索要处理的索引数量最大为109。可以看出,通过将点的数据记录按照Bucket和Patch方式进行存储,可以显著减小数据检索时需要处理的索引数量。
根据本公开的实施例,所述方法还包括:针对所述第一级数据集合,生成第一级索引,所述第一级索引用于查询相应的第一级数据集合中的数据记录。例如,所述第一级数据集合是Patch数据集合,生成第一级索引,能够查询到Patch数据集合中的单个对象的数据记录。
根据本公开的实施例,所述方法还包括:存储所述第一级索引、第二级索引和第三级索引。通过存储多个对象的数据记录,并存储第一级索引、第二级索引和第三级索引,能够实现高效的数据存储和结构化数据查询。例如,按照Bucket和Patch的方式进行点云数据存储,并存储三级索引,能够实现点云数据的结构化查询,利用三级索引分级查询,最终查询到点云中一个点的数据记录,能有效降低每次检索时需要处理的索引的数据量,提高数据检索的速度和效率。
根据本公开的实施例,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括交通工具或点云中的点。
例如,如图1所示,每个数据集合B中包含若干数据集合P和数据集合S,其中数据集合P彼此之间无交集,数据集合S彼此之间无交集,数据集合P和数据集合S之间彼此无交集。数据集合B共同组成数据集合C,数据集合B之间彼此无交集。通过数据集合之间彼此无交集,可以避免检索时对数据集合和对象的重复定位。
根据本公开的实施例,数据记录的元数据方案用于描述数据记录中各属性值的含义。例如,数据记录A的元数据方案为{x坐标,浮点,4字节;y坐标,浮点,4字节;z坐标,浮点,4字节;亮度,浮点,8字节;数据采集时间,浮点,4字节},则表明数据记录A中的数据包括长度为4字节,类型为浮点的x坐标值,长度为4字节,类型为浮点的y坐标值,长度为8字节,类型为浮点的亮度值,和长度为4字节,类型为浮点的数据采集时间。当第一级数据集合中的数据记录具有相同的元数据方案时,可以将第一级数据集合中的数据记录元数据方案作为第一级数据集合的元数据方案。当任一数据集合中的数据记录具有相同的元数据方案时,可以将该数据集合中的数据记录的元数据方案作为该数据集合的元数据方案。
通过存储元数据方案,无需针对每个数据记录分别存储其属性值的含义,从而显著节省存储空间。
根据本公开的实施例,本公开的技术方案能够实现点云中的点的数据存储,通过存储点云中的点的数据记录,能够生成高精地图,为无人驾驶技术提供技术保障;此外,本公开的技术方案还能够用于交通工具的数据存储,通过存储交通工具的数据记录,能够反映交通工具的行驶状况,以便分析路况,改良行驶路线,增加自动驾驶的安全性。
根据本公开的实施例,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
例如,点云中的点的空间数据包括这个点的三维坐标信息;时空数据包括这个点的三维坐标信息、数据采集时间、反射强度信息、颜色信息、采集设备等;时态数据包括按照空间位置信息将一段时间内多次采集的时空数据组织起来得到的数据,该数据可以反映同一坐标位置的时空数据变化情况。
根据本公开的实施例,所述方法还包括:基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录,以形成所述第一级数据集合;和/或基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合,以形成所述第二级数据集合,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
根据本公开的实施例,所述指定属性值包括空间位置信息。
由于第一级数据集合的指定属性信息是根据第一级数据集合中的对象的指定属性值确定的,当指定属性值包括空间位置信息时,指定属性信息也是空间位置信息。也就是说,第一预设规则和第二预设规则均可以根据空间位置信息制定。
在形成数据集合的过程中,所述的第一预设规则或第二预设规则可以根据空间的体积制定,也可以根据经纬度、高程范围或地理区域等制定,本公开对此不作具体限定。例如,将空间的体积作为预设规则,第一级数据集合例如可以是1立方米空间范围内的对象的数据记录的集合,而第二级数据集合可以是1000立方米空间范围内的第一级数据集合的集合,此时第一预设规则为1立方米,第二预设规则为1000立方米。
根据本公开的实施例,所述针对第二级数据集合,生成第二级索引,包括:根据所述第一级数据集合中的对象的属性值,确定所述第一级数据集合的属性值统计信息;基于所述第一级数据集合的属性值统计信息,生成所述第二级索引。
例如,所述第一级数据集合为Patch数据集合,所述属性值包含点云中的点的颜色信息或位置信息,可以根据点云中的点的属性值确定Patch数据集合的属性值统计信息,所述属性值统计信息例如可以为表示颜色的属性值的最大值、最小值或平均值,或者可以为位置信息中的公共字段,例如,可以将位置信息中包含“海淀区”的数据集合划分到同一个第一级数据集合中。利用上述属性值统计信息,可以在Bucket数据集合中确定符合查询条件的Patch数据集合。
根据本公开的实施例,所述针对第三级数据集合,生成第三级索引,包括:根据所述第二级数据集合中的第一级数据集合的属性值统计信息,确定所述第二级数据集合的属性值统计信息;基于所述第二级数据集合的属性值统计信息,生成所述第三级索引。
例如,所述第二级数据集合为Bucket数据集合,所述第一级数据集合为Patch数据集合,可以根据Patch数据集合的属性值统计信息确定Bucket数据集合的属性值统计信息,所述属性值统计信息例如可以为表示颜色的属性值的最大值、最小值或平均值,或者可以为表示位置信息的公共字段。利用上述属性值统计信息,可以在多个Bucket数据集合的集合中确定符合查询条件的Bucket数据集合。
第二级数据集合的属性值统计信息可以根据第二级数据集合中的第一级数据集合的属性值统计信息确定。例如,第二级数据集合A包括三个第一级数据集合,其中,第一级数据集合B的属性“亮度值”的统计信息为最大值为10,最小值为3,第一级数据集合C的属性“亮度值”的统计信息为最大值为9,最小值为2,第一级数据集合D的属性“亮度值”的统计信息为最大值为11,最小值为1,则第二级数据集合W的属性“亮度值”的统计信息可以为最大值为11,最小值为1。又例如,第二级数据集合E包括三个第一级数据集合,其中,第一级数据集合F的属性“地理区域”的统计信息为“河北省石家庄市”,第一级数据集合G的属性“地理区域”的统计信息为“河北省唐山市”,第一级数据集合H的属性“地理区域”的统计信息为“河北省保定市”,则第二级数据集合W的属性“地理区域”的统计信息可以为公共字段“河北省”。
通过上述方式生成第二级索引和第三级索引,在数据查询时,能够实现按照数据属性值的统计信息进行查询,逐级缩小查询范围,提高了数据存储和读取的效率。
根据本公开的实施例,可以将索引中的统计信息按照预设规则进行排序,例如按照大小或字母顺序进行排序,在检索时可以根据排序规则,快速确定检索结果。
根据本公开的实施例,所述存储多个对象的数据记录,包括:根据所述第一级数据集合的以下至少一项特性将所述第一级数据集合存储在数据库中或数据文件中:数据新旧程度;实际被访问频率;预测被访问概率。
例如,所述第一级数据集合为Patch数据集合,将Patch数据集合按照数据新旧程度、实际被访问频率、预测被访问概率中的至少一项特性存储在数据库中或数据文件中,如图1所示,存储在数据库中的为数据集合P,存储在数据文件中的为数据集合S。数据集合P可以用于存储点云数据中的热数据,所述热数据例如可以是以下任意一种或多种数据:近期获取的数据、实际被访问率较高的数据、预测被访问率较高的数据;数据集合S可以用于存储点云数据中的冷数据,所述冷数据例如可以是以下任意一种或多种数据:早先获取的数据、实际被访问率较低的数据或者预测被访问率较低的数据。
根据本公开实施例提供的技术方案,既支持基于数据库的存储方式,又支持基于外部文件系统存储的方式,从而实现数据冷热分离,在确保热数据的访问速度和效率的同时,降低大量冷数据的存储成本。
图3示出根据本公开的实施例的数据获取方法的数据查询访问流程图。
如图3所示,在进行数据查询访问的过程中,首先获取查询请求。所述查询请求例如可以是需要查询的空间范围或属性值的区间需求。例如,查询请求为“需要查询空间范围在E内且属性值R>1且R<10的点云”。
然后,根据索引关键字对查询请求进行改写,改写为结构化查询语言(StructuredQuery Language,SQL)。之后利用数据库执行器执行改写后的SQL,充分利用针对Bucket数据集合的索引过滤出符合条件的Bucket数据集合。得到符合条件的Bucket数据集合之后,利用针对Bucket数据集合内的Patch数据集合的索引,基于查询条件进行精确过滤,确定符合条件的Patch数据集合。最后,根据Bucket数据集合中记录的Patch数据集合的访问方式,获取数据库内的Patch数据集合或数据文件内的Patch数据集合的数据。
图4示出根据本公开的实施例的数据获取方法的流程图。如图4所示,所述数据获取方法包括以下步骤S401-S403:
在步骤S401中,基于查询条件,根据第三级索引确定相应的第三级数据集合中的目标第二级数据集合;
在步骤S402中,基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合;
在步骤S403中,获取所述目标第一级数据集合中的数据,
其中:
所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
所述第一级数据集合包含至少一个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值。
例如,当对象为点云数据中的点时,所述点的属性值可以包含该点的以下至少一种或多种数据:空间数据、时空数据、时态数据。根据本公开的实施例,空间数据例如可以包括空间位置信息,时空数据例如可以包括空间位置信息、数据采集时间、反射强度信息、颜色信息、采集设备等,时态数据例如可以包括按照预设规则组织时空数据得到的数据,例如按照空间位置信息将一段时间内多次采集的时空数据组织起来,可以反映同一坐标位置的时空数据变化情况。
例如,当对象为交通工具时,所述交通工具的属性值可以包含以下至少一种或多种数据:空间数据、时空数据、时态数据。根据本公开的实施例,空间数据例如可以包括空间位置信息,时空数据例如可以包括空间位置信息、数据采集时间、速度、方向、预测到达时间、采集设备等,时态数据例如可以包括按照预设规则组织时空数据得到的数据,例如按照交通工具的ID将该交通工具的一系列时空数据组织起来,可以反映该交通工具的行驶情况。
例如,当对象为楼盘时,所述楼盘的属性值可以包含该楼盘的名称、地理位置、开发时间、开发商、户型、售价等。
根据本公开的实施例,例如,所述第一级数据集合是Patch数据集合,所述第二级数据集合是Bucket数据集合,所述第三级数据集合是多个Bucket数据集合的集合。则数据获取的过程如图3所示,首先基于查询条件,根据第三级索引确定多个Bucket数据集合的集合中符合条件的Bucket数据集合;然后基于查询条件,根据第二级索引确定Bucket数据集合中符合条件的Patch数据集合;最后,获取Patch数据集合中的点云中的点的数据。通过上述数据获取方法,能够有效降低索引数据量,提升索引性能,实现高效地数据查询访问。
根据本公开的实施例,所述获取所述目标第一级数据集合中的数据,包括:基于所述查询条件,根据所述目标第一级数据集合的第一级索引,获取所述目标第一级数据集合中的目标数据记录,其中,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
例如,所述目标第一级数据集合为Patch数据集合,所述目标第一级数据集合中的目标数据记录为点云中的点的数据记录。根据Patch数据集合的第一级索引,能够查询到Patch数据集合中的点云的点的数据。
根据本公开的实施例,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括交通工具或点云中的点。
例如,如图1所示,每个数据集合B中包含若干数据集合P和数据集合S,其中数据集合P彼此之间无交集,数据集合S彼此之间无交集,数据集合P和数据集合S之间彼此无交集。数据集合B共同组成数据集合C,数据集合B之间彼此无交集。通过数据集合之间彼此无交集,可以避免检索时对数据集合和对象的重复定位。
根据本公开的实施例,数据记录的元数据方案用于描述数据记录中各属性值的含义。例如,数据记录A的元数据方案为{x坐标,浮点,4字节;y坐标,浮点,4字节;z坐标,浮点,4字节;亮度,浮点,8字节;数据采集时间,浮点,4字节},则表明数据记录A中的数据包括长度为4字节,类型为浮点的x坐标值,长度为4字节,类型为浮点的y坐标值,长度为8字节,类型为浮点的亮度值,和长度为4字节,类型为浮点的数据采集时间。当第一级数据集合中的数据记录具有相同的元数据方案时,可以将第一级数据集合中的数据记录元数据方案作为第一级数据集合的元数据方案。当任一数据集合中的数据记录具有相同的元数据方案时,可以将该数据集合中的数据记录的元数据方案作为该数据集合的元数据方案。
通过存储元数据方案,无需针对每个数据记录分别存储其属性值的含义,从而显著节省存储空间。
通过存储点云中的点的数据记录,能够生成高精地图,为无人驾驶技术提供技术保障;通过存储交通工具的数据记录,能够反映交通工具的行驶状况,以便分析路况,改良行驶路线,增加自动驾驶的安全性。
根据本公开的实施例,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
例如,点云中的点的空间数据包括这个点的三维坐标信息;时空数据包括这个点的三维坐标信息、数据采集时间、反射强度信息、颜色信息、采集设备等;时态数据包括按照空间位置信息将一段时间内多次采集的时空数据组织起来得到的数据,该数据可以反映同一坐标位置的时空数据变化情况。
根据本公开的实施例,所述第一级数据集合是基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录形成的;和/或所述第二级数据集合是基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合形成的,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
根据本公开的实施例,所述指定属性值包括空间位置信息。
由于第一级数据集合的指定属性信息是根据第一级数据集合中的对象的指定属性值确定的,当指定属性值包括空间位置信息时,指定属性信息也是空间位置信息。也就是说,第一预设规则和第二预设规则均可以根据空间位置信息制定。
所述的第一预设规则或第二预设规则可以根据空间的体积制定,也可以根据经纬度、高程范围或地理区域等制定,本公开对此不作具体限定。例如,将空间的体积作为预设规则,第一级数据集合例如可以是1立方米空间范围内的对象的数据记录的集合,而第二级数据集合可以是1000立方米空间范围内的第一级数据集合的集合,此时第一预设规则为1立方米,第二预设规则为1000立方米。
根据本公开的实施例,所述第二级索引是基于所述第一级数据集合的属性值统计信息生成的,所述第一级数据集合的属性值统计信息是根据所述第一级数据集合中的对象的属性值确定的。
例如,所述第一级数据集合为Patch数据集合,所述属性值包含点云中的点的颜色信息或位置信息,可以根据点云中的点的属性值确定Patch数据集合的属性值统计信息,所述属性值统计信息例如可以为表示颜色的属性值的最大值、最小值或平均值,或者可以为位置信息中的公共字段,例如,可以将位置信息中包含“海淀区”的数据集合划分到同一个第一级数据集合中。利用上述属性值统计信息,可以在Bucket数据集合中确定符合查询条件的Patch数据集合。
根据本公开的实施例,所述第三级索引是基于所述第二级数据集合的属性值统计信息生成的,所述第二级数据集合的属性值统计信息是根据所述第二级数据集合中的第一级数据集合的属性值统计信息确定的。
例如,所述第二级数据集合为Bucket数据集合,所述第一级数据集合为Patch数据集合,可以根据Patch数据集合的属性值统计信息确定Bucket数据集合的属性值统计信息,所述属性值统计信息例如可以为表示颜色的属性值的最大值、最小值或平均值,或者可以为表示位置信息的公共字段。利用上述属性值统计信息,可以在多个Bucket数据集合的集合中确定符合查询条件的Bucket数据集合。
第二级数据集合的属性值统计信息可以根据第二级数据集合中的第一级数据集合的属性值统计信息确定。例如,第二级数据集合A包括三个第一级数据集合,其中,第一级数据集合B的属性“亮度值”的统计信息为最大值为10,最小值为3,第一级数据集合C的属性“亮度值”的统计信息为最大值为9,最小值为2,第一级数据集合D的属性“亮度值”的统计信息为最大值为11,最小值为1,则第二级数据集合W的属性“亮度值”的统计信息可以为最大值为11,最小值为1。又例如,第二级数据集合E包括三个第一级数据集合,其中,第一级数据集合F的属性“地理区域”的统计信息为“河北省石家庄市”,第一级数据集合G的属性“地理区域”的统计信息为“河北省唐山市”,第一级数据集合H的属性“地理区域”的统计信息为“河北省保定市”,则第二级数据集合W的属性“地理区域”的统计信息可以为公共字段“河北省”。
通过上述方式生成第二级索引和第三级索引,在数据查询时,能够逐级缩小查询范围,提高查询的速度和效率。
根据本公开的实施例,可以将索引中的统计信息按照预设规则进行排序,例如按照大小或字母顺序进行排序,在检索时可以根据排序规则,快速确定检索结果。
根据本公开的实施例,所述获取所述目标第一级数据集合中的数据,包括:根据所述目标第一级数据集合的元数据,确定所述目标第一级数据集合中的数据的存储位置在数据库中或数据文件中;根据所述目标第一级数据集合中的数据的存储位置,获取所述目标第一级数据集合中的数据。
例如,如图3所示,根据Bucket数据集合(即第二级数据集合)中记录的Patch数据集合(即第一级数据集合)的访问方式,对数据库内的Patch数据集合或数据文件内的Patch数据集合进行访问操作。例如,所述Patch数据集合中的数据存储在数据库或数据文件中,根据数据存储位置,可以从数据库或数据文件中获取数据。根据本公开实施例提供的技术方案,实现了冷热数据统一查询访问,提高了数据查询效率。
根据本公开的实施例,所述方法还包括:根据所述第二级索引和/或所述第三级索引对初始查询请求进行改写,得到所述查询条件。
根据本公开的实施例,如图3所示,在获取查询请求后,需要对查询请求进行改写。例如,查询请求为一段文字:“需要查询空间范围在E内且属性值R>1且R<10的点云”,可以根据第二级索引和/或第三级索引的关键字对上述查询请求进行改写,得到查询条件。改写后的查询条件为结构化查询语言(SQL)。基于改写后得到的查询条件,可以实现进一步确定目标数据集合。
图5示出根据本公开的实施例的点云数据存储方法的流程图。如图5所示,所述点云数据存储方法包括以下步骤S501-S503:
在步骤S501中,存储点云中的多个点的数据记录,每个点的所述数据记录包括所述点的一个或多个属性值;
在步骤S502中,针对包含至少一个第一级数据集合的第二级数据集合,生成第二级数据索引,所述第一级数据集合包含至少一个所述点的数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
在步骤S503中,针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
根据本公开的实施例,所述点的属性值可以包含该点的以下至少一种或多种数据:空间数据、时空数据、时态数据。根据本公开的实施例,空间数据例如可以包括空间位置信息,时空数据例如可以包括空间位置信息、数据采集时间、反射强度信息、颜色信息、采集设备等,时态数据例如可以包括按照预设规则组织时空数据得到的数据,例如按照空间位置信息将一段时间内多次采集的时空数据组织起来,可以反映同一坐标位置的时空数据变化情况。
根据本公开的实施例,所述第二级数据集合例如可以是Bucket数据集合,所述第一级数据集合例如可以是Patch数据集合。如图1所示,数据集合B(即Bucket数据集合)中包含多个数据集合P和数据集合S(即Patch数据集合),其中,Patch数据集合中包含对象(例如,点云中的点)的数据记录。
根据本公开的实施例,针对任一数据集合的索引例如可以包括以下至少一种:所述数据集合的空间范围索引,所述数据集合的属性最大值索引、所述数据集合的属性最小值索引、所述数据集合的属性平均值索引。通过第二级索引,可以查询第二级数据集合中的第一级数据集合。例如,可以利用第二级索引查询Bucket数据集合中符合查询条件的Patch数据集合。
通过第三级索引,可以查询第三级数据集合中的第二级数据集合。例如,第三级数据集合为包含多个Bucket数据集合的集合,利用第三级索引,能够查询出符合查询条件的Bucket数据集合。
根据本公开实施例提供的技术方案,能够有效降低索引的数据量,从而提高数据查询性能。例如,假设第三级数据集合包含1000个Bucket数据集合,每个Bucket数据集合中包含1000个Patch数据集合,一个Patch数据集合中包含1000个点云的点的数据记录,则将点的数据记录按照Bucket和Patch方式进行存储时,每次基于单个索引关键字针对点进行的检索要处理的索引数量最大为3000,而不按照Bucket和Patch方式进行存储时,每次基于单个索引关键字针对点进行的检索要处理的索引数量最大为109。可以看出,通过将点的数据记录按照Bucket和Patch方式进行存储,可以显著减小数据检索时需要处理的索引数量。
图6示出根据本公开的实施例的点云数据获取方法的流程图。如图6所示,所述点云数据获取方法包括以下步骤S601-S603:
在步骤S601中,基于查询条件,根据第三级索引确定点云数据中相应的第三级数据集合中的目标第二级数据集合,其中,所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
在步骤S602中,基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合,其中,所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
在步骤S603中,获取所述目标第一级数据集合中的点的数据记录,所述第一级数据集合包括点云中的至少一个点的数据记录,所述数据记录包括相应点的一个或多个属性值。
根据本公开的实施例,所述点的属性值可以包含该点的以下至少一种或多种数据:空间数据、时空数据、时态数据。根据本公开的实施例,空间数据例如可以包括空间位置信息,时空数据例如可以包括空间位置信息、数据采集时间、反射强度信息、颜色信息、采集设备等,时态数据例如可以包括按照预设规则组织时空数据得到的数据,例如按照空间位置信息将一段时间内多次采集的时空数据组织起来,可以反映同一坐标位置的时空数据变化情况。
根据本公开的实施例,所述第二级数据集合例如可以是Bucket数据集合,所述第一级数据集合例如可以是Patch数据集合。如图1所示,数据集合B(即Bucket数据集合)中包含多个数据集合P和数据集合S(即Patch数据集合),其中,Patch数据集合中包含对象(例如,点云中的点)的数据记录。
根据本公开的实施例,针对任一数据集合的索引例如可以包括以下至少一种:所述数据集合的空间范围索引,所述数据集合的属性最大值索引、所述数据集合的属性最小值索引、所述数据集合的属性平均值索引。通过第二级索引,可以查询第二级数据集合中的第一级数据集合。例如,可以利用第二级索引查询Bucket数据集合中符合查询条件的Patch数据集合。
通过第三级索引,可以查询第三级数据集合中的第二级数据集合。例如,第三级数据集合为包含多个Bucket数据集合的集合,利用第三级索引,能够查询出符合查询条件的Bucket数据集合。
根据本公开实施例提供的技术方案,能够有效降低索引的数据量,从而提高数据查询性能。例如,假设第三级数据集合包含1000个Bucket数据集合,每个Bucket数据集合中包含1000个Patch数据集合,一个Patch数据集合中包含1000个点云的点的数据记录,则将点的数据记录按照Bucket和Patch方式进行存储时,每次基于单个索引关键字针对点进行的检索要处理的索引数量最大为3000,而不按照Bucket和Patch方式进行存储时,每次基于单个索引关键字针对点进行的检索要处理的索引数量最大为109。可以看出,通过将点的数据记录按照Bucket和Patch方式进行存储,可以显著减小数据检索时需要处理的索引数量。
图7示出根据本公开的实施例的数据存储装置的结构框图。其中,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图7所示,所述数据存储装置700包括第一存储模块710、第一生成模块720、第二生成模块730:
第一存储模块710,被配置为存储多个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值;
第一生成模块720,被配置为针对包含至少一个第一级数据集合的第二级数据集合,生成第二级索引,所述第一级数据集合包含至少一个所述数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
第二生成模块730,被配置为针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
根据本公开实施例提供的技术方案,能够有效降低索引的数据量,从而提高数据查询性能。例如,假设第三级数据集合包含1000个Bucket数据集合,每个Bucket数据集合中包含1000个Patch数据集合,一个Patch数据集合中包含1000个点云的点的数据记录,则将点的数据记录按照Bucket和Patch方式进行存储时,每次基于单个索引关键字针对点进行的检索要处理的索引数量最大为3000,而不按照Bucket和Patch方式进行存储时,每次基于单个索引关键字针对点进行的检索要处理的索引数量最大为109。可以看出,通过将点的数据记录按照Bucket和Patch方式进行存储,可以显著减小数据检索时需要处理的索引数量。
根据本公开的实施例,如图7所示,所述装置还包括:第三生成模块740,被配置为针对所述第一级数据集合,生成第一级索引,所述第一级索引用于查询相应的第一级数据集合中的数据记录。例如,所述第一级数据集合是Patch数据集合,生成第一级索引,能够查询到Patch数据集合中的单个对象的数据记录。
根据本公开的实施例,如图7所示,所述装置还包括:第二存储模块750,被配置为存储所述第一级索引、第二级索引和第三级索引。通过存储多个对象的数据记录,并存储第一级索引、第二级索引和第三级索引,能够实现高效的数据存储和结构化数据查询。例如,按照Bucket和Patch的方式进行点云数据存储,并存储三级索引,能够实现点云数据的结构化查询,利用三级索引分级查询,最终查询到点云中一个点的数据记录,能有效降低每次检索时需要处理的索引的数据量,提高数据检索的速度和效率。
根据本公开的实施例,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括交通工具或点云中的点。
通过存储元数据方案,无需针对每个数据记录分别存储其属性值的含义,从而显著节省存储空间。
根据本公开的实施例,通过存储点云中的点的数据记录,能够生成高精地图,为无人驾驶技术提供技术保障;通过存储交通工具的数据记录,能够反映交通工具的行驶状况,以便分析路况,改良行驶路线,增加自动驾驶的安全性。
根据本公开的实施例,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
根据本公开的实施例,如图7所示,所述装置还包括:
第一划分模块760,被配置为基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录,以形成所述第一级数据集合;和/或
第二划分模块770,被配置为基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合,以形成所述第二级数据集合,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
根据本公开的实施例,所述指定属性值包括空间位置信息。
根据本公开的实施例,所述针对第二级数据集合,生成第二级索引,包括:根据所述第一级数据集合中的对象的属性值,确定所述第一级数据集合的属性值统计信息;基于所述第一级数据集合的属性值统计信息,生成所述第二级索引。
根据本公开的实施例,所述针对第三级数据集合,生成第三级索引,包括:根据所述第二级数据集合中的第一级数据集合的属性值统计信息,确定所述第二级数据集合的属性值统计信息;基于所述第二级数据集合的属性值统计信息,生成所述第三级索引。
通过上述方式生成第二级索引和第三级索引,在数据查询时,能够实现按照数据属性值的统计信息进行查询,逐级缩小查询范围,提高了数据存储和读取的效率。
根据本公开的实施例,可以将索引中的统计信息按照预设规则进行排序,例如按照大小或字母顺序进行排序,在检索时可以根据排序规则,快速确定检索结果。
根据本公开的实施例,所述存储多个对象的数据记录,包括:根据所述第一级数据集合的以下至少一项特性将所述第一级数据集合存储在数据库中或数据文件中:数据新旧程度;实际被访问频率;预测被访问概率。
根据本公开实施例提供的技术方案,既支持基于数据库的存储方式,又支持基于外部文件系统存储的方式,从而实现数据冷热分离,在确保热数据的访问速度和效率的同时,降低大量冷数据的存储成本。
图8示出根据本公开的实施例的数据获取装置的结构框图。其中,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图8所示,所述数据获取装置800包括第一确定模块810、第二确定模块820、第一获取模块830:
第一确定模块810,被配置为基于查询条件,根据第三级索引确定相应的第三级数据集合中的目标第二级数据集合;
第二确定模块820,被配置为基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合;
第一获取模块830,被配置为获取所述目标第一级数据集合中的数据,
其中:
所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
所述第一级数据集合包含至少一个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值。
根据本公开的实施例,利用上述装置进行数据获取,能够有效降低索引数据量,提升索引性能,实现高效地数据查询访问。
根据本公开的实施例,所述获取所述目标第一级数据集合中的数据,包括:基于所述查询条件,根据所述目标第一级数据集合的第一级索引,获取所述目标第一级数据集合中的目标数据记录,其中,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
根据本公开的实施例,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括点云中的点或交通工具。
通过存储元数据方案,无需针对每个数据记录分别存储其属性值的含义,从而显著节省存储空间。
通过存储点云中的点的数据记录,能够生成高精地图,为无人驾驶技术提供技术保障;通过存储交通工具的数据记录,能够反映交通工具的行驶状况,以便分析路况,改良行驶路线,增加自动驾驶的安全性。
根据本公开的实施例,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
根据本公开的实施例,所述第一级数据集合是基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录形成的;和/或所述第二级数据集合是基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合形成的,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
根据本公开的实施例,所述指定属性值包括空间位置信息。
根据本公开的实施例,所述第二级索引是基于所述第一级数据集合的属性值统计信息生成的,所述第一级数据集合的属性值统计信息是根据所述第一级数据集合中的对象的属性值确定的。
根据本公开的实施例,所述第三级索引是基于所述第二级数据集合的属性值统计信息生成的,所述第二级数据集合的属性值统计信息是根据所述第二级数据集合中的第一级数据集合的属性值统计信息确定的。
通过上述方式生成第二级索引和第三级索引,在数据查询时,能够逐级缩小查询范围,提高查询的速度和效率。
根据本公开的实施例,可以将索引中的统计信息按照预设规则进行排序,例如按照大小或字母顺序进行排序,在检索时可以根据排序规则,快速确定检索结果。
根据本公开的实施例,所述获取所述目标第一级数据集合中的数据,包括:根据所述目标第一级数据集合的元数据,确定所述目标第一级数据集合中的数据的存储位置在数据库中或数据文件中;根据所述目标第一级数据集合中的数据的存储位置,获取所述目标第一级数据集合中的数据。
根据本公开实施例提供的技术方案,实现了冷热数据统一查询访问,提高了数据查询效率。
根据本公开的实施例,如图8所示,所述装置还包括:改写模块840,被配置为根据所述第二级索引和/或所述第三级索引对初始查询请求进行改写,得到所述查询条件。
图9示出根据本公开的实施例的点云数据存储装置的结构框图。其中,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图9所示,所述点云数据存储装置900包括:
第三存储模块910,被配置为存储点云中的多个点的数据记录,每个点的所述数据记录包括所述点的一个或多个属性值;
第四生成模块920,被配置为针对包含至少一个第一级数据集合的第二级数据集合,生成第二级数据索引,所述第一级数据集合包含至少一个所述点的数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
第五生成模块930,被配置为针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
图10示出根据本公开的实施例的点云数据获取装置的结构框图。其中,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图10所示,所述点云数据获取装置1000包括:
第三确定模块1010,被配置为基于查询条件,根据第三级索引确定点云数据中相应的第三级数据集合中的目标第二级数据集合,其中,所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
第四确定模块1020,被配置为基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合,其中,所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
第二获取模块1030,被配置为获取所述目标第一级数据集合中的点的数据记录,所述第一级数据集合包括点云中的至少一个点的数据记录,所述数据记录包括相应点的一个或多个属性值。
本公开还公开了一种电子设备,图11示出根据本公开的实施例的电子设备的结构框图。
如图11所示,所述电子设备1100包括存储器1101和处理器1102,其中,存储器1101用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1102执行以实现根据本公开的实施例的数据获取方法,所述方法包括:
存储多个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值;
针对第二级数据集合,生成第二级索引,所述第二级数据集合包含至少一个第一级数据集合,所述第一级数据集合包含至少一个所述数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
根据本公开的实施例,所述方法还包括:针对所述第一级数据集合,生成第一级索引,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
根据本公开的实施例,所述方法还包括:存储所述第一级索引、第二级索引和第三级索引。
根据本公开的实施例,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括交通工具或点云中的点。
根据本公开的实施例,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
根据本公开的实施例,所述方法还包括:基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录,以形成所述第一级数据集合;和/或基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合,以形成所述第二级数据集合,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
根据本公开的实施例,所述指定属性值包括空间位置信息。
根据本公开的实施例,所述针对第二级数据集合,生成第二级索引,包括:根据所述第一级数据集合中的对象的属性值,确定所述第一级数据集合的属性值统计信息;基于所述第一级数据集合的属性值统计信息,生成所述第二级索引。
根据本公开的实施例,所述针对第三级数据集合,生成第三级索引,包括:根据所述第二级数据集合中的第一级数据集合的属性值统计信息,确定所述第二级数据集合的属性值统计信息;基于所述第二级数据集合的属性值统计信息,生成所述第三级索引。
根据本公开的实施例,所述存储多个对象的数据记录,包括:根据所述第一级数据集合的以下至少一项特性将所述第一级数据集合存储在数据库中或数据文件中:数据新旧程度;实际被访问频率;预测被访问概率。
根据本公开的实施例,所述一条或多条计算机指令被所述处理器1102执行以实现根据本公开的实施例的数据获取方法,所述方法包括:
基于查询条件,根据第三级索引确定相应的第三级数据集合中的目标第二级数据集合;
基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合;
获取所述目标第一级数据集合中的数据,
其中:
所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
所述第一级数据集合包含至少一个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值。
根据本公开的实施例,所述获取所述目标第一级数据集合中的数据,包括:基于所述查询条件,根据所述目标第一级数据集合的第一级索引,获取所述目标第一级数据集合中的目标数据记录,其中,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
根据本公开的实施例,所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或所述对象包括交通工具或点云中的点。
根据本公开的实施例,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:所述空间数据包括所述对象的空间位置信息;和/或所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或所述时态数据包括按照预设规则组织所述时空数据得到的数据。
根据本公开的实施例,所述第一级数据集合是基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录形成的;和/或所述第二级数据集合是基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合形成的,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
根据本公开的实施例,所述指定属性值包括空间位置信息。
根据本公开的实施例,所述第二级索引是基于所述第一级数据集合的属性值统计信息生成的,所述第一级数据集合的属性值统计信息是根据所述第一级数据集合中的对象的属性值确定的。
根据本公开的实施例,所述第三级索引是基于所述第二级数据集合的属性值统计信息生成的,所述第二级数据集合的属性值统计信息是根据所述第二级数据集合中的第一级数据集合的属性值统计信息确定的。
根据本公开的实施例,所述获取所述目标第一级数据集合中的数据,包括:根据所述目标第一级数据集合的元数据,确定所述目标第一级数据集合中的数据的存储位置在数据库中或数据文件中;根据所述目标第一级数据集合中的数据的存储位置,获取所述目标第一级数据集合中的数据。
根据本公开的实施例,所述方法还包括:根据所述第二级索引和/或所述第三级索引对初始查询请求进行改写,得到所述查询条件。
根据本公开的实施例,所述一条或多条计算机指令被所述处理器1102执行以实现根据本公开的实施例的点云数据存储方法,所述方法包括:
存储点云中的多个点的数据记录,每个点的所述数据记录包括所述点的一个或多个属性值;
针对包含至少一个第一级数据集合的第二级数据集合,生成第二级数据索引,所述第一级数据集合包含至少一个所述点的数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
根据本公开的实施例,所述一条或多条计算机指令被所述处理器1102执行以实现根据本公开的实施例的点云数据获取方法,所述方法包括:
基于查询条件,根据第三级索引确定点云数据中相应的第三级数据集合中的目标第二级数据集合,其中,所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合,其中,所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
获取所述目标第一级数据集合中的点的数据记录,所述第一级数据集合包括点云中的至少一个点的数据记录,所述数据记录包括相应点的一个或多个属性值。
图12示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
如图12所示,计算机系统1200包括处理单元1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行上述实施例中的各种方法。在RAM1203中,还存储有系统1200操作所需的各种程序和数据。处理单元1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信过程。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。其中,所述处理单元1201可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (32)
1.一种数据存储方法,包括:
存储多个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值;
针对包含至少一个第一级数据集合的第二级数据集合,生成第二级索引,所述第一级数据集合包含至少一个所述数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
2.根据权利要求1所述的方法,还包括:
针对所述第一级数据集合,生成第一级索引,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
3.根据权利要求2所述的方法,还包括:存储所述第一级索引、第二级索引和第三级索引。
4.根据权利要求1所述的方法,其中:
所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或
所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或
所述对象包括交通工具或点云中的点。
5.根据权利要求1所述的方法,其中,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:
所述空间数据包括所述对象的空间位置信息;和/或
所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或
所述时态数据包括按照预设规则组织所述时空数据得到的数据。
6.根据权利要求1所述的方法,还包括:
基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录,以形成所述第一级数据集合;和/或
基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合,以形成所述第二级数据集合,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
7.根据权利要求6所述的方法,其中,所述指定属性值包括空间位置信息。
8.根据权利要求1所述的方法,所述针对第二级数据集合,生成第二级索引,包括:
根据所述第一级数据集合中的对象的属性值,确定所述第一级数据集合的属性值统计信息;
基于所述第一级数据集合的属性值统计信息,生成所述第二级索引。
9.根据权利要求8所述的方法,所述针对第三级数据集合,生成第三级索引,包括:
根据所述第二级数据集合中的第一级数据集合的属性值统计信息,确定所述第二级数据集合的属性值统计信息;
基于所述第二级数据集合的属性值统计信息,生成所述第三级索引。
10.根据权利要求1所述的方法,其中,所述存储多个对象的数据记录,包括:
根据所述第一级数据集合的以下至少一项特性将所述第一级数据集合存储在数据库中或数据文件中:数据新旧程度;实际被访问频率;预测被访问概率。
11.一种数据获取方法,包括:
基于查询条件,根据第三级索引确定相应的第三级数据集合中的目标第二级数据集合;
基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合;
获取所述目标第一级数据集合中的数据,
其中:
所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
所述第一级数据集合包含至少一个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值。
12.根据权利要求11所述的方法,其中,所述获取所述目标第一级数据集合中的数据,包括:
基于所述查询条件,根据所述目标第一级数据集合的第一级索引,获取所述目标第一级数据集合中的目标数据记录,
其中,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
13.根据权利要求11所述的方法,其中:
所述第一级数据集合之间无交集,所述第二级数据集合之间无交集;和/或
所述第二级数据集合中的第一级数据集合具有相同的元数据方案,所述第一级数据集合中的数据记录具有相同的元数据方案;和/或
所述对象包括交通工具或点云中的点。
14.根据权利要求11所述的方法,其中,所述属性值包括所述对象的以下至少一种数据:空间数据、时空数据、时态数据,其中:
所述空间数据包括所述对象的空间位置信息;和/或
所述时空数据包括所述对象的空间位置信息、所述对象的一项或多项预设属性信息、所述对象的空间位置信息和预设属性信息的数据采集时间;和/或
所述时态数据包括按照预设规则组织所述时空数据得到的数据。
15.根据权利要求11所述的方法,其中:
所述第一级数据集合是基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录形成的;和/或
所述第二级数据集合是基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合形成的,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
16.根据权利要求15所述的方法,其中,所述指定属性值包括空间位置信息。
17.根据权利要求11所述的方法,其中,所述第二级索引是基于所述第一级数据集合的属性值统计信息生成的,所述第一级数据集合的属性值统计信息是根据所述第一级数据集合中的对象的属性值确定的。
18.根据权利要求17所述的方法,其中,所述第三级索引是基于所述第二级数据集合的属性值统计信息生成的,所述第二级数据集合的属性值统计信息是根据所述第二级数据集合中的第一级数据集合的属性值统计信息确定的。
19.根据权利要求11所述的方法,其中,所述获取所述目标第一级数据集合中的数据,包括:
根据所述目标第一级数据集合的元数据,确定所述目标第一级数据集合中的数据的存储位置在数据库中或数据文件中;
根据所述目标第一级数据集合中的数据的存储位置,获取所述目标第一级数据集合中的数据。
20.根据权利要求11所述的方法,还包括:
根据所述第二级索引和/或所述第三级索引对初始查询请求进行改写,得到所述查询条件。
21.一种点云数据存储方法,包括:
存储点云中的多个点的数据记录,每个点的所述数据记录包括所述点的一个或多个属性值;
针对包含至少一个第一级数据集合的第二级数据集合,生成第二级数据索引,所述第一级数据集合包含至少一个所述点的数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
22.一种点云数据获取方法,包括:
基于查询条件,根据第三级索引确定点云数据中相应的第三级数据集合中的目标第二级数据集合,其中,所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合,其中,所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
获取所述目标第一级数据集合中的点的数据记录,所述第一级数据集合包括点云中的至少一个点的数据记录,所述数据记录包括相应点的一个或多个属性值。
23.一种数据存储装置,包括:
第一存储模块,被配置为存储多个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值;
第一生成模块,被配置为针对包含至少一个第一级数据集合的第二级数据集合,生成第二级索引,所述第一级数据集合包含至少一个所述数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
第二生成模块,被配置为针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
24.根据权利要求23所述的装置,还包括:
第三生成模块,被配置为针对所述第一级数据集合,生成第一级索引,所述第一级索引用于查询相应的第一级数据集合中的数据记录。
25.根据权利要求24所述的装置,还包括:
第二存储模块,被配置为存储所述第一级索引、第二级索引和第三级索引。
26.根据权利要求23所述的装置,还包括:
第一划分模块,被配置为基于所述多个对象的指定属性值,根据第一预设规则划分所述多个对象的数据记录,以形成所述第一级数据集合;和/或
第二划分模块,被配置为基于所述第一级数据集合的指定属性信息,根据第二预设规则划分多个所述第一级数据集合,以形成所述第二级数据集合,其中,所述第一级数据集合的指定属性信息是根据所述第一级数据集合中的对象的指定属性值确定的。
27.一种数据获取装置,包括:
第一确定模块,被配置为基于查询条件,根据第三级索引确定相应的第三级数据集合中的目标第二级数据集合;
第二确定模块,被配置为基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合;
第一获取模块,被配置为获取所述目标第一级数据集合中的数据,
其中:
所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
所述第一级数据集合包含至少一个对象的数据记录,所述数据记录包括所述对象的一个或多个属性值。
28.根据权利要求27所述的装置,还包括:
改写模块,被配置为根据所述第二级索引和/或所述第三级索引对初始查询请求进行改写,得到所述查询条件。
29.一种点云数据存储装置,包括:
第三存储模块,被配置为存储点云中的多个点的数据记录,每个点的所述数据记录包括所述点的一个或多个属性值;
第四生成模块,被配置为针对包含至少一个第一级数据集合的第二级数据集合,生成第二级数据索引,所述第一级数据集合包含至少一个所述点的数据记录,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
第五生成模块,被配置为针对第三级数据集合,生成第三级索引,所述第三级数据集合包含至少一个所述第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合。
30.一种点云数据获取装置,包括:
第三确定模块,被配置为基于查询条件,根据第三级索引确定点云数据中相应的第三级数据集合中的目标第二级数据集合,其中,所述第三级数据集合包含至少一个第二级数据集合,所述第三级索引用于查询相应的第三级数据集合中的第二级数据集合;
第四确定模块,被配置为基于所述查询条件,根据所述目标第二级数据集合的相应第二级索引,确定所述目标第二级数据集合中的目标第一级数据集合,其中,所述第二级数据集合包含至少一个第一级数据集合,所述第二级索引用于查询相应的第二级数据集合中的第一级数据集合;
第二获取模块,被配置为获取所述目标第一级数据集合中的点的数据记录,所述第一级数据集合包括点云中的至少一个点的数据记录,所述数据记录包括相应点的一个或多个属性值。
31.一种电子设备,其特征在于,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-22任一项所述的方法步骤。
32.一种可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-22任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010591748.9A CN113297200A (zh) | 2020-06-24 | 2020-06-24 | 数据存储和获取方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010591748.9A CN113297200A (zh) | 2020-06-24 | 2020-06-24 | 数据存储和获取方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297200A true CN113297200A (zh) | 2021-08-24 |
Family
ID=77318097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010591748.9A Pending CN113297200A (zh) | 2020-06-24 | 2020-06-24 | 数据存储和获取方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297200A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198693A1 (en) * | 2005-01-18 | 2009-08-06 | Richard Alexander Stephen Pura | Method and apparatus for ordering items within datasets |
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
CN104750854A (zh) * | 2015-04-16 | 2015-07-01 | 武汉海达数云技术有限公司 | 一种海量三维激光点云压缩存储及快速加载显示方法 |
CN105426521A (zh) * | 2015-12-04 | 2016-03-23 | 深圳大学 | 具有三级索引结构的海图数据库及其数据读取方法 |
CN109299106A (zh) * | 2018-10-31 | 2019-02-01 | 中国联合网络通信集团有限公司 | 数据查询方法和装置 |
-
2020
- 2020-06-24 CN CN202010591748.9A patent/CN113297200A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198693A1 (en) * | 2005-01-18 | 2009-08-06 | Richard Alexander Stephen Pura | Method and apparatus for ordering items within datasets |
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
CN104750854A (zh) * | 2015-04-16 | 2015-07-01 | 武汉海达数云技术有限公司 | 一种海量三维激光点云压缩存储及快速加载显示方法 |
CN105426521A (zh) * | 2015-12-04 | 2016-03-23 | 深圳大学 | 具有三级索引结构的海图数据库及其数据读取方法 |
WO2017092636A1 (zh) * | 2015-12-04 | 2017-06-08 | 深圳大学 | 具有三级索引结构的海图数据库及其数据读取方法 |
CN109299106A (zh) * | 2018-10-31 | 2019-02-01 | 中国联合网络通信集团有限公司 | 数据查询方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11132388B2 (en) | Efficient spatial queries in large data tables | |
US10281284B2 (en) | Hybrid road network and grid based spatial-temporal indexing under missing road links | |
US11520760B2 (en) | System and method for providing bottom-up aggregation in a multidimensional database environment | |
US6108650A (en) | Method and apparatus for an accelerated radius search | |
US11720606B1 (en) | Automated geospatial data analysis | |
CN106933833B (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
CN107026881B (zh) | 业务数据的处理方法、装置及系统 | |
WO2008147348A1 (en) | Method and apparatus for indexing, storing and retrieving raster (grid) data in a combined raster vector system | |
EP2836928B1 (en) | Full text search using r-trees | |
CN112445889A (zh) | 存储数据、检索数据的方法及相关设备 | |
CN103914456A (zh) | 一种数据存储方法和系统 | |
CN109145225B (zh) | 一种数据处理方法及装置 | |
CN102968456A (zh) | 一种栅格数据读取处理方法和装置 | |
CN113626437A (zh) | 一种海量矢量数据快速查询方法及系统 | |
CN111190893B (zh) | 建立特征索引的方法和装置 | |
Alvanaki et al. | GIS navigation boosted by column stores | |
CN109299106B (zh) | 数据查询方法和装置 | |
CN113297200A (zh) | 数据存储和获取方法、装置、电子设备及可读存储介质 | |
CN114880393A (zh) | 基于多维索引的海量时空数据可视化性能优化方法及系统 | |
Min et al. | The mobile spatial DBMS for the partial map air update in the navigation | |
Rslan et al. | An efficient hybridized index technique for moving object database | |
Tian et al. | Tinba: Incremental partitioning for efficient trajectory analytics | |
CN113626446B (zh) | 数据存储和查找方法、装置、电子设备及介质 | |
CN109086321B (zh) | 盲搜方法及系统 | |
CN115794828A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40058622 Country of ref document: HK |