CN117171227A - 一种基于Impala的任务统计方法和系统 - Google Patents

一种基于Impala的任务统计方法和系统 Download PDF

Info

Publication number
CN117171227A
CN117171227A CN202310869770.9A CN202310869770A CN117171227A CN 117171227 A CN117171227 A CN 117171227A CN 202310869770 A CN202310869770 A CN 202310869770A CN 117171227 A CN117171227 A CN 117171227A
Authority
CN
China
Prior art keywords
task
information
sql statement
impala
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
CN202310869770.9A
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.)
Beijing Yunyou Interactive Network Technology Co ltd
Online Tuyoo Beijing Technology Co ltd
Original Assignee
Beijing Yunyou Interactive Network Technology Co ltd
Online Tuyoo Beijing Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Yunyou Interactive Network Technology Co ltd, Online Tuyoo Beijing Technology Co ltd filed Critical Beijing Yunyou Interactive Network Technology Co ltd
Priority to CN202310869770.9A priority Critical patent/CN117171227A/zh
Publication of CN117171227A publication Critical patent/CN117171227A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于Impala的任务统计方法和系统,该方法包括:从Impala集群数据获取集群任务信息;统计已知节点的查询任务记录信息;对查询任务信息中的SQL语句进行解析,统计字段在不同基础SQL语句中的使用位置与方式等信息;保存统计所的信息并记录入库。本申请实施例中,通过解析原始SQL语句,能够以字段为粒度统计数据的使用情况,配合定时模块可以避免丢失历史集群查询信息,从而更加方便的掌控集群内当前以及历史的任务信息。

Description

一种基于Impala的任务统计方法和系统
技术领域
本申请实施例涉及计算机科学领域,特别涉及一种基于Impala的任务统计方法、系统、计算设备与计算机可读存储介质。
背景技术
Impala是一种能够查询存储在PB级别大数据中信息的查询引擎,通过Impala引擎实现了业务系统中高效的查询功能。在业务系统中由于用户使用习惯的变化会导致查询SQL语句的类型和写法较多且在不断升级中,因此需要一种方法对查询SQL语句进行不断迭代和分析来满足用户的需求;另外,现有的Impala引擎依赖第三方集群管理服务提供的api获取查询任务,导致未即时获取的记录丢失后难以再追回。
发明内容
基于上述技术难题,本发明旨在研发出一种基于Impala的任务统计方法、系统和计算设备。
根据本实施例的第一方面,提供了一种基于Impala的任务统计方法,包括:
获取Impala集群节点的任务信息;
统计所述任务信息中的查询任务,对所述查询任务中的SQL语句进行解析得到基础SQL语句;所述基础SQL语句为直接对单个表进行操作的SQL语句;
统计所述基础SQL语句中的字段使用信息。
根据本实施例的第二方面,提供了一种基于Impala的任务统计系统,包括:
信息获取模块,用于获取Impala集群节点的任务信息;
解析模块,用于统计所述任务信息中的查询任务,对所述查询任务中的SQL语句进行解析得到基础SQL语句;所述基础SQL语句为直接对单个表进行操作的SQL语句;
统计模块,用于统计所述基础SQL语句中的字段使用信息。
根据本实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现上述任意一项所述方法的步骤。
根据本发明的第四方面,提供了一种计算机可读存储介质,其中,该指令被处理器执行时实现上述任意一项所述方法的步骤。
本发明的上述技术方案具有如下有益的技术效果:
本申请实施例中,通过解析Impala集群的原始SQL语句,能够以字段为粒度统计数据的使用情况,配合定时模块可以避免丢失历史集群查询信息,从而更加方便的掌控集群内当前以及历史的任务信息;同时将记录与解析服务改造为分布式服务,通过完善服务的稳定性保证查询记录的完整性。而且,对集群中每个执行的查询任务精准的以字段为粒度统计数据的使用情况,达到更了解用户对数据的使用习惯的目的,为后续的数据结构优化方案提供了依据。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2是本申请实施例提供的一种基于Impala的任务统计方法的流程图;
图3是本申请实施例提供的一种基于Impala的任务统计系统的结构框图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“响应于确定”。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行本说明书说所述的基于Impala的任务统计方法中的步骤,如图2所示,包括S101至S103。
S101.获取Impala集群节点的任务信息;
在该步骤中,通过Impala监控服务,对一个或多个分布式集群节点进行实时监控,通过定时框架设定特定的时间周期,依照一定的周期对集群节点进行扫描。
进一步地,当定时任务触发时,将获取的集群节点上的任务信息加载到解析线程中。
S102.统计任务信息中的查询任务,对查询任务中的SQL语句进行解析得到基础SQL语句;
在一种可行的实施方式中,在解析线程中统计上述任务信息中的查询任务,并将获取的查询任务描述信息写入实例类及其对应的查询任务表。除了查询任务外,同时记录DDL、DCL等信息的改进,应当认为不超出本发明保护范围,
进一步地,在解析线程中利用SQL解析工具,将查询任务的SQL语句拆解为基础SQL语句。
具体地,根据SQL语句的语法结构对SQL语句解析得到基础SQL语句,上述包括但不限于union、join、子查询等。
其中,解析得到的基础SQL语句指的是直接对单个表进行操作的SQL语句,该操作包括但不限于查询、筛选、排序、分组,即基础SQL可以包含select、from、where、group、order等对单个表单进行操作的关键词。
基础SQL语句还可以包含函数表达式以及取并集或交集的and/or运算,一个示例性基础SQL语句如下所示:
应当理解,对于基础SQL语句定义的任何非实质性修改,均包含在本发明所述范围内。
在一个可行的实施方式中,通过druid工具完成SQL语句的解析,以下为一个需要拆分的示例;
拆分顺序包括但不限于以下原则:
对于union语句,按照从下至上的顺序进行遍历,即从通过union语句连接的最后一个对单表直接进行操作的SQL语句开始遍历。例如,在上面的示例中,先处理22-30行的SELECT块,再处理15-18行的SELECT块,最后处理3-11行的SELECT块;
对于join语句,按照从右至左的顺序进行遍历,即从通过join语句连接的最右侧的对单表直接进行操作的SQL语句开始遍历。例如,在上面的示例中,对于22-30行中的两个LEFT JOIN语句,先处理29行的JOIN块,再处理28行的JOIN块;
对于sub子查询,按照优先于父查询剩余部分的顺序进行遍历,即遇到子查询时,优先拆解子查询内部可拆解的部分,待子查询处理完毕后再继续处理父查询剩余部分。例如,在上面的示例中,对于29行的子查询,先处理其内部的JOIN块,再继续处理父查询中的28行JOIN块。
对于上述三者的嵌套,不存在特定的优先级别;在任何一个运算拆解的过程中,若发现有新的可拆解语句,优先处理新的可拆解语句;待新的语句处理完毕后,继续遍历余下部分。例如,在上面的示例中,对于3-10块的子查询,先拆解子查询内部,但对于9行包含子查询的JOIN块,并不优先拆解子查询,需要先执行UNION和JOIN块的拆解。
以上拆解原则为本实施例所采用,但并非本发明所包含的全部原则;对于union、join、子查询以外的不超出本领域技术人员能够考虑到范围的语句,以及对上述运算规则非实质性的改变,应当认为属于本发明的保护范围。
S103.统计所述基础SQL语句中的字段使用信息。
将查询任务拆解为基础SQL语句后,进一步对基础SQL语句进行解析得到基础SQL语句中使用的各个字段,以字段为粒度进行统计。
在进行统计时以基础SQL语句为单位,按照基础SQL语句中的select块,where块,group块,order块分别统计对应区域使用的字段。
其中,解析线程按照select,from,where,group,order的顺序将获取的字段信息整理到字段统计表实例对象,并进而将字段统计表进行持久化保存,字段统计表中的信息体现了字段在基础SQL语句中的具体使用方式。
在一种可行的实施方式中,字段统计表包括基础SQL语句中出现的字段和字段在SQL语句中所使用的位置与方式等信息,如字段名称、位置和使用方法,字段所在表单的名称、位置和使用方法,字段所出现的函数名称和表达式等重要信息,如表1所示:
表1
本领域技术人员可以根据需求配置字段统计表所含信息,本说明书所给出的实施例的表单仅为一种示例,在此不再赘述。
优选地,考虑到SQL语句常常将名称较长的表单利用as语句(有时as会被省略)重命名,为保证所统计的在where,group,order位置的字段为实际表中的字段名,会对字段的别名进行转换,溯源到真实的字段名,统计溯源后的字段。
优选地,对于父子查询中出现的,利用子查询对相同表单进行多次筛选的操作,由于实际上只对表单进行了一次请求,为防止重复统计,只统计父查询中select块出现的字段。
优选地,针对连表的情况,即同一个基础SQL语句中出现两个或以上的表单的情况,如果查询的字段指定了字段归属的表则直接统计,若未指定字段归属的表则需要遍历元数据找到字段所属的表,再统计进表单。
优选地,基础SQL语句中的函数涉及到的每个字段都会统计一次。
值得注意的是,上述本实施例中所采用的细节均为辅助性原则,目的是为了提高字段表记录的准确性;应当认为,本发明的内容不受上述细节的限制,对于上述细节的删除、变更,都不影响该技术落入本发明的保护范围。
完成字段统计表的持久化后,定期将其与上述步骤S101中得到的查询任务表合并后发送到云端保存。发送到云端前会利用流处理平台缓解服务器压力;例如在本实施例中,填好的表单会新增一个topic,加入kafka;而后每积累三万条topic,或者每隔24小时,就会将数据发送到云端进行存储。
优选地,云端包括两个或多个,其中的一部分用于保存短时数据,另一部分用于保存长时或永久数据。例如,mysql可以保存七天的数据;设置这样的短时数据存储会在与Impala监控模块互动时,接收到异常信号后,追溯到错误发生的SQL查询;Hive数据库则可以用于保存长时或永久数据。
这样设置的好处是,短时的存储是存在mysql中,只存一周的数据,一般情况下一周内的数据使用频率最高;基于这种情况将使用频率较高且数据量较少的记录单独保存可以大大提高查询效;而全量存储是保证了全量记录可查,避免由于历史任务信息跟踪不及时而丢失重要数据,不再依赖集群的管理服务提供的api获取查询记录。
本申请实施例中,通过解析Impala集群的查询任务SQL语句,能够以字段为粒度统计数据的使用情况,配合定时模块可以避免丢失历史集群查询信息,从而更加方便的掌控集群内当前以及历史的任务信息。利用本实施例中的拆解方式,可以对SQL语句中各个模块的使用场景进行更全面的总结和归纳,同时将记录与解析服务改造为分布式服务,通过完善服务的稳定性保证查询记录的完整性。进一步地,对集群中每个执行的查询任务精准的以字段为粒度统计数据的使用情况,达到更了解用户对数据的使用习惯的目的,为后续的数据结构优化方案提供了依据。
与上述方法实施例相对应,本申请还提供了一种基于Impala的任务统计系统,如图3所示,该系统包括:
信息获取模块,用于获取Impala集群节点的任务信息;
解析模块,用于统计所述任务信息中的查询任务,对所述查询任务中的SQL语句进行解析得到基础SQL语句;所述基础SQL语句为直接对单个表进行操作的SQL语句;
统计模块,用于统计所述基础SQL语句中的字段使用信息。
上述为本实施例的一种基于Impala的任务统计系统的示意性方案。需要说明的是,该基于Impala的任务统计系统的技术方案与上述的基于Impala的任务统计方法的技术方案属于同一构思,该基于Impala的任务统计系统的技术方案未详细描述的细节内容,均可以参见上述基于Impala的任务统计方法的技术方案的描述。
根据本发明的又一方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,处理器执行所述指令时实现上述任意一项所述方法的步骤。
根据本发明的再一方面,提供了一种计算机可读存储介质,其中,该指令被处理器执行时实现上述任意一项所述方法的步骤。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的一种用于保证企业登录凭证安全的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述一种用于保证企业登录凭证安全的方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
计算机指令包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (9)

1.一种基于Impala的任务统计方法,其特征在于,包括以下步骤:
获取Impala集群节点的任务信息;
统计所述任务信息中的查询任务,对所述查询任务中的SQL语句进行解析得到基础SQL语句;所述基础SQL语句为直接对单个表进行操作的SQL语句;
统计所述基础SQL语句中的字段使用信息。
2.根据权利要求1所述方法,其中,获取Impala集群节点的任务信息包括:
通过监控服务定时获取集群节点的任务信息,当定时服务触发时将所述任务信息加载到解析线程中。
3.根据权利要求1所述方法,其中,对所述查询任务中的SQL语句进行解析得到基础SQL语句包括:
根据语法结构对SQL语句解析得到基础SQL语句,所述语法结构包括但不限于:join、union、子查询。
4.根据权利要求1所述的方法,其中,统计所述基础SQL语句中的字段使用信息包括:
根据所述基础SQL语句中的各个区块分别统计该区块中的字段使用信息。
5.根据权利要求1所述的方法,其中,所述字段使用信息包括但不限于:字段在基础SQL语句中所使用的位置与方式。
6.根据权利要求1所述的方法,其中,在统计所述基础SQL语句中的字段使用信息之后还包括:
将所述查询任务和所述字段使用信息持久化保存到数据表后存入数据库。
7.一种基于Impala的任务统计系统,其特征在于,包括:
信息获取模块,用于获取Impala集群节点的任务信息;
解析模块,用于统计所述任务信息中的查询任务,对所述查询任务中的SQL语句进行解析得到基础SQL语句;所述基础SQL语句为直接对单个表进行操作的SQL语句;
统计模块,用于统计所述基础SQL语句中的字段使用信息。
8.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现权利要求1-6中任意一项所述方法的步骤。
9.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-6中任意一项中所述方法的步骤。
CN202310869770.9A 2023-07-14 2023-07-14 一种基于Impala的任务统计方法和系统 Pending CN117171227A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310869770.9A CN117171227A (zh) 2023-07-14 2023-07-14 一种基于Impala的任务统计方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310869770.9A CN117171227A (zh) 2023-07-14 2023-07-14 一种基于Impala的任务统计方法和系统

Publications (1)

Publication Number Publication Date
CN117171227A true CN117171227A (zh) 2023-12-05

Family

ID=88928777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310869770.9A Pending CN117171227A (zh) 2023-07-14 2023-07-14 一种基于Impala的任务统计方法和系统

Country Status (1)

Country Link
CN (1) CN117171227A (zh)

Similar Documents

Publication Publication Date Title
US11567978B2 (en) Hybrid structured/unstructured search and query system
CN102521406B (zh) 海量结构化数据复杂查询任务的分布式查询方法和系统
US8700605B1 (en) Estimating rows returned by recursive queries using fanout
CN102521405B (zh) 支持高速加载的海量结构化数据存储、查询方法和系统
US10649991B2 (en) Pruning of columns in synopsis tables
US11003649B2 (en) Index establishment method and device
CN110928903B (zh) 数据提取方法及装置、设备和存储介质
JP2017157229A (ja) 半構造データのためのスケーラブルな分析プラットフォーム
US8924373B2 (en) Query plans with parameter markers in place of object identifiers
US20140310260A1 (en) Using persistent data samples and query-time statistics for query optimization
CN107291770B (zh) 一种分布式系统中海量数据的查询方法及装置
CN106407360B (zh) 一种数据的处理方法及装置
CN109213826B (zh) 数据处理方法和设备
WO2018196729A1 (zh) 一种查询处理方法、数据源注册方法及查询引擎
US20160224627A1 (en) Forecasting query access plan obsolescence
CN113626464B (zh) 基于ClickHouse数据库内存数据的查询支持方法及系统
CN108319608A (zh) 访问日志存储查询的方法、装置及系统
CN114356971A (zh) 数据处理方法、装置以及系统
US11928113B2 (en) Structure and method of aggregation index for improving aggregation query efficiency
US10776368B1 (en) Deriving cardinality values from approximate quantile summaries
CN107291938A (zh) 订单查询系统及方法
CN111488263B (zh) 一种解析MySQL数据库中日志的方法和装置
CN117131230A (zh) 数据血缘分析方法、装置、设备及存储介质
CN117171227A (zh) 一种基于Impala的任务统计方法和系统
CN115617845A (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