CN116186099A - 数据查询方法、装置、电子设备和存储介质 - Google Patents
数据查询方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116186099A CN116186099A CN202310184097.5A CN202310184097A CN116186099A CN 116186099 A CN116186099 A CN 116186099A CN 202310184097 A CN202310184097 A CN 202310184097A CN 116186099 A CN116186099 A CN 116186099A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- query
- data query
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供的数据查询方法、装置、电子设备和存储介质,具体涉及数据查询领域,该方法包括:在数据查询系统在接收数据查询请求后,分析该数据查询请求对应的用户的个性化数据查询需求,根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据,对所述至少一个数据进行统计分析,可以得到满足用户个性化数据查询需求的查询数据查询结果,提高数据查询的性能。
Description
技术领域
本公开涉及数据查询领域,具体涉及一种数据查询方法、装置、电子设备和存储介质。
背景技术
随着信息通信技术的高速发展,使用信息通信技术实现信息共享的过程中,用户通信会产生的大量数据,由于用户的个性化数据查询需求需要对所产生的大量数据进行查询分析。
现有技术采用的分布式存储方式有分布式文件存储和分布式列存储,可满足对海量数据的存储需求,分布式文件存储无法对数据进行高效的随机读取,但可以适用于批量数据分析的场景,而分布式列存储可以对数据进行高效的随机读取,但不适用于批量数据分析的场景,且现有的分布式存储方式结合难以满足用户的个性化数据查询需求。
因此,现有技术在满足用户的个性化数据查询需求时,数据查询的效率较低。
发明内容
本申请实施例提供了一种数据查询方法、装置、电子设备和存储介质,能够解决现有技术在满足用户的个性化数据查询需求时,数据查询的效率较低的问题。
第一方面,本申请实施例提供了一种数据查询方法,方法包括:
接收数据查询请求;
根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据;其中,所述目标对象包括第一数据库、第二数据库和内存知识库;所述第一数据库用于存储话单文件在第一时间段内产生的数据,以及所述话单文件产生的高频数据;所述第二数据库用于存储所述第一数据库在第二时间段内传输的数据,以及所述第一数据库传输的低频数据;
对所述至少一个数据进行统计分析,得到数据查询结果。
在一个可能实现的实施例中,所述数据查询请求包括目标查询需求,所述根据所述数据查询请求,在目标对象中查询数据,得到至少一个数据,数据查询方法包括:
根据所述目标查询需求,确定目标对象,所述目标对象为第一数据库、第二数据库和内存知识库中的至少一个;
在所述目标对象中查询数据,得到至少一个数据。
在一个可能实现的实施例中,所述数据查询请求包括查询时间段和查询时延要求,所述根据所述目标查询需求,确定目标对象,数据查询方法包括:
若所述数据查询请求满足第一预设条件,则确定所述目标对象为第一数据库,所述第一预设条件为所述查询时延要求小于第一预设时长、且所述查询时间段小于所述第二预设时长;
若所述数据查询请求满足所述第二预设条件,则确定所述目标查询数据库为第二数据库,所述第二预设条件为查询时延要求大于或等于所述第一预设时长、且所述查询时间段大于或等于所述第二预设时长。
在一个可能实现的实施例中,所述根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据,数据查询方法可以包括:
将所述第一数据库和所述第二数据库中的第一数据存储至内存知识库;所述第一数据包括所述第一数据库中的数据和所述第二数据库中的数据;所述内存知识库是基于所述第一数据构建的;
对所述第一数据进行数据处理,得到数据处理结果;
根据所述数据处理结果,生成所述第一数据的内存任务;
根据所述数据查询请求,在所述内存知识库中查询数据,得到目标内存任务中的至少一个数据,所述目标内存任务为所述内存任务中的至少一个内存任务。
在一个可能实现的实施例中,数据查询方法还可以包括:
调整所述第二数据库的分区参数,所述分区参数用于确定第二数据库中的第二数据存储的分区数量;
根据分区类型对所述第二数据库中的第二数据进行分区,确定所述分区数量的存储分区中的目标存储分区,所述分区类型基于所述第二数据库中的主键确定,所述第二数据库中的分区类型包括范围分区和哈希分区。
第二方面,本申请实施例提供了一种数据查询装置,数据查询装置包括:
接收模块,用于接收数据查询请求;
查询模块,用于根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据;其中,所述目标对象包括第一数据库、第二数据库和内存知识库;所述第一数据库用于存储话单文件在第一时间段内产生的数据,以及所述话单文件产生的高频数据;所述第二数据库用于存储所述第一数据库在第二时间段内传输的数据,以及所述第一数据库传输的低频数据;
统计分析模块,用于对所述至少一个数据进行统计分析,得到数据查询结果。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时执行实现上述数据查询方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述数据查询实施例的各个过程。
第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行实现上述数据查询各个过程。
本申请实施例提供的数据查询方法、装置、电子设备、计算机可读存储介质和计算机程序产品,该方法包括:首先,在数据查询系统在接收数据查询请求后,分析该数据查询请求对应的用户的个性化数据查询需求,其次,根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据,最后,对所述至少一个数据进行统计分析,可以得到满足用户个性化数据查询需求的查询数据查询结果,提高数据查询的性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本申请实施例提供的结构化查询语句主主复制管理器的结构图;
图2为本申请实施例提供的第二数据库(Kudu)的结构图;
图3为本申请实施例提供的一种数据查询方法的流程图;
图4为本申请实施例提供的一种数据查询方法的数据存储的示意图;
图5为本申请实施例提供的确定目标对象的示意图;
图6为本申请实施例提供的内存计算方法的示意图;
图7为本申请实施例提供的一种数据查询方法的结构框图;
图8为本申请实施例提供的一种数据查询方法的电子设备的结构图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
随着信息通信技术的高速发展,用户在通信过程中所产生的数据量激增,对于用户的个性化数据查询需求,大致可以分为三种:实时数据查询需求,历史数据查询需求以及复杂数据查询需求。
对于实时数据查询需求而言,是针对于近期数据进行数据查询统计分析的,例如,对于用户给出的话单文件,查询分析话单文件中一个时长内的某种业务类型的业务用量、用户数或金额等,用户可输入查询条件,并触发数据查询系统的统计分析,可在秒级时延中得到用户查询条件对应的数据查询结果,查询时延要求较高,即获取数据查询结果的实时性较高,其中,一个时长可以包括一个月、几天,甚至几个小时。
对于历史数据查询需求,是针对于历史数据进行数据查询统计分析,例如,对于用户给出的话单文件,查询话单文件中近5年的流量、来出访收入变动等,同样地,用户可输入查询条件,并触发数据查询系统的统计分析,由于查询时间段较长,数据查询系统无法实时反馈,可在一段时间后中得到用户查询条件对应的数据查询结果,查询时间段较长,查询时延要求较低。
而对于复杂数据查询需求而言,是针对于各类数据的复杂统计分析,例如,用户需要查询某月的语音业务(Voice over LTE,VoLTE)的用户数占比。需要在话单文件的基础上进行数据去重、累加等操作,而后,对所查询得到的数据进行统计分析,得到对应的数据查询结果,然而,复杂数据查询需求的数据查询结果采用结构化查询语句(Structured QueryLanguage,SQL)编写相应的数据查询代码,分析速度较慢,为提高数据查询系统的数据查询速度,可以采用内存计算。
现有海量数据查询的方案大致分为三种:第一种方案是HBase+Phoenix,HBase用于存储海量数据,Phoenix用于数据查询和分析。第二种方案是HDFS+Hive,HDFS用于存储海量数据,Hive用于海量数据的查询和分析。第三种方案是Kudu+Impala,Kudu数据库作为底层存储,Impala负责解析和执行SQL。第一种方案更多的用于实时分析,可满足实时数据查询需求,但是无法满足历史数据查询需求和复杂数据查询需求,第二种方案主要适用于历史数据的离线分析,可满足需求历史数据查询需求,但是无法满足实时数据查询需求和复杂数据查询需求。第三种方案主要是Kudu对Hdfs和HBase功能上的补充,能提供快速的分析和实时计算能力。方案三可满足需求历史数据查询需求,但是无法满足实时数据查询需求和复杂数据查询需求。
针对用户个性化的数据查询需求,目前海量数据的数据存储分析主要有HDFS和HBase两种方案,但两者都具有一定程度上的劣势。
HDFS使用列式存储格式Apache Parquet和Apache ORC,适合离线分析,但其不支持单条纪录级别的update操作,无法进行随机读写。
HBase可以进行高效随机读写,但不适用于基于SQL的数据分析方向和批量数据分析的场景。
HDFS+Hive缺点如下:
第一,因为数据存储在HDFS上,要先获取namenode,还要找到副本进行操作,导致修改、删除成本太高。因此Hive不支持记录级别的增删改操作,即不支持事务处理,但是可以通过查询创建新表来将结果导入到文件中,所以主要用来做联机分析处理,而不是联机事物处理。
第二,Hive延迟较高,并且数据分布不均匀,容易造成数据大量集中于一点,造成数据热点,从而产生数据倾斜,不适用于漫游话单查询业务的实时分析。数据倾斜的主要表现在于:任务长时间维持在95%~100%之间,或者100%附近,由于其处理的数据量和其它的reduce差异过大,单一reduce处理的记录数和平均记录数相差太大,通常达到好几倍之多,最长时间远大于平均时间,因此存在少量reduce子任务没有完成的情况,导致长时间无法出查询结果,甚至超时后任务自动停止。
HBase+Phoenix缺点如下:
第一,HBase不支持SQL查询和二级索引,导致无法更好的利用现有的经验来查询HBase。漫游话单查询统计经常依据特定字段(如called number、IMSI、APN、SGW、IMEI等)组合进行复杂SQL脚本执行,因此HBase的此特性无法满足需求。
第二,Phoenix查询分析海量数据要求严格,where查找条件字段必须全部创建索引,才能使用上索引,否则导致海量数据;基本不支持group by进行统计汇总,无法满足国际漫游业务高度个性化历史数据查询的需求。
第三,最新版本对HBase、Hadoop等有严格版本控制,由于Phoenix作为HBase中的一个组件启动,与HBase强相关关系,对于已经用上HBase的业务,要升级HBase版本适配Phoenix代价太大,且HBase元数据容易遭到破坏。
综上所述,无论是HDFS+Hive还是HBase+Phoenix,在国际漫游结算业务日益增长的海量数据记录上,实现高效随机读写和离线分析需求上均无法达到均衡最优解。
鉴于上述研究发现,本申请实施例提供了一种数据查询方法,以解决现有技术中存在的上述技术问题。
本申请的技术构思在于:采用Mysql+MMM+Kudu+Impala+Hue数据查询方法,可有效应对于多种个性化的数据查询需求,提高数据查询效率。
Mysql主主复制管理器(Master-Master Replication Manager for Mysql,Mysql-MMM)是Google的开源项目(Perl脚本)。如图1所示,MMM基于Mysql Replication做的扩展架构,主要用来监控Mysql主主复制并做失败转移。其原理是将真实数据库节点的IP(RIP)映射为虚拟IP(VIP)集。Mysql-MMM的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用Mysql之上,当某一台Mysql宕机时,监管会将VIP迁移至其他Mysql。在整个监管过程中,需要在Mysql中添加相关授权用户,以便让Mysql可以支持监理机的维护。
Mysql-MMM具备以下集群特点:第一个特点是高效随机读写,其支持生产业务数据的增删改查操作。第二个特点是高可用性,其支持故障检测、迁移以及多节点备份。第三个特点是可伸缩性,其便于新增数据库节点,方便扩容。第四个特点是负载均衡,其支持切换某服务访问某节点,分摊单个节点的数据库压力。
Kudu数据库的架构,如图2所示,在更新更及时的基础上实现更快的数据分析。因此本申请具有以下优点:第一个优点是高效随机读写:Kudu的一个table由多个tablet组成,能够很好地支持分区查看、扩容和数据高可用,也可以支持update和upsert操作。第二个优点是灵活的离线分析:Kudu与Imapla集成后,可通过标准的SQL操作,对海量历史数据离线分析很方便。因此,本申请在满足用户的个性化数据查询需求时,提高数据查询效率。
Table:具有Schema和全局有序主键的表。一张表有多个片段(Tablet),多个片段包含表的全部数据。
Tablet:Kudu的表被水平分割为多段,Tablet是Kudu表的一个片段(分区),每个Tablet存储一段连续范围的数据(会记录开始Key和结束Key),且两个Tablet间不会有重复范围的数据。一个Tablet会复制(逻辑复制而非物理复制,副本中的内容不是实际的数据,而是操作该副本上的数据时对应的更改信息)多个副本在多台TServer上,其中一个副本为Leader Tablet,其他则为Follower Tablet。只有Leader Tablet响应写请求,任何Tablet副本可以响应读请求。
TabletServer:简称TServer,负责数据存储Tablet、提供数据读写服务、编码、压缩、合并和复制。一个TServer可以是某些Tablet的Leader,也可以是某些Tablet的Follower,一个Tablet可以被多个TServer服务(多对多关系)。TServer会定期(默认1s)向Master发送信号。
Master:负责集群管理和元数据管理,具体来说,跟踪所有Tablets、TServer、和其他相关的元数据。
本实施例提供了一种数据查询方法,如图3所示,步骤如下:
S301:接收数据查询请求;
数据查询请求是基于用户需求确定的,以用于查询目标对象中的数据;目标对象可以表示为任意的存储数据的仓库。
用户根据自身需求,在数据查询界面编辑或修改符合自身需求的数据查询条件,用户点击“确定”的虚拟按键,以确认编辑的数据查询条件符合自身需求,并将该数据查询条件转化为电信号,此电信号可称为数据查询请求,系统接收该数据查询请求,在目标对象中查询符合数据查询条件的至少一个数据。另外,在数据查询界面可满足用户对数据查询条件的增删改查的编辑操作,
通过接收数据查询请求,可以明确用户个性化的数据查询需求,提升用户的数据查询体验。
S302:根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据;其中,所述目标对象包括第一数据库、第二数据库和内存知识库;所述第一数据库用于存储数据查询系统在第一时间段内产生的数据,以及所述数据查询系统产生的高频数据;所述第二数据库用于存储所述第一数据库在第二时间段内传输的数据,以及所述第一数据库传输的低频数据。
第一数据库可以表示为Mysql数据库,第二数据库可以表示为Kudu数据库,内存知识库可以表示为内存计算方法中存储数据的仓库,高频数据为数据查询系统在一段时间内的数据使用频次大于预设频次的数据,低频数据为数据查询系统在一段时间内的数据使用频次小于或等于预设频次的数据。
在接收用户的数据查询请求之前,如图4所示,用户可以导入话单文件和规则文件至数据查询系统,由于话单文件中的数据来源不同,数据格式不同,难以对不同数据格式的数据进行查询统计,因此,数据查询系统可对数据进行数据格式转换。
数据查询系统中的话单解码模块和规则解码模块,将用户导入的话单文件和规则文件进行识别和解码,得到解码后的数据,将解码后的数据转换为统一的数据格式,将在第一时间段内的数据,存储在第一数据库中,将第一数据库在第二时间段内产生的数据同步存储在第二数据库中,保留高频数据于第一数据库中,以基于时间属性将数据查询系统中的数据存储在不同的数据库。
其中,第一时间段中的起始时刻为解码结束的时刻,第一时间段的时长可由用户预先设定的,故,第一时间段的结束时刻是第一时间段中的起始时刻与第一时间段的时长之和。
在接收数据查询请求之后,系统响应于该数据查询请求,确定数据查询的目标对象,在该目标对象中查询数据,可得到符合该数据查询请求对应的至少一个数据。
将数据查询系统中的数据按照时间属性进行数据存储,在数据查询过程中可根据用户个性化的数据查询需求,使用不同的数据库进行数据查询,可满足用户个性化的数据查询需求,同时,可并行查询不同的数据查询需求,有效利用数据查询系统内的数据库资源,提高数据查询效率。
S303:对所述至少一个数据进行统计分析,得到数据查询结果。
统计分析可以包括统计相应业务类型的数据数量,或是,对于对应的数据进行数据计算。
数据查询结果可以包括数据记录和目标数据等,该数据记录可以包括目标数据的基本情况,以便于用户查看相应的数据情况。
对查询的至少一个数据进行统计分析,可直接获取相应的数据查询情况,无需人工在线下进行统计分析,大大提高数据查询的效率。
采用本申请实施例提供的数据查询方法,首先,在数据查询系统在接收数据查询请求后,分析该数据查询请求对应的用户的个性化数据查询需求,其次,根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据,最后,对所述至少一个数据进行统计分析,可以得到满足用户个性化数据查询需求的查询数据查询结果,提高数据查询的性能。
在一些实施例中,所述数据查询请求包括目标查询需求,所述根据所述数据查询请求,在目标对象中查询数据,得到至少一个数据,包括:
根据所述目标查询需求,确定目标对象,所述目标对象为第一数据库、第二数据库和内存知识库中的至少一个;
在所述目标对象中查询数据,得到至少一个数据。
数据查询请求包括目标查询需求,该目标查询需求的类型可以包括:实时数据查询类型、历史数据查询类型以及复杂数据查询类型。
因此,对于实时数据查询类型和历史数据查询类型而言,可以采用数据统计分析对相应业务的数据数量进行数据统计。而对于复杂数据查询类型而言,可以采用数据统计分析对查询得到的数据进行计算,以获得用户的个性化数据查询类型的数据查询结果。
而且,对于目标查询需求的类型,可确定查询的目标对象,在对应的目标对象中查询数据,可对于不同的目标查询需求的类型,确定不同的目标对象。
对于不同的目标查询需求的类型,确定不同的目标对象,在不同的目标对象中查询相应的数据,可明确相应的目标查询需求的目标对象,以在同一时长内并行查询数据,在实现资源的合理分配的同时,提高数据查询的速度。
在一些实施例中,所述数据查询请求包括查询时间段和查询时延要求,所述根据所述目标查询需求,确定目标对象,所述目标对象为第一数据库、第二数据库和内存知识库中的至少一个,数据查询方法可以包括:
若所述数据查询请求满足第一预设条件,则确定所述目标对象为第一数据库,所述第一预设条件为所述查询时延要求小于第一预设时长、且所述查询时间段小于所述第二预设时长;
若所述数据查询请求满足所述第二预设条件,则确定所述目标查询数据库为第二数据库,所述第二预设条件为查询时延要求大于或等于所述第一预设时长、且所述查询时间段大于或等于所述第二预设时长。
可以根据表一,确定目标查询需求对应的目标对象。
表一、目标对象确定表
查询时延要求可以表述为表一中的查询实时要求,查询时间段可以表述为表一中的查询时间跨度。
第一预设条件中的查询时延要求小于第一预设时长可以表示为其查询时延要求较高,第一预设条件中的查询时间段小于第二预设时长可以表示为:其查询时间段较短。
同样地,第二预设条件中的查询时延要求大于或等于第一预设时长可以表示为其查询时延要求较低,第一预设条件中的查询时间段大于或等于第二预设时长可以表示为:其查询时间段较长。
由表一可确定在数据查询请求满足第一预设条件时,即可确定以该数据查询请求对应的目标查询需求的类型为实时数据查询需求,可确定目标对象为第一数据库。
同理,由表一可确定在数据查询请求满足第二预设条件时,即可确定以该数据查询请求对应的目标查询需求的类型为历史数据查询需求,可确定目标对象为第二数据库。
而对于复杂数据查询类型,在确定数据关联程度高时,可采用内存计算方法完成数据查询和统计分析过程,在数据关联程度低时,也可采用内存计算方法数据查询和统计分析过程,或可使用第一数据库或第二数据库完成数据的数据查询和统计分析过程。
因此,根据数据查询请求中的查询时延要求和查询时间段,可针对数据查询请求确定目标对象。
在一个示例中,如图5所示,第二预设时长可以设置为180天,第一预设时长可以设置为60秒,在数据查询请求满足查询时延要求小于60秒、且查询时间段小于180天时,可以确定目标对象为第一数据库。同理,在数据查询请求满足查询时延要求大于或等于60秒、且查询时间段大于或等于180天时,可以确定目标对象为第二数据库。
在数据查询请求满足第一预设条件或第二预设条件时,可以确定目标对象,以提高数据查询的效率。
在一些实施例中,所述根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据,数据查询方法可以包括:
将所述第一数据库和所述第二数据库中的第一数据存储至内存知识库;所述第一数据包括所述第一数据库中的数据和所述第二数据库中的数据;所述内存知识库是基于所述第一数据构建的;
对所述第一数据进行数据处理,得到数据处理结果;
根据所述数据处理结果,生成所述第一数据的内存任务;
根据所述数据查询请求,在所述内存知识库中查询数据,得到目标内存任务中的至少一个数据,所述目标内存任务为所述内存任务中的至少一个内存任务。
如图6所示,数据存储设计根据数据的时间属性将数据存储设计为两部分:一部分是存储在Mysql中的实时数据和高频数据,另一部分是存储在Kudu中的历史数据。将数据划分为暖数据和冷数据分别进行存储后,可通过前台HUE界面分别进行外表映射。
在一个示例中,将Mysql中的数据表Table1映射为外表Table1_Mysql,并将其在Kudu中对应的冷数据映射为外表Table1_Kudu。针对只使用SQL分析速度过慢或无法使用SQL等复杂统计分析场景,可以采用内存计算完成复杂数据查询。
内存计算的步骤可以包括:对于存储在第一数据库和第二数据库中的第一数据,使用加载组件把数据加载到内存中,然后通过编写相应内存计算代码直接访问内存中的数据完成数据处理,得到数据处理结果。而后,可根据数据查询需求的类型,将内存任务进行归类、管理以及增加配置功能形成内存知识库,提高内存任务的使用价值,其中,加载组件可以包括odbc和jdbc,数据处理可以包括去重、累加和关联等。
针对数据查询请求中目标查询需求对应类型,在必要时可采用内存计算,以提高数据统计分析的效率。
在一些实施例中,数据查询方法还可以包括:
调整所述第二数据库的分区参数,所述分区参数用于确定第二数据库中的第二数据存储的分区数量;
根据分区类型对所述第二数据库中的第二数据进行分区,确定所述分区数量的存储分区中的目标存储分区,所述分区类型基于所述第二数据库中的主键确定,所述第二数据库中的分区类型包括范围分区和哈希分区。
本申请实施例可以对第一数据库和第二数据库的性能参数进行调整,以提高数据库的查询性能。
具体地,可以根据数据查询请求调整第一数据库的分区参数,确定合适的分区数量,进而,可以确定分区数量的存储分区中的目标存储分区其中,由第二数据库中的主键确定第二数据库的分区类型,第二数据库的分区类型可以包括范围分区和哈希分区。
第二数据库的分区类型支持hash分区和range分区,根据主键列上的分区模式将table划分为tablets。每个tablet由至少一台tablet server提供,理想情况下,一张table分成多个tablets分布在不同的tablet servers,以最大化并行操作。
另外,可在第二数据库的后台对数据进行维护,例如,对于写入数据时的并发线程数,可根据数据库所需写入的数据量调整该并发线程数为4,以提高数据存储的速度,为防止写入数据的并发线程数过大,影响第二数据库的运行,因此,并发线程数最大不超过8。
用户还可以设置第二数据库分配给Kudu Tablet Server块缓存的最大内存量,可以设置在2G至4G范围内。
用户还可以设置第二数据库同时打开的操作系统文件数,若用户不设置操作系统文件数,则使用系统的默认值,在用户设置操作系统文件数后,可以覆盖系统的默认值。
用户还可以设置每个Tablet的默认复制因子,确定存储副本,其中,默认值为3,表示每个表的数据会在Kudu中存储3份副本。
用户还可以设置block的管理器为文件管理器,其中,默认block的管理器是日志服务器。
用户还可以设置ntp服务器的时间误差不超过20s,其中,默认时间误差值是10s。
用户还可以设置记录kudu的crash的信息范覆盖范围。
在设计表格时,使用主键,就可以将table分为以相同速率增长的tablets。可以使用Impala的PARTITION BY关键字对表进行分区,该关键字支持RANGE或HASH分发。
对于第一数据库,用户也可以设置写入数据时的并发线程数、缓存参数、查询语句、MySQL状态参数等。
此外,参见图7,本申请实施例还提供了一种数据查询装置700,该装置700包括接收模块701、第一查询模块702以及统计分析模块703,各模块之间共同完成将数据查询过程,具体为:
接收模块701,用于接收数据查询请求;
第一查询模块702,用于根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据;其中,所述目标对象包括第一数据库、第二数据库和内存知识库;所述第一数据库用于存储话单文件在第一时间段内产生的数据,以及所述话单文件产生的高频数据;所述第二数据库用于存储所述第一数据库在第二时间段内传输的数据,以及所述第一数据库传输的低频数据;
统计分析模块703,用于对所述至少一个数据进行统计分析,得到数据查询结果。
在一些实施例中,查询模块702,用于根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据,装置还可以包括:
第一确定模块,用于根据所述目标查询需求,确定目标对象,所述目标对象为第一数据库、第二数据库和内存知识库中的至少一个;
第二查询模块,用于在所述目标对象中查询数据,得到至少一个数据。
在一些实施例中,第一确定模块,用于根据所述目标查询需求,确定目标对象,包括:
第二确定模块,用于若所述数据查询请求满足第一预设条件,则确定所述目标对象为第一数据库,所述第一预设条件为所述查询时延要求小于第一预设时长、且所述查询时间段小于所述第二预设时长;
第三确定模块,用于若所述数据查询请求满足所述第二预设条件,则确定所述目标查询数据库为第二数据库,所述第二预设条件为查询时延要求大于或等于所述第一预设时长、且所述查询时间段大于或等于所述第二预设时长。
在一些实施例中,第一查询模块702,用于根据所述数据查询请求,装置可以包括:
存储模块,用于将所述第一数据库和所述第二数据库中的第一数据存储至内存知识库;所述第一数据包括所述第一数据库中的数据和所述第二数据库中的数据;所述内存知识库是基于所述第一数据构建的;
数据处理模块,用于对所述第一数据进行数据处理,得到数据处理结果;
生成模块,用于根据所述数据处理结果,生成所述第一数据的内存任务;
第三查询模块,用于根据所述数据查询请求,在所述内存知识库中查询数据,得到目标内存任务中的至少一个数据,所述目标内存任务为所述内存任务中的至少一个内存任务。
在一些实施例中,数据查询装置还可以包括:
调整模块,用于调整所述第二数据库的分区参数,所述分区参数用于确定第二数据库中的第二数据存储的分区数量;
第四确定模块,用于根据分区类型对所述第二数据库中的第二数据进行分区,确定所述分区数量的存储分区中的目标存储分区,所述分区类型基于所述第二数据库中的主键确定,所述第二数据库中的分区类型包括范围分区和哈希分区。
本申请实施例提供的数据查询装置的各个模块,可以实现图3提供数据查询各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。
本申请实施例还提供一种电子设备,如图8所示,电子设备800可以包括:处理器801、存储器802、通信接口803以及总线810。
具体地,上述处理器801可以包括中央处理器(Central Processing Unit,CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC)或者可以配置成本申请实施例的一个或多个集成电路。
存储器802可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器802可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在一个实施例中,存储器802可以包括可移除或不可移除(或固定)的介质,或者存储器802是非易失性固态存储器。存储器802可在综合网关容载设备的内部或外部。
在一个实施例中,存储器802可以是只读存储器(Read Only Memory,ROM),在一个实施例中,该ROM可以是掩膜编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
存储802可以包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
处理器801通过读取并执行存储器802中存储的计算机程序指令,以实现图3所示实施例中的方法S301至S303,并达到图3所示实施例执行其方法/步骤达到相应技术效果,为简洁描述在此不再赘述。
在一个示例中,电子设备800还可包括通信接口803和总线810。其中,如图8所示,处理器801、存储器802、通信接口803通过总线810连接并完成相互间的通信。
通信接口803,主要用于实现本发明实施例中各模块、装置、单元和设备之间的通信。
总线810包括硬件、软件或两者,将在文档中嵌入文件的电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其它图形总线、增强工业标准架构(Extended Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industry Standard Architecture,ISA)总线、无线带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适单总线或者两个或者更多个以上这些的组合。在合适的情况下,总线810可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该电子设备可以执行本申请实施例中的数据查询方法,从而实现结合图3描述的数据查询方法。
另外,结合上述实施例中的数据查询方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行上述实施例中的任意一种数据查询方法。
本申请还提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行实现上述任意一项数据查询方法实施例的各个过程。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、只读存储器(Read-Only Memory,ROM)、闪存、可擦除只读存储器(Erasable ReadOnly Memory,EROM)、软盘、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光盘、硬盘、光纤介质、射频(Radio Frequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置(系统)、电子设备和存储介质的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种数据查询方法,其特征在于,所述方法包括:
接收数据查询请求;
根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据;其中,所述目标对象包括第一数据库、第二数据库和内存知识库;所述第一数据库用于存储话单文件在第一时间段内产生的数据,以及所述话单文件产生的高频数据;所述第二数据库用于存储所述第一数据库在第二时间段内传输的数据,以及所述第一数据库传输的低频数据;
对所述至少一个数据进行统计分析,得到数据查询结果。
2.根据权利要求1所述的数据查询方法,其特征在于,所述数据查询请求包括目标查询需求,所述根据所述数据查询请求,在目标对象中查询数据,得到至少一个数据,包括:
根据所述目标查询需求,确定目标对象,所述目标对象为第一数据库、第二数据库和内存知识库中的至少一个;
在所述目标对象中查询数据,得到至少一个数据。
3.根据权利要求2所述的数据查询方法,其特征在于,所述数据查询请求包括查询时间段和查询时延要求,所述根据所述目标查询需求,确定目标对象,包括:
若所述数据查询请求满足第一预设条件,则确定所述目标对象为第一数据库,所述第一预设条件为所述查询时延要求小于第一预设时长、且所述查询时间段小于所述第二预设时长;
若所述数据查询请求满足所述第二预设条件,则确定所述目标查询数据库为第二数据库,所述第二预设条件为查询时延要求大于或等于所述第一预设时长、且所述查询时间段大于或等于所述第二预设时长。
4.根据权利要求1所述的数据查询方法,其特征在于,所述根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据,包括:
将所述第一数据库和所述第二数据库中的第一数据存储至内存知识库;所述第一数据包括所述第一数据库中的数据和所述第二数据库中的数据;所述内存知识库是基于所述第一数据构建的;
对所述第一数据进行数据处理,得到数据处理结果;
根据所述数据处理结果,生成所述第一数据的内存任务;
根据所述数据查询请求,在所述内存知识库中查询数据,得到目标内存任务中的至少一个数据,所述目标内存任务为所述内存任务中的至少一个内存任务。
5.根据权利要求1所述的数据查询方法,其特征在于,所述方法还包括:
调整所述第二数据库的分区参数,所述分区参数用于确定第二数据库中的第二数据存储的分区数量;
根据分区类型对所述第二数据库中的第二数据进行分区,确定所述分区数量的存储分区中的目标存储分区,所述分区类型基于所述第二数据库中的主键确定,所述第二数据库中的分区类型包括范围分区和哈希分区。
6.一种数据查询装置,其特征在于,所述装置包括:
接收模块,用于接收数据查询请求;
查询模块,用于根据所述数据查询请求,在所述目标对象中查询数据,得到至少一个数据;其中,所述目标对象包括第一数据库、第二数据库和内存知识库;所述第一数据库用于存储话单文件在第一时间段内产生的数据,以及所述话单文件产生的高频数据;所述第二数据库用于存储所述第一数据库在第二时间段内传输的数据,以及所述第一数据库传输的低频数据;
统计分析模块,用于对所述至少一个数据进行统计分析,得到数据查询结果。
7.一种电子设备,所述设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时执行如权利要求1至5任意一项所述数据查询方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任意一项所述数据查询方法。
9.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1至5任意一项所述数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310184097.5A CN116186099A (zh) | 2023-02-20 | 2023-02-20 | 数据查询方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310184097.5A CN116186099A (zh) | 2023-02-20 | 2023-02-20 | 数据查询方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116186099A true CN116186099A (zh) | 2023-05-30 |
Family
ID=86448454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310184097.5A Pending CN116186099A (zh) | 2023-02-20 | 2023-02-20 | 数据查询方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116186099A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116821138A (zh) * | 2023-08-24 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
-
2023
- 2023-02-20 CN CN202310184097.5A patent/CN116186099A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116821138A (zh) * | 2023-08-24 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN116821138B (zh) * | 2023-08-24 | 2023-12-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190278783A1 (en) | Compaction policy | |
CN110799960B (zh) | 数据库租户迁移的系统和方法 | |
CN109947668B (zh) | 存储数据的方法和装置 | |
CN102725755B (zh) | 文件访问方法及系统 | |
CN104794123A (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
GB2518158A (en) | Method and system for data access in a storage infrastructure | |
US10706022B2 (en) | Space-efficient secondary indexing on distributed data stores | |
US9195611B2 (en) | Efficiently updating and deleting data in a data storage system | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
CN110908589B (zh) | 数据文件的处理方法、装置、系统和存储介质 | |
GB2529403A (en) | A Method of operating a shared nothing cluster system | |
US20220121652A1 (en) | Parallel Stream Processing of Change Data Capture | |
CN111324665A (zh) | 一种日志回放方法及装置 | |
US20180276267A1 (en) | Methods and system for efficiently performing eventual and transactional edits on distributed metadata in an object storage system | |
CN116186099A (zh) | 数据查询方法、装置、电子设备和存储介质 | |
RU2665272C1 (ru) | Способ и устройство для восстановления дедуплицированных данных | |
US20130041887A1 (en) | Adding entries to an index based on use of the index | |
CN109388651B (zh) | 一种数据处理方法和装置 | |
CN110618790A (zh) | 基于重复数据删除的雾存储数据去冗余方法 | |
CN111459913B (zh) | 分布式数据库的容量扩展方法、装置及电子设备 | |
EP3559797A1 (en) | Meta-join and meta-group-by indexes for big data | |
CN114880329A (zh) | 数据查询方法、装置、存储介质及计算机设备 | |
CN116107801A (zh) | 交易处理方法及相关产品 | |
CN113986878A (zh) | 一种数据写入方法、数据迁移方法、装置及电子设备 | |
CN111782634A (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 |