CN116975118A - 一种数据查询方法、装置、电子设备和存储介质 - Google Patents

一种数据查询方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116975118A
CN116975118A CN202210425373.8A CN202210425373A CN116975118A CN 116975118 A CN116975118 A CN 116975118A CN 202210425373 A CN202210425373 A CN 202210425373A CN 116975118 A CN116975118 A CN 116975118A
Authority
CN
China
Prior art keywords
log data
target
endpoint
target log
query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210425373.8A
Other languages
English (en)
Inventor
周润耘
李觉灵
林兆祥
吴先斌
王建
马文霜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210425373.8A priority Critical patent/CN116975118A/zh
Publication of CN116975118A publication Critical patent/CN116975118A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及计算机技术领域,尤其涉及一种数据查询方法、装置、电子设备和存储介质,用以提高数据查询效率。其中,方法包括:获取从日志数据集包含的日志数据中筛选的多个目标日志数据,根据待查询时间区间确定至少两个端点时间戳,并从多个目标日志数据中确定至少两个端点时间戳各自对应的端点日志数据;基于各个端点日志数据确定待查询时间区间的至少一个日志数据子集,并基于除各个端点日志数据之外的其他目标日志数据的标识信息,确定其他目标日志数据各自所属的日志数据子集。由于本申请通过预先对日志数据集中的日志数据按照时间戳大小排序,能够根据待查询区间的端点时间戳获得待查询时间区间中包含的目标日志数据,有效提高数据查询效率。

Description

一种数据查询方法、装置、电子设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据查询方法、装置、电子设备和存储介质。
背景技术
随着互联网技术的快速发展,互联网中的数据量也不断增加,因而,对数据的查询需求也大量增加,通过对指定时间范围内的数据量查询,能够直观的展示数据分布情况。
相关技术中,对于指定时间范围内的数据量查询,主要是通过不断回表查询各个数据的时间戳是否属于此时间范围,获得属于此时间范围内的各个时间戳对应的数据列表,进而获得此时间范围内的全部数据量。但是在面对高基维数据时,例如时间戳以毫秒为单位的日志数据,则可能会存在亿万级别的日志数据,基于上述方式进行数据量查询时,则需要对涉及的亿万级别的索引项进行逐个扫描,耗费时间过长,因此,如何提高对指定时间范围的数据量查询效率是目前亟待解决的问题。
发明内容
本申请实施例提供一种数据查询方法、装置、电子设备和存储介质,用以提高数据查询效率。
本申请实施例提供的一种数据查询方法,包括:
获取从日志数据集包含的日志数据中筛选的多个目标日志数据,所述日志数据集中的各个日志数据按照各自的时间戳大小排序,且每个日志数据对应的标识信息是基于对应的排序结果生成的;
根据待查询时间区间确定至少两个端点时间戳,并从所述多个目标日志数据中确定所述至少两个端点时间戳各自对应的端点日志数据;
基于各个端点日志数据确定所述待查询时间区间对应的至少一个日志数据子集,并基于除所述各个端点日志数据之外的其他目标日志数据的标识信息,确定各个其他目标日志数据各自所属的日志数据子集。
本申请实施例提供的一种数据查询装置,包括:
获取单元,用于获取从日志数据集包含的日志数据中筛选的多个目标日志数据,所述日志数据集中的各个日志数据按照各自的时间戳大小排序,且每个日志数据对应的标识信息是基于对应的排序结果生成的;
第一确定单元,用于根据待查询时间区间确定至少两个端点时间戳,并从所述多个目标日志数据中确定所述至少两个端点时间戳各自对应的端点日志数据;
第二确定单元,用于基于所述端点日志数据确定所述待查询时间区间对应的至少一个日志数据子集,并基于除所述各个端点日志数据之外的其他目标日志数据的标识信息,确定各个其他目标日志数据各自所属的日志数据子集。
可选的,通过以下方式获得所述每个日志数据组各自的时间标识:
将所述多个目标日志数据,按照各自的时间戳之间的相同字段,划分得到多个日志数据组,每个日志数据组中包含的各个目标日志数据的时间戳具有同一相同字段;
分别将各个日志数据组各自对应的相同字段,作为所述各个日志数据组各自的时间标识。
可选的,所述第二确定单元具体用于:
对于每个日志数据子集,分别执行以下操作:
根据一个日志数据子集对应的两个端点日志数据的标识信息,确定所述两个端点日志数据的标识信息之间的中间标识信息;
将各个其他目标日志数据中标识信息为所述中间标识信息的目标日志数据,作为所述一个日志数据子集中包含的目标日志数据。
可选的,所述第一确定单元具体用于:
按照预设步长,将所述待查询时间区间划分为至少两个查询子区间,并将所述至少两个查询子区间的端点对应的时间戳,作为所述端点时间戳。
可选的,所述装置还包括构建单元,用于:
确定所述至少两个查询子区间各自包含的目标日志数据的数量;
根据所述至少两个查询子区间,以及所述至少两个查询子区间各自包含的目标日志数据的数量,构建用于显示日志数据分布的直方图。
本申请实施例提供的一种电子设备,包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行上述任意一种数据查询方法的步骤。
本申请实施例提供一种计算机可读存储介质,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行上述任意一种数据查询方法的步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行上述任意一种数据查询方法的步骤。
本申请有益效果如下:
本申请实施例提供了一种数据查询方法、装置、电子设备和存储介质,由于本申请通过预先对日志数据集中的各个日志数据按照各自的时间戳大小排序,在进行数据查询时,获取从日志数据集包含的日志数据中筛选的多个目标日志数据;进而,根据待查询时间区间确定至少两个端点时间戳,并在各个目标日志数据中,分别获得至少两个端点时间戳各自对应的端点日志数据;基于各个端点日志数据确定待查询时间区间对应的至少一个日志数据子集,并基于除各个端点日志数据的之外的其他目标日志数据的标识信息,确定各个其他目标日志数据所属的日志数据子集,无需再对所有目标日志数据的时间戳进行回表查询,即可确定目标日志数据所属的日志数据子集,有效提高了数据查询效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中的一种应用场景的一个可选的示意图;
图2为本申请实施例中的一种数据查询方法的实施流程图;
图3A为本申请实施例中的一种端点日志数据的获取流程示意图;
图3B为本申请实施例中的一种二分查找时间戳方法的示意图;
图4为本申请实施例中的一种时间标识的构成示意图;
图5为本申请实施例中的一种日志数据分布直方图的示意图;
图6为本申请实施例中的一种直方图计算方法的示意图;
图7为本申请实施例中的另一种直方图计算方法的示意图;
图8为本申请实施例中的一种数据查询方法的具体流程图;
图9为本申请实施例中的一种数据查询方法的逻辑示意图;
图10为本申请实施例中的一种数据查询装置的结构示意图;
图11为应用本申请实施例的一种电子设备的一个硬件组成结构示意图;
图12为应用本申请实施例的另一种电子设备的一个硬件组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
下面对本申请实施例中涉及的部分概念进行介绍。
时间戳:是字符或编码信息的序列,用于标志何时发生特定事件,能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据,通过标记的时间有次序地排列,在本申请实施例中,时间戳用于标识日志数据的产生时间。
待查询时间区间:指对象需要查询的日志数据所属的时间区间,例如,待查询时间区间可以是2021.9-2021.10,则表示对象需要查询2021年9月至10月产生的日志数据。
二分查找:也称折半查找,是一种效率较高的查找方法,二分查找要求需要进行查找的线性表必须采用顺序存储结构,而且表中元素按关键字有序排列,在本申请实施例中,通过二分查找在按照时间戳排序的日志数据子集,查找端点日志数据。
直方图:又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据类型,纵轴表示分布情况。在本申请实施例中,可以以查询子区间为横轴,目标日志数量为纵轴,侯建用于显示日志数据分布的直方图。
高基维(high-cardinality)数据:从字面上理解,即对于某个字段,不同值的数量非常多。例如,以毫秒为单位的时间戳,一天之内就有24*60*60*1000种不同的值。
本申请实施例涉及云技术领域,通过云技术中的云存储技术实现数据查询。具体地,本申请实施例通过预先对日志数据按照时间戳大小排序,在对象需要查询某一时间区间内的目标日志数据时,能够高效定位此时间区间内的目标日志数据。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,对象可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个对象共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(Database Management System,DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible Markup Language,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如结构化查询语言(Structured Query Language,SQL)、XQuery;或依据性能冲量重点来做分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
下面对本申请实施例的设计思想进行简要介绍:
随着互联网技术的快速发展,互联网中的数据量也不断增加,因而,对数据的查询需求也大量增加,通过对指定时间范围内的数据量查询,能够直观的展示数据分布情况。
以日志数据为例,在搜索系统中,每一条日志都会被指定一个唯一的编号,比如有1000条日志数据,就会给每条日志分别指定0,1,2,3,4,…,999作为他们的编号(docid)。在建立索引时,会给每一个值都建立一个倒排索引,用来指定这个值在哪些文档中出现过。
在日志场景的时间戳索引里面,一般可以建立起一系列以时间戳为键(key),以编号为值(value)的一个倒排表(docid list),例如timestamp->[docid1,docid2],这里的[docid1,docid2]列表,称为记录表(posting list),通常情况下,它是按docid从小到大排序的。以2021-09-28 10:10:39T1234->[1,5]为例,则表示docid为1和5的日志使用了“2021-09-28 10:10:39T1234”这个时间戳。
相关技术中,搜索引擎靠大量这种结构来加速搜索,只要对象指定一个时间戳,它就可以马上从倒排表里面取出posting list,直接响应对象的搜索请求。在很多场景的搜索应用里面,这种设计非常高效,因为从一堆有序的timestamp里面找到指定的timestamp的posting list,普通搜索操作的算法复杂度只有o(log(n))。但是,对于日志数据中的时间戳范围检索,传统的搜索应用只会涉及到有限数量的倒排项,而时间戳检索属于高基维范围检索,可能涉及亿万级索引项,因而再采用上述倒排的方式则会耗费大量的查询时间。
相关技术中,存在一种弹性搜索系统(Elastic Search,ES),对于日志应用中最常见的针对时间范围的直方图计算,ES采用对每条命中的日志回表查询时间戳的方式来实现,这种方式带来大量的(几万/几十万或更多)回表操作,因此性能较慢。ES非常擅长文本搜索,但不是很擅长数字类型搜索,尤其不擅长高基维数字类型的范围搜索,而日志数据的时间戳恰恰是这种高基维数据,并且对日志的搜索,通常都需要指定时间戳范围。
在面对高基维数据时,例如:时间戳以毫秒为单位的日志数据,则一天的范围内就可能会存在亿万级别的日志数据,基于上述方式进行数据量查询时,则需要对涉及的亿万级别的索引项进行逐个扫描,耗费时间过长。当然,ES也做了一些优化,采用BKD树索引而不是直接倒排,不过本质上并没有改变这些问题。ES还提供了一些快速过滤的优化,TencentES也做了一些优化,在特定的场景下可以避免扫描这些索引数据,能够减少一定的查询时间。但实际上也只能实现原来的30s,优化成15s的效果,需要寻找具有更低算法复杂度的搜索方案。因此,如何提高对指定时间范围的数据量查询效率是目前亟待解决的问题。
有鉴于此,本申请实施例提出了一种数据查询方法、装置、电子设备和存储介质,由于本申请通过预先对日志数据集中的各个日志数据按照各自的时间戳大小排序,在进行数据查询时,获取从日志数据集包含的日志数据中筛选的多个目标日志数据;进而,根据待查询时间区间确定至少两个端点时间戳,并在各个目标日志数据中,分别获得至少两个端点时间戳各自对应的端点日志数据;基于各个端点日志数据确定待查询时间区间对应的至少一个日志数据子集,并基于除各个端点日志数据的之外的其他目标日志数据的标识信息,确定各个其他目标日志数据所属的日志数据子集,无需再对所有目标日志数据的时间戳进行回表查询,即可确定目标日志数据所属的日志数据子集,有效提高了数据查询效率。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,其为本申请实施例的应用场景示意图。该应用场景图中包括两个终端设备110和一个服务器120。
在本申请实施例中,终端设备110包括但不限于手机、平板电脑、笔记本电脑、台式电脑、电子书阅读器、智能语音交互设备、智能家电、车载终端等设备;终端设备上可以安装有数据查询相关的客户端,该客户端可以是软件(例如浏览器、数据分析软件等),也可以是网页、小程序等,服务器120则是与软件或是网页、小程序等相对应的后台服务器,或者是专门用于进行数据查询的服务器,本申请不做具体限定。服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
需要说明的是,本申请实施例中的数据查询方法可以由电子设备执行,该电子设备可以为服务器120或者终端设备110,即,该方法可以由服务器120或者终端设备110单独执行,也可以由服务器120和终端设备110共同执行。比如由服务器120和终端设备110共同执行时,终端设备110获取待查询时间区间和目标查询条件并发送给服务器120,服务器120首先从日志数据集包含的日志数据中筛选多个待查询时间区间内符合目标查询条件的目标日志数据,然后根据待查询时间区间确定至少两个端点时间戳,并在各个目标日志数据中,分别获得至少两个端点时间戳各自对应的端点日志数据;最后基于各个端点日志数据确定至少一个日志数据子集,以及除各个端点日志数据之外的其他目标日志数据的标识信息,确定各个其他目标日志数据各自所属的日志数据子集,将各个日志数据子集包含的目标日志数据发送给终端设备110。
在一种可选的实施方式中,终端设备110与服务器120之间可以通过通信网络进行通信。
在一种可选的实施方式中,通信网络是有线网络或无线网络。
需要说明的是,图1所示只是举例说明,实际上终端设备和服务器的数量不受限制,在本申请实施例中不做具体限定。
本申请实施例中,当服务器的数量为多个时,多个服务器可组成为一区块链,而服务器为区块链上的节点;如本申请实施例所公开的数据查询方法,其中所涉及的日志数据可保存于区块链上。
此外,本申请实施例可应用于各种场景,不仅包括数据查询场景,还包括但不限于云技术、人工智能、智慧交通、辅助驾驶等场景。例如,当本申请中的数据查询方法应用于智慧交通场景时,可以对对象在车辆行驶过程中的行驶数据建立车辆行驶数据集,在对象需要查询某一时间区间内的车辆行驶数据时,通过本申请实施例中的数据查询方法获得此时间区间内的目标车辆行驶数据。
可以理解的是,在本申请的具体实施方式中,涉及到对象信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面结合上述描述的应用场景,参考附图来描述本申请示例性实施方式提供的数据查询方法,需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。
参阅图2所示,为本申请实施例提供的一种数据查询方法的实施流程图,以执行主体为服务器为例,该方法的具体实施流程包括如下步骤S21-S23:
S21:服务器获取从日志数据集包含的日志数据中筛选的多个目标日志数据;
其中,日志数据集中的各个日志数据按照各自的时间戳大小排序,且每个日志数据对应的标识信息是基于对应的排序结果生成的。
具体地,本申请实施例中,对日志数据的类型、来源等不做具体限定。例如,日志数据可以是网站浏览日志数据、订单日志数据、账户流水日志数据等,下面主要是以网站浏览日志数据为例进行举例说明,以下简称日志数据。
例如,将日志数据集中的日志数据按照各自的时间戳从小到大排序:日志数据2021.1.10、日志数据2021.1.16、日志数据2021.2.21、日志数据2021.2.25、日志数据2021.3.1,根据排序结果为每个日志数据设置标识信息,可以是日志数据2021.1.10的标识信息为1,日志数据2021.1.16的标识信息为2,日志数据2021.2.21的标识信息为3,日志数据2021.2.25的标识信息为4,日志数据2021.3.1的标识信息为5。
需要说明的是,本申请实施例中的日志数据一般是高基维数据,日志数据的时间戳可以精确到毫秒,在一天内日志数据的数量可达到8640万,这里为了简要说明,只是以时间戳精确到日期的日志数据为例进行说明的,实际上时间戳可以精确到毫秒,或者是更高的精度,本文不做具体限定。
另外,本申请实施例中,对日志数据集中的日志数据排序的方式可以是从小到大排序,也可以是从大到小等排序方式;每个日志数据对应的标识信息可以是连续的自然数,也可以是其他能够标识排序结果的方式,例如连续的奇数、偶数等;上述实施例仅是为了说明步骤S21的具体实施方式,并不构成对本申请的限定。
另外,从日志数据集中进行筛选时,可以根据对象输入的待查询时间区间,以及目标查询条件中的至少一种进行筛选。例如,根据对象输入的待查询时间区间进行筛选时,待查询时间区间可以是2021.1-2021.3,日志数据集中的日志数据的时间范围是2019.1-2021.12,则在2019.1-2021.12的日志数据中筛选出时间戳在2021.1-2021.3的日志数据。
根据目标查询条件进行筛选时,目标查询条件可以是查询ip:127.0.0.1的日志数据,则从日志数据集中筛选出ip为127.0.0.1的日志数据。
同时根据待查询时间区间和目标查询条件筛选时,仍以待查询时间区间为2021.1-2021.3,目标查询条件为查询ip:127.0.0.1的日志数据为例,则可先从日志数据集中筛选出时间戳在2021.1-2021.3的日志数据,再从时间戳在2021.1-2021.3范围内的日志数据筛选出ip为127.0.0.1的日志数据,得到目标日志数据。或者,先从日志数据集中筛选出ip为127.0.0.1的日志数据,进而,再从ip为127.0.0.1的日志数据中筛选出时间戳在2021.1-2021.3范围内的日志数据,本文不对具体的筛选过程及筛选顺序等进行限定。
需要说明的是,上述是以目标查询条件为某一指定ip为例进行举例说明的,实际上,该目标查询条件可根据实际需求灵活设置,比如查询某个账户相关的日志数据,查询某一类型多媒体内容的日志数据等,本文不做具体限定。
S22:服务器根据待查询时间区间确定至少两个端点时间戳,并从多个目标日志数据中确定至少两个端点时间戳各自对应的端点日志数据;
具体地,对象在进行数据查询时,输入待查询时间区间,对于一个待查询时间区间而言,由于一个待查询时间区间至少有左边界和右边界,因而,对于一个待查询时间区间,则至少存在两个端点时间戳,以待查询时间区间为2021.1.1-2021.1.31为例,两个端点时间戳分别为2021.1.1和2021.1.31,进而在各个目标日志数据中获得端点时间戳2021.1.1对应的端点日志数据为目标日志数据1,2021.1.31对应的端点日志数据为目标日志数据31。
S23:服务器基于各个端点日志数据确定待查询时间区间对应的至少一个日志数据子集,并基于除各个端点日志数据之外的其他目标日志数据的标识信息,确定各个其他目标日志数据各自所属的日志数据子集。
具体地,可以将端点日志数据按照标识信息的大小排序,将标识信息相邻的两个端点日志数据作为一个日志数据子集的两个端点日志数据,例如获取到的端点日志数据分别为:端点日志数据5、端点日志数据9,端点日志数据10,端点日志数据15,端点日志数据17,端点日志数据31,则以端点日志数据5和端点日志数据9作为两个端点确定出日志数据子集a,以端点日志数据10和端点日志数据15作为两个端点确定出日志数据子集b,以端点日志数据7和端点日志数据31作为两个端点确定出日志数据子集c。
需要说明的是,此时的日志数据子集中只包含对应的端点日志数据,下面仍以待查询时间区间为2021.1.1-2021.1.31为例,介绍本申请中确定每个日志数据子集中所包含的其他目标日志数据的方式,以获得完整的目标日志数据子集:
具体地,日志数据子集1的两个端点日志数据分别为目标日志数据1和目标日志数据31,也即端点日志数据1的标识信息为1,端点日志数据31的标识信息为31,将剩余的目标日志数据的标识信息与两个端点日志数据的标识信息进行比对,标识信息在两个端点日志数据的标识信息之间的目标日志数据属于日志数据子集1,例如,目标日志数据22属于目标日志数据子集1,目标日志数据45不属于目标日志数据子集1。
另外,日志数据子集可以为分桶的形式,则每个日志数据子集的端点时间戳为分桶的边界,每个分桶对应两个端点时间戳,以待查询时间区间为2021.1.1-2021.3.31为例,将待查询时间区间划分为3个分桶,则端点时间戳以及对应的端点日志数据分别是:2021.1.1对应端点日志数据1、2021.1.31对应端点日志数据31、2021.2.1对应端点日志数据32、2021.2.28对应端点日志数据51、2021.3.1对应端点日志数据52、2021.3.31对应端点日志数据81,根据端点时间戳确定的分桶分别是:分桶1:端点日志数据1、端点日志数据31,分桶2:端点日志数据32、端点日志数据51,分桶3:端点日志数据52、端点日志数据81,剩余的目标日志数据为:目标日志数据15、目标日志数据46和目标日志数据78,则通过比对目标日志数据的标识信息和各分桶的端点日志数据的标识信息,目标日志数据15属于分桶1,目标日志数据46属于分桶2,目标日志数据78属于分桶3。
在本申请实施例中,通过预先对日志数据集中的各个日志数据按照各自的时间戳大小排序,在进行数据查询时,获取从日志数据集包含的日志数据中筛选多个目标日志数据;进而,根据待查询时间区间确定至少两个端点时间戳,并在各个目标日志数据中,分别获得至少两个端点时间戳各自对应的端点日志数据;基于各个端点日志数据确定至少一个日志数据子集,并基于除各个端点日志数据的之外的其他目标日志数据的标识信息,确定各个其他目标日志数据所属的日志数据子集,无需再对所有目标日志数据的时间戳进行回表查询,即可确定目标日志数据所属的日志数据子集,有效提高了数据查询效率。
在一种可选的实施方式中,通过以下方式实施步骤S22:
通过对多个目标日志数据的时间戳进行二分查找,获得至少两个端点时间戳各自对应的端点日志数据。
具体地,预先对日志数据按照时间戳大小排序,因此各个目标日志数据的时间戳也是有序的,针对一个端点时间戳,首先将此端点时间戳与中间的目标日志数据的时间戳进行比对,若此端点时间戳大于中间的目标日志数据的时间戳,则将下一次的比对范围缩小至大于中间的目标日志数据的时间戳,下一步继续将中间的目标日志数据的时间戳与此端点时间戳进行比对,直至找到与此端点时间戳相等的目标日志数据,即为端点时间戳对应的端点日志数据。
参阅图3B,其为本申请实施例中的一种二分查找时间戳方法的示意图,以需要查找的端点时间戳a为2021.2.1.14:15:16为例,首先将目标日志数据子集中的日志数据一分为二,取中间的目标日志数据7的时间戳2021.2.15.16:17:16与2021.2.1.14:15:16进行比对,目标日志数据7的时间戳大于端点时间戳a,则去除时间戳大于2021.2.15.16:17:16的目标日志数据,下一步将目标日志数据1-7的中间的目标日志数据4的时间戳与端点时间戳a进行比对,目标日志数据4的时间戳等于端点时间戳a,则目标日志数据4的时间戳为目标时间戳,目标日志数据4为端点时间戳a对应的端点日志数据。
在本申请实施例中,预先对日志数据按照时间戳大小排序,因此各个目标日志数据的时间戳也是有序的,对于有序的时间戳可以直接进行二分查找,获得端点时间戳对应的端点日志数据,相比于相关技术中对日志数据回表查询时间戳的方式,能够有效提高数据查询效率。
在一种可选的实施方式中,如图3A所示,在对各个目标日志数据的时间戳进行二分查找之前执行以下步骤S31-S32,并基于步骤S33的方式进行二分查找,具体过程如下:
S31:将多个目标日志数据按照各自的时间戳,划分得到多个日志数据组,并确定每个日志数据组各自的时间标识;
S32:将至少两个端点时间戳与各个日志数据组各自的时间标识进行比对,确定至少两个端点时间戳对应的目标日志数据组;
S33:通过对目标日志数据组中的目标日志数据的时间戳进行二分查找,获得至少两个端点时间戳各自对应的端点日志数据。
具体地,每个日志数据组包含对应的时间标识。确定目标日志数据组之后即可对目标日志数据子集中的目标日志数据的时间戳进行二分查找,获得端点时间戳对应的目标时间戳,然后将目标时间戳对应的日志数据作为端点日志数据。
以目标日志数据1-6为例,目标日志数据1的时间戳为2021.1.1,目标日志数据2的时间戳为2021.1.3,目标日志数据3的时间戳为2021.2.1,目标日志数据4的时间戳为2021.2.10,目标日志数据5的时间戳为2021.3.5,目标日志数据6的时间戳为2021.3.10。
其中,目标日志数据1和目标日志数据2的存在相同字段2021.1,则将目标日志数据1和目标日志数据2划分为日志数据组1,日志数据组1的时间标识为2021.1;目标日志数据3和目标日志数据4的存在相同字段2021.2,则将目标日志数据3和目标日志数据4划分为日志数据组2,日志数据组1的时间标识为2021.2;目标日志数据5和目标日志数据6的存在相同字段2021.3,则将目标日志数据5和目标日志数据6划分为日志数据组3,日志数据组3的时间标识为2021.3。
若需要查找的一个端点时间戳为2021.1.3,则将2021.1.3与上述3个日志数据组的时间标识比对,2021.1.3包含日志数据组1的时间标识2021.1,则确定日志数据组1为目标日志数据组,然后在目标日志数据组1中进行二分查找,获得2021.1.3对应的端点日志数据为目标日志数据2。
需要说明的是,上述所列举的相同字段是取时间戳的年+月字段为例进行举例说明的,实际上,时间戳可以精确到毫秒,相应地,在划分日志数据组时,也可参考更加详细的字段,如年+月+日,年+月+日+时,年+月+日+时+分等等,具体可根据实际情况灵活设置,如根据时间戳的精确程度、根据待查询时间区间及分桶需求等等,在此不做具体限定。
在本申请实施例中,比对端点时间戳与日志数据组的时间标识确定目标日志数据组,进而只需在目标日志数据组中查找端点日志数据,缩小了查找范围,减少查询时间,接下来通过二分查找定位端点时间戳对应的端点日志数据,对于有序时间戳的检索通过在已经排完序的时间戳列式存储中的二分查找来定位,简单的二分查找对内存数据非常高效。
在一种可选的实施方式中,通过以下方式获得每个日志数据组及其对应的时间标识:
首先将多个目标日志数据,按照各自的时间戳之间的相同字段,划分得到多个日志数据组;然后分别将各个日志数据组各自对应的相同字段,作为各个日志数据组各自的时间标识。
其中,每个日志数据组中包含的各个目标日志数据的时间戳具有同一相同字段。在按照目标日志数据的时间戳之间的相同字段划分日志数据组时,可以根据时间戳的精度设置相同字段的位数,例如日志数据的时间戳精确到毫秒时,则可以设置相同字段为年+月+日+时、年+月+日+时+分等,日志数据的时间戳精确到日期时,则可以设置相同字段为年+月等,以此类推即可。以相同字段为年+月为例,上文所列举的日志数据子集1包含的目标日志数据1和目标日志数据31,目标日志数据1的时间戳为2021.1.1.10:35:52(即日志数据1的产生时间为2021年1月1日10时35分52秒),目标日志数据31的时间戳为2021.1.31.15:36:45,则日志数据子集1包含的目标日志数据之间的同一相同字段为2021.1,即日志数据子集1的时间标识为2021.1。
在本申请实施例中,将各个目标日志数据的时间戳之间的相同字段,作为对应的日志数据子集的时间标识,能够通过日志数据子集的时间标识展示日志数据的时间戳范围,提高数据查询效率。
参阅图4,其为本申请实施例中的一种时间标识的构成示意图,对于一个日志数据子集b,日志数据子集b的端点日志数据的时间戳为2021.5.15和2021.5.20,设置相同字段为年+月,上述两个端点时间戳的相同字段为2021.5,则日志数据子集b的时间标识为2021.5。
在一种可选的实施方式中,通过以下方式确定端点时间戳对应的目标日志数据组:
针对每个日志数据组,分别执行以下操作:将一个日志数据组的时间标识分别与至少两个端点时间戳进行比对;若存在至少一个端点时间戳包含一个日志数据组的时间标识对应的字段,则确定一个日志数据子集为目标日志数据组。
例如,日志数据组1的时间标识为2021.1,日志数据组2的时间标识为2021.2,日志数据组3的时间标识为2021.3,以待查询时间区间的两个端点时间戳分别为2021.2.1.14:15:16和2021.2.16.15:18:16为例,上述两个端点时间戳均包含日志数据组2的时间标识2021.2,则确定日志数据组2为目标日志数据组。
在本申请实施例中,通过比对日志数据组的时间标识的字段是否包含于端点时间戳内,以确定目标日志数据组,能够快速定位目标日志数据组,进而只需在目标日志数据组中查询端点日志数据,提高了数据查询效率。
在一种可选的实施方式中,通过以下方式确定各个其他目标日志数据各自所属的日志数据子集:
根据一个日志数据子集对应的两个端点日志数据的标识信息,确定两个端点日志数据的标识信息之间的中间标识信息;将各个其他目标日志数据中标识信息为中间标识信息的目标日志数据,作为一个日志数据子集中包含的目标日志数据。
其中,确定各个其他目标日志数据所属的日志数据子集也即确定其他目标日志数据所属的分桶,例如,日志数据子集7的端点日志数据分别为目标日志数据15和目标日志数据21,目标日志数据15和目标日志数据21的标识信息之间的中间标识信息为16-20,日志数据子集8的端点日志数据分别是目标日志数据25和目标日志数据30,目标日志数据25和目标日志数据30之间的中间标识信息为25-30,各个其他目标日志数据分别是目标日志数据17、目标日志数据19、目标日志数据27,则目标日志数据17和目标日志数据19属于日志数据子集7,目标日志数据子集27属于日志数据子集8。
在本申请实施例中,只需要定位待查询时间区间的端点日志数据,即可通过比对剩余的目标日志数据的标识信息与端点日志数据的标识信息,获得其他目标日志数据所属的日志数据子集,无需通过一一比对日志数据的时间戳确定所属的日志数据子集,减少查询时间。
在一种可选的实施方式中,通过以下方式确定待查询时间区间的至少两个端点时间戳:
按照预设步长,将待查询时间区间划分为至少两个查询子区间,并将至少两个查询子区间的端点对应的时间戳,作为端点时间戳。
具体地,可以根据分桶需求设置预设步长,例如,对象需要查询2020年内每个季度的日志数据的分布情况,则可以将预设步长设置为3个月,或者对象需要查询2020年第15周每天的日志数据的分布情况,则可以将预设步长设置为1天;然后,根据预设步长将待查询时间区间划分为多个查询子区间,并将每个查询子区间的端点对应的时间戳均作为端点时间戳。
例如,对象需要查询2021年1月1日-2021年12月31日的日志数据,并且按月展示日志数据的数量,则将预设步长设置为1个月,按照预设步长将待查询时间区间划分为12个子区间,并将12个子区间的端点对应的时间戳作为端点时间戳。
需要说明的是,本申请实施例中待查询时间区间对应的日志数据子集(分桶)是和查询子区间一一对应的。
在本申请实施例中,通过对待查询时间区间进行划分,对象可以查看待查询时间区间内包含的日志数据的基础上,还可以查看日志数据的分布情况,提升了对象体验。
进一步地,在获取待查询时间区间包含的各个查询子区间以及各个查询子区间包含的目标日志数据的基础上,可以构建日志数据分布的直方图,以更加直观的向对象展示日志数据的分布情况。
在一种可选的实施方式中,通过以下方式构建日志数据分布的直方图:
步骤1:确定至少两个查询子区间各自包含的目标日志数据的数量;
步骤2:根据至少两个查询子区间,以及至少两个查询子区间各自包含的目标日志数据的数量,构建用于显示日志数据分布的直方图。
其中,在确定查询子区间包含的目标日志数据的数量时,若目标日志数据仅是通过待查询时间区间从日志数据集中筛选的,则目标日志数据的标识信息是连续的,因此直接根据查询子区间的两个端点日志数据的标识信息。即可确定查询子区间内包含的目标日志数据的数量。例如,查询子区间d的左端点日志数据为目标日志数据12,右端点日志数据为目标日志数据20,则查询子区间d包含目标日志数据12-20,数量为9。
若目标日志数据通过待查询时间区间从日志数据集中筛选的基础上,还通过其他查询条件进行进一步筛选,则获得的目标日志数据的标识信息不一定连续,因此不能直接通过端点日志数据的标识信息确定包含的目标日志数据的数量,需要根据除端点日志数据之外的其他目标日志数据的标识信息,确定其他目标日志数据所属的查询子区间,并且每确定一个目标日志数据所属的查询子区间,则将此查询子区间包含的目标日志数据的数量加一,直至所有目标日志数据都归属到每个查询子区间,则获得各个查询子区间包含的目标日志数据的数量。
例如,查询子区间4的左端点日志数据为目标日志数据21,右端点日志数据为目标日志数据25,查询子区间5的左端点日志数据为目标日志数据26,右端点日志数据为目标日志数据30,除端点日志数据之外的其他目标日志数据为:目标日志数据23、目标日志数据24、目标日志数据28,通过比对目标日志数据23的标识信息与两个查询子区间的端点日志数据的标识信息,确定目标日志数据23属于查询子区间4,则查询子区间4的目标日志数量加1,更新为3,目标日志数据24属于查询子区间4,则查询子区间4的目标日志数量加1,更新为4,目标日志数据28属于查询子区间5,则查询子区间5的目标日志数量加1,更新为3,此时所有目标日志数据都归属到查询子区间4和5,查询子区间4包含的目标日志数据的数量为4,查询子区间5包含的目标日志数据的数量为3。
在确定各查询子区间各自包含的目标日志数据的数量后,则可以以查询子区间为横轴,以各查询子区间包含的目标日志数据的数量为纵轴建立直方图。
如图5所示,为本申请实施例中的一种日志数据分布直方图,其中,查询子区间1:2021.1-2021.3的端点日志数据的标识信息为1和10,查询子区间2:2021.4-2021.6的端点日志数据的标识信息为11和30,查询子区间3:2021.7-2021.9的端点日志数据的标识信息为31和45,查询子区间4:2021.10-2021.12的端点日志数据的标识信息为46和50,除端点日志数据之外的其他目标日志数据为:目标日志数据3、6、7、目标日志数据13-20、目标日志数据36-41、目标日志数据48,则目标日志数据3、6、7属于查询子区间1,目标日志数据13-20,目标日志数据36-41属于查询子区间3,目标日志数据48属于查询子区间4,查询子区间1包含的目标日志数据的数量为5,查询子区间2包含的目标日志数据的数量为10,查询子区间3包含的目标日志数据的数量为8,查询子区间4包含的目标日志数据的数量为3,图5能够直观展示2021年的四个季度(每个季度为一个查询子区间)的日志数据分布情况。因此,通过上述方式构建日志数据分布的直方图,能够为对象提供直观的数据分布情况,提升对象体验。
需要说明的是,在具体实施中,以毫秒为单位的日志数据,一天内产生的日志数据即可达到8640万,而三个月的日志数据即可达到数亿的规模,因此通过标识信息确定目标日志数据的方式,无需从数亿规模的日志数据中将待查询时间区间内的日志数据抽出,能够有效提升数据查询效率。
参阅图6所示,其为本申请实施例中的一种直方图计算方法的示意图,其中,待查询时间区间为[t0,t2),划分两个分桶,分桶1的边界(端点时间戳)是t0和t1,分桶2的边界是t1和t2,t0对应端点日志数据101,t1对应端点日志数据151,t2对应端点日志数据178,在确定分桶边界后,需要确定剩余的目标日志数据所属的分桶,相关技术中采用对每条命中的日志回表查询时间戳的方式来实现,即对于剩余的目标日志数据,回表查询各个目标日志数据的时间戳,并且与分桶边界的时间戳进行比对,这种方式带来大量的(几万/几十万或更多)回表操作,因此性能较慢。
为了对上述问题进行改进,本申请实施例采用了以下方式:
第一,改变了日志数据的组织方式,通过对日志按照时间戳排序来加快对时间范围的搜索。在原来的索引中,日志的时间戳是无序的,对于指定时间范围的检索需要处理大量的时间戳索引项(几十万到上亿),我们通过时间戳有序化将时间范围检索简化为只需要对待查询时间范围的端点进行处理(处理的时间戳索引项从几十万/上亿降低为2个)。
第二,只需要通过分桶(即日志数据子集)的边界(即端点日志数据)确定桶中日志标识信息的范围(几次索引访问取代数万/数十万次回表操作),分桶内部的点直接通过跟边界比较来确定所属分桶。
参阅图7,其为本申请实施例中的另一种直方图计算方法的示意图,待查询时间区间为[t0,t2),划分两个分桶,分桶1的边界(端点时间戳)是t0和t1,分桶2的边界是t1和t2,t0对应端点日志数据101,t1对应端点日志数据151,t2对应端点日志数据178,在确定分桶边界后,需要确定剩余的目标日志数据所属的分桶,则只需要将剩余的目标日志数据的标识信息与分桶边界的端点日志数据的标识信息进行比对,即可确定剩余的目标日志数据所属的分桶,无需回表查询时间戳。
在本申请实施例中,对于指定时间范围内的日志数据,仅需定位分桶边界,桶内日志无需回表查询时间戳,对比相关技术中对所有日志回表查询时间戳的方式,节约了回表查询时间,提高数据查询效率。
第三,为每个日志数据组设置时间标识。
具体地,指定时间搜索范围:timestmap>2021-09-28:00:00T00000 andtimestmap<2021-09-29:00:00T000000,这个时间范围是一天,假设时间单位是毫秒,而且每一毫秒都有数据,可能涉及的索引项数量是:24*60*60*1000=8640万个。也就是说,要完成这个搜索,需要扫描8640万个索引项中的每一个。对于高基维范围搜索算法的复杂度是o(n),其中n是索引项的数量,也就是基数。在一个100亿条日志的索引中,目前观测到这个索引项的数据量大概在30G左右,如果用100MB/s的速度去读的话,仅加载这些索引数据就需要300秒。经过时序索引优化,本申请只需要加载指定时间范围的两个端点的docid即可。
由于本申请对有序的日志数据的列式存储建立了时间标识,大部分二分检索的IO都会发生在对时间标识的检索,由于时间标识数据量比较小,基本上1-2次IO即可完成,因此,整个二分检索的过程只需要耗费3-4次IO。如前,对于给定的时间范围,需要先确定范围端点所对应的docid,这个可以通过有序的时间戳列存里面查找得到。通过为每个日志数据子集设置时间标识,能够快速定位目标日志数据子集,进而只需在目标日志数据子集内进行二分查找,极大的提高了数据查询效率。
参阅图8,其为本申请实施例中的一种数据查询方法的具体流程示意图,该方法的具体实施流程如下:
S801:服务器将日志数据集中的各个日志数据按照各自的时间戳大小排序,并按照排序结果生成各个日志数据的标识信息;
S802:服务器根据待查询时间区间以及目标查询条件,从日志数据集包含的日志数据中筛选多个目标日志数据;
S803:服务器按照预设步长将待查询时间区间划分为至少两个查询子区间,并将各个查询子区间的端点对应的时间戳作为端点时间戳;
S804:服务器将待查询时间区间的各个端点时间戳与各个日志数据组的时间标识进行比对,获得目标日志数据组;
S805:服务器对目标日志数据组中的日志数据的时间戳进行二分查找,获得各个端点时间戳各自对应的端点日志数据;
S806:服务器比对各个查询子区间的端点日志数据的标识信息与除端点日志数据之外的其他目标日志数据的标识信息,确定各个查询子区间中各自包含的目标日志数据的数量;
S807:服务器根据各个查询子区间,以及各个查询子区间各自包含的目标日志数据的数量,构建用于显示日志数据分布的直方图。
需要说明的是,上述图8只是对本申请实施例中的数据查询方法的简单举例说明,基于本申请实施例中的方法进行数据查询,能够有效提高数据查询效率,可以应用到大规模日志检索场景。
参阅图9,其为本申请实施例中的一种数据查询方法的逻辑示意图。
在本申请实施例中,对象可在终端设备输入待查询时间区间和查询子区间步长以及目标查询条件,由终端设备将待查询时间区间和查询子区间步长以及目标查询条件通知服务器。
以待查询时间区间为2019年1月-2019年12月,查询子区间步长为3个月为例,服务器将待查询区间划分为4个查询子区间,端点时间戳分别是2019.1.1、2019.3.31、2019.4.1、2019.6.30、2019.7.1、2019.9.30、2019.10.1和2019.12.31,进而,服务器在各个日志数据组中查找各个端点时间戳各自对应的端点日志数据,其中,2019.1.1对应端点日志数据1061,2019.3.31对应端点日志数据1160,2019.4.1对应端点日志数据1161,2019.6.30对应端点日志数据1360,2019.7.1对应端点日志数据1361,2019.9.31对应端点日志数据1500,2019.10.1对应端点日志数据1501,2019.12.31对应端点日志数据1550,然后,服务器基于各个端点日志数据的标识信息,以及除各个端点日志数据以外的其他目标日志数据的标识信息,确定2019.1-2019.3.31中包含的日志数据数量为50个,2019.4.1-2019.6.30包含日志数据数量为100个,2019.7.1-2019.9.30包含日志数据数量为75个,2019.10.1-2019.12.31包含日志数据数量为25个。
最后,服务器将各个查询子区间包含的日志数据数量发送给终端设备,终端设备构建用于展示日志数据分布情况的直方图,并展示给对象。
在本申请实施例中,通过预先对日志数据集中的各个日志数据按照各自的时间戳大小排序,在进行数据查询时,获取从日志数据集包含的日志数据中筛选的多个目标日志数据;进而,根据待查询时间区间确定至少两个端点时间戳,并在各个目标日志数据中,分别获得至少两个端点时间戳各自对应的端点日志数据;基于各个端点日志数据确定待查询时间区间对应的至少一个日志数据子集,并基于除各个端点日志数据的之外的其他目标日志数据的标识信息,确定各个其他目标日志数据所属的日志数据子集,无需再对所有目标日志数据的时间戳进行回表查询,即可确定目标日志数据所属的日志数据子集,有效提高了数据查询效率。
为了验证本申请中的数据查询方法提高数据查询效率的有效性,本申请实施例还提供了基于ES官方数据集对不同类型磁盘的测试结果:
其中,测试数据集包含120亿条document(文件),每个ES segment(部分)为5G,包含2400万条document,每个查询语句命中4000万条document,为防止命中缓存,查询时间区间不重叠。
从上述表格可知,对高性能盘、非易失性内存主机控制器接口规范下的固态硬盘(NVMe SSD盘)和SATA接口硬盘(SATA HDD盘)进行测试,直方图查询分别可以得到8倍、6.3倍和3.9倍的性能提升。
基于相同的发明构思,本申请实施例还提供一种数据查询装置。如图10所示,其为数据查询装置1000的结构示意图,可以包括:
获取单元1001,用于获取从日志数据集包含的日志数据中筛选的多个目标日志数据,日志数据集中的各个日志数据按照各自的时间戳大小排序,且每个日志数据对应的标识信息是基于对应的排序结果生成的;
第一确定单元1002,用于根据待查询时间区间确定至少两个端点时间戳,并从多个目标日志数据中确定至少两个端点时间戳各自对应的端点日志数据;
第二确定单元1003,用于基于各个端点日志数据确定待查询时间区间对应的至少一个日志数据子集,并基于除各个端点日志数据之外的其他目标日志数据的标识信息,确定各个其他目标日志数据各自所属的日志数据子集。
可选的,第一确定单元1002具体用于:
通过对多个目标日志数据的时间戳进行二分查找,获得至少两个端点时间戳各自对应的端点日志数据。
可选的,装置还包括划分单元1004,用于:
将多个目标日志数据按照各自的时间戳,划分得到多个日志数据组,并确定每个日志数据组各自的时间标识;
将至少两个端点时间戳与各个日志数据组各自的时间标识进行比对,确定至少两个端点时间戳对应的目标日志数据组;
第一确定单元1002具体用于:
通过对目标日志数据组中的目标日志数据的时间戳进行二分查找,获得至少两个端点时间戳各自对应的端点日志数据。
可选的,划分单元1004具体用于:
针对每个日志数据子集,分别执行以下操作:
将一个日志数据组的时间标识分别与至少两个端点时间戳进行比对;
若存在至少一个端点时间戳包含一个日志数据组的时间标识对应的字段,则确定一个日志数据组为目标日志数据组。
可选的,通过以下方式获得每个日志数据组各自的时间标识:
将多个目标日志数据,按照各自的时间戳之间的相同字段,划分得到多个日志数据组,每个日志数据组中包含的各个目标日志数据的时间戳具有同一相同字段;
分别将各个日志数据组各自对应的相同字段,作为各个日志数据组各自的时间标识。
可选的,第二确定单元1003具体用于:
对于每个日志数据子集,分别执行以下操作:
根据一个日志数据子集对应的两个端点日志数据的标识信息,确定两个端点日志数据的标识信息之间的中间标识信息;
将各个其他目标日志数据中标识信息为中间标识信息的目标日志数据,作为一个日志数据子集中包含的目标日志数据。
可选的,第一确定单元1002具体用于:
按照预设步长,将待查询时间区间划分为至少两个查询子区间,并将至少两个查询子区间的端点对应的时间戳,作为端点时间戳。
可选的,装置还包括构建单元1005,用于:
确定至少两个查询子区间各自包含的目标日志数据的数量;
根据至少两个查询子区间,以及至少两个查询子区间各自包含的目标日志数据的数量,构建用于显示日志数据分布的直方图。
在本申请实施例中,通过预先对日志数据集中的各个日志数据按照各自的时间戳大小排序,在进行数据查询时,获取从日志数据集包含的日志数据中筛选的多个目标日志数据;进而,根据待查询时间区间确定至少两个端点时间戳,并在各个目标日志数据中,分别获得至少两个端点时间戳各自对应的端点日志数据;基于各个端点日志数据确定待查询时间区间对应的至少一个日志数据子集,并基于除各个端点日志数据的之外的其他目标日志数据的标识信息,确定各个其他目标日志数据所属的日志数据子集,无需再对所有目标日志数据的时间戳进行回表查询,即可确定目标日志数据所属的日志数据子集,有效提高了数据查询效率。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。在一种实施例中,该电子设备可以是服务器,如图1所示的服务器120。在该实施例中,电子设备的结构可以如图11所示,包括存储器1101,通讯模块1103以及一个或多个处理器1102。
存储器1101,用于存储处理器1102执行的计算机程序。存储器1101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1101可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1101也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器1101是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器1101可以是上述存储器的组合。
处理器1102,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1102,用于调用存储器1101中存储的计算机程序时实现上述数据查询方法。
通讯模块1103用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1101、通讯模块1103和处理器1102之间的具体连接介质。本申请实施例在图11中以存储器1101和处理器1102之间通过总线1104连接,总线1104在图11中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1104可以分为地址总线、数据总线、控制总线等。为便于描述,图11中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
存储器1101中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的数据查询方法。处理器1102用于执行上述的数据查询方法,如图2所示。
在另一种实施例中,电子设备也可以是其他电子设备,如图1所示的终端设备110。在该实施例中,电子设备的结构可以如图12所示,包括:通信组件1212、存储器1220、显示单元1230、摄像头1240、传感器1250、音频电路1260、蓝牙模块1270、处理器1280等部件。
通信组件1212用于与服务器进行通信。在一些实施例中,可以包括电路无线保真(Wireless Fidelity,WiFi)模块,WiFi模块属于短距离无线传输技术,电子设备通过WiFi模块可以帮助用户收发信息。
存储器1220可用于存储软件程序及数据。处理器1280通过运行存储在存储器1220的软件程序或数据,从而执行终端设备110的各种功能以及数据处理。存储器1220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器1220存储有使得终端设备110能运行的操作系统。本申请中存储器1220可以存储操作系统及各种应用程序,还可以存储执行本申请实施例数据查询方法的计算机程序。
显示单元1230还可用于显示由用户输入的信息或提供给用户的信息以及终端设备110的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元1230可以包括设置在终端设备110正面的显示屏1232。其中,显示屏1232可以采用液晶显示器、发光二极管等形式来配置。显示单元1230可以用于显示本申请实施例中的数据查询用户界面等。
显示单元1230还可用于接收输入的数字或字符信息,产生与终端设备110的用户设置以及功能控制有关的信号输入,具体地,显示单元1230可以包括设置在终端设备110正面的触摸屏1231,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
其中,触摸屏1231可以覆盖在显示屏1232之上,也可以将触摸屏1231与显示屏1232集成而实现终端设备110的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元1230可以显示应用程序以及对应的操作步骤。
摄像头1240可用于捕获静态图像,用户可以将摄像头1240拍摄的图像通过应用发布评论。摄像头1240可以是一个,也可以是多个。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器1280转换成数字图像信号。
终端设备还可以包括至少一种传感器1250,比如加速度传感器1251、距离传感器1252、指纹传感器1253、温度传感器1254。终端设备还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路1260、扬声器1261、传声器1262可提供用户与终端设备110之间的音频接口。音频电路1260可将接收到的音频数据转换后的电信号,传输到扬声器1261,由扬声器1261转换为声音信号输出。终端设备110还可配置音量按钮,用于调节声音信号的音量。另一方面,传声器1262将收集的声音信号转换为电信号,由音频电路1260接收后转换为音频数据,再将音频数据输出至通信组件1212以发送给比如另一终端设备110,或者将音频数据输出至存储器1220以便进一步处理。
蓝牙模块1270用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备可以通过蓝牙模块1270与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
处理器1280是终端设备的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器1220内的软件程序,以及调用存储在存储器1220内的数据,执行终端设备的各种功能和处理数据。在一些实施例中,处理器1280可包括一个或多个处理单元;处理器1280还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器1280中。本申请中处理器1280可以运行操作系统、应用程序、用户界面显示及触控响应,以及本申请实施例的数据查询方法。另外,处理器1280与显示单元1230耦接。
在一些可能的实施方式中,本申请提供的数据查询方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的数据查询方法中的步骤,例如,电子设备可以执行如图2中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机程序,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的计算机程序,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。计算机程序可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序命令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序命令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的命令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序命令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的命令产生包括命令装置的制造品,该命令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序命令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的命令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (15)

1.一种数据查询方法,其特征在于,该方法包括:
获取从日志数据集包含的日志数据中筛选的多个目标日志数据,所述日志数据集中的各个日志数据按照各自的时间戳大小排序,且每个日志数据对应的标识信息是基于对应的排序结果生成的;
根据待查询时间区间确定至少两个端点时间戳,并从所述多个目标日志数据中确定所述至少两个端点时间戳各自对应的端点日志数据;
基于各个端点日志数据确定所述待查询时间区间对应的至少一个日志数据子集,并基于除所述各个端点日志数据之外的其他目标日志数据的标识信息,确定各个其他目标日志数据各自所属的日志数据子集。
2.如权利要求1所述的方法,其特征在于,所述从所述多个目标日志数据中确定所述至少两个端点时间戳各自对应的端点日志数据,包括:
通过对所述多个目标日志数据的时间戳进行二分查找,获得所述至少两个端点时间戳各自对应的端点日志数据。
3.如权利要求2所述的方法,其特征在于,所述通过对所述多个目标日志数据的时间戳进行二分查找,获得所述至少两个端点时间戳各自对应的端点日志数据之前,还包括:
将所述多个目标日志数据按照各自的时间戳,划分得到多个日志数据组,并确定每个日志数据组各自的时间标识;
将所述至少两个端点时间戳与所述各个日志数据组各自的时间标识进行比对,确定所述至少两个端点时间戳对应的目标日志数据组;
所述通过对所述多个目标日志数据的时间戳进行二分查找,获得所述至少两个端点时间戳各自对应的端点日志数据,具体包括:
通过对所述目标日志数据组中的目标日志数据的时间戳进行二分查找,获得所述至少两个端点时间戳各自对应的端点日志数据。
4.如权利要求3所述的方法,其特征在于,所述将所述至少两个端点时间戳与所述各个日志数据组各自的时间标识进行比对,确定所述至少两个端点时间戳对应的目标日志数据组,包括:
针对每个日志数据组,分别执行以下操作:
将一个日志数据组的时间标识分别与所述至少两个端点时间戳进行比对;
若存在至少一个所述端点时间戳包含所述一个日志数据组的时间标识对应的字段,则确定所述一个日志数据组为所述目标日志数据组。
5.如权利要求3所述的方法,其特征在于,所述将所述多个目标日志数据按照各自的时间戳,划分得到多个日志数据组,并确定每个日志数据组各自的时间标识,包括:
将所述多个目标日志数据,按照各自的时间戳之间的相同字段,划分得到多个日志数据组,每个日志数据组中包含的各个目标日志数据的时间戳具有同一相同字段;
分别将各个日志数据组各自对应的相同字段,作为所述各个日志数据组各自的时间标识。
6.如权利要求1所述的方法,其特征在于,所述基于除所述各个端点日志数据之外的其他目标日志数据的标识信息,确定各个其他目标日志数据各自所属的日志数据子集,包括:
对于每个日志数据子集,分别执行以下操作:
根据一个日志数据子集对应的两个端点日志数据的标识信息,确定所述两个端点日志数据的标识信息之间的中间标识信息;
将各个其他目标日志数据中标识信息为所述中间标识信息的目标日志数据,作为所述一个日志数据子集中包含的目标日志数据。
7.如权利要求1~6任一所述的方法,其特征在于,所述根据待查询时间区间确定至少两个端点时间戳,包括:
按照预设步长,将所述待查询时间区间划分为至少两个查询子区间,并将所述至少两个查询子区间的端点对应的时间戳,作为所述端点时间戳。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
确定所述至少两个查询子区间各自包含的目标日志数据的数量;
根据所述至少两个查询子区间,以及所述至少两个查询子区间各自包含的目标日志数据的数量,构建用于显示日志数据分布的直方图。
9.一种数据查询装置,其特征在于,包括:
获取单元,用于获取从日志数据集包含的日志数据中筛选的多个目标日志数据,所述日志数据集中的各个日志数据按照各自的时间戳大小排序,且每个日志数据对应的标识信息是基于对应的排序结果生成的;
第一确定单元,用于根据待查询时间区间确定至少两个端点时间戳,并从所述多个目标日志数据中确定所述至少两个端点时间戳各自对应的端点日志数据;
第二确定单元,用于基于所述端点日志数据确定所述待查询时间区间对应的至少一个日志数据子集,并基于除所述各个端点日志数据之外的其他目标日志数据的标识信息,确定各个其他目标日志数据各自所属的日志数据子集。
10.如权利要求9所述的装置,其特征在于,所述第一确定单元具体用于:
通过对所述多个目标日志数据的时间戳进行二分查找,获得所述至少两个端点时间戳各自对应的端点日志数据。
11.如权利要求10所述的装置,其特征在于,所述装置还包括划分单元,用于:
将所述多个目标日志数据按照各自的时间戳,划分得到多个日志数据组,并确定每个日志数据组各自的时间标识;
将所述至少两个端点时间戳与所述各个日志数据组各自的时间标识进行比对,确定所述至少两个端点时间戳对应的目标日志数据组;
所述第一确定单元具体用于:
通过对所述目标日志数据组中的目标日志数据的时间戳进行二分查找,获得所述至少两个端点时间戳各自对应的端点日志数据。
12.如权利要求11所述的装置,其特征在于,所述划分单元具体用于:
针对每个日志数据组,分别执行以下操作:
将一个日志数据组的时间标识分别与所述至少两个端点时间戳进行比对;
若存在至少一个所述端点时间戳包含所述一个日志数据组的时间标识对应的字段,则确定所述一个日志数据组为所述目标日志数据组。
13.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~8中任一所述方法的步骤。
14.一种计算机可读存储介质,其特征在于,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行权利要求1~8中任一所述方法的步骤。
15.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从所述计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行权利要求1~8中任一所述方法的步骤。
CN202210425373.8A 2022-04-21 2022-04-21 一种数据查询方法、装置、电子设备和存储介质 Pending CN116975118A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210425373.8A CN116975118A (zh) 2022-04-21 2022-04-21 一种数据查询方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210425373.8A CN116975118A (zh) 2022-04-21 2022-04-21 一种数据查询方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN116975118A true CN116975118A (zh) 2023-10-31

Family

ID=88471814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210425373.8A Pending CN116975118A (zh) 2022-04-21 2022-04-21 一种数据查询方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116975118A (zh)

Similar Documents

Publication Publication Date Title
US10447772B2 (en) Managed function execution for processing data streams in real time
CN107506451B (zh) 用于数据交互的异常信息监控方法及装置
CN108874971B (zh) 一种应用于海量标签化实体数据存储的工具和方法
US10353756B2 (en) Cluster-based processing of unstructured log messages
CN110362544B (zh) 日志处理系统、日志处理方法、终端及存储介质
CN106528847A (zh) 一种海量数据的多维度处理方法及系统
CN107861981B (zh) 一种数据处理方法及装置
US20210357461A1 (en) Method, apparatus and storage medium for searching blockchain data
US9930113B2 (en) Data retrieval via a telecommunication network
CN111859132A (zh) 一种数据处理方法、装置及智能设备、存储介质
CN109101607B (zh) 用于搜索区块链数据的方法、装置及存储介质
CN108228322B (zh) 一种分布式链路跟踪、分析方法及服务器、全局调度器
CN109753596B (zh) 用于大规模网络数据采集的信源管理与配置方法和系统
CN111625552B (zh) 数据收集方法、装置、设备和可读存储介质
CN110704476A (zh) 数据处理方法、装置、设备及存储介质
EP3872703B1 (en) Method and device for classifying face image, electronic device and storage medium
CN103995807A (zh) 一种基于Web架构下海量数据查询和二次处理的方法
CN111694866A (zh) 数据搜索及存储方法、数据搜索系统、装置、设备及介质
CN110941530A (zh) 监控数据的获取方法、装置、计算机设备和存储介质
CN110825594B (zh) 数据的上报、下发方法、客户端及服务器
CN112328658B (zh) 用户档案数据处理方法、装置、设备及存储介质
CN113722600A (zh) 应用于大数据的数据查询方法、装置、设备及产品
CN107430633B (zh) 用于数据存储的系统及方法和计算机可读介质
CN116962516A (zh) 一种数据查询方法、装置、设备及存储介质
CN116975118A (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