CN113468184A - 一种基于配置的通用流式指标计算方法及系统 - Google Patents

一种基于配置的通用流式指标计算方法及系统 Download PDF

Info

Publication number
CN113468184A
CN113468184A CN202110805583.5A CN202110805583A CN113468184A CN 113468184 A CN113468184 A CN 113468184A CN 202110805583 A CN202110805583 A CN 202110805583A CN 113468184 A CN113468184 A CN 113468184A
Authority
CN
China
Prior art keywords
index
result
sql
list
name
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
CN202110805583.5A
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 Mininglamp Software System Co ltd
Original Assignee
Beijing Mininglamp Software System 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 Mininglamp Software System Co ltd filed Critical Beijing Mininglamp Software System Co ltd
Priority to CN202110805583.5A priority Critical patent/CN113468184A/zh
Publication of CN113468184A publication Critical patent/CN113468184A/zh
Pending legal-status Critical Current

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (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

本发明是关于一种基于配置的通用流式指标计算方法及系统。该方法包括:从kafka中接入数据;根据sql配置文件中的sql来进行数据计算处理,得到指标结果;根据指标配置文件将所述指标结果补到redis中补数;将补数完的结果取出,作为最终结果输出到kafka的topic中。本发明提供的方案,可通过配置的方式来实现不同应用场景的指标计算,不用针对于不同的场景去重复的编码,降低了开发人员的工作负担,避免了重复劳动。

Description

一种基于配置的通用流式指标计算方法及系统
技术领域
本发明涉及数据库领域,尤其涉及一种基于配置的通用流式指标计算方法及系统。
背景技术
指标计算指的是对应用的一些指标做统计,可以是多种多样的,比如网站的PV、UV,或者是员工之间在某个协作区间的聊天次数,再或者是对线上机器做一些性能上的指标监控,比如CPU的利用率、内存占用率,诸如此类等等。
流式指标计算指的是提高指标计算结果的实时性,使得用户可以在相对较短的时间内可以看到指标结果。通常可以使用spark streaming或flink等流式计算框架来实现。
现有技术只是针对某个特定应用场景来实现对应的指标的实时计算,不具备通用性。
发明内容
为克服相关技术中存在的问题,本发明提供一种基于配置的通用流式指标计算方法及系统。
根据本发明实施例的第一方面,提供一种基于配置的通用流式指标计算方法,包括:
从kafka中接入数据;
根据sql配置文件中的sql来进行数据计算处理,得到指标结果;
根据指标配置文件将所述指标结果补到redis中补数;
将补数完的结果取出,作为最终结果输出到kafka的topic中。
进一步,所述sql配置文件配置了输入表名称key、输入表的字段名称列表schema、输入表作用的输出表列表tables,其中,所述输出表列表定义了输出表的名称table、所述输出表对应的主键字段列表primary和计算逻辑sql;sql执行完的结果包含维度列和指标列。
进一步,所述指标配置文件配置了输出表名称table中的指标列的指标列表metrics,其中,所述指标列表定义了指标名称name和指标的计算方式operator。
进一步,所述指标的计算方式operator包括求和、最小值、最大值、求并集和拼接中的至少一种。
进一步,实现所述的方法所采用的计算框架为spark streaming、flink或structure streaming。
根据本发明实施例的第二方面,提供一种基于配置的通用流式指标计算系统,包括:
接入模块,用于从kafka中接入数据;
计算模块,用于根据sql配置文件中的sql来进行数据计算处理,得到指标结果;
补数模块,用于根据指标配置文件将所述指标结果补到redis中补数;
输出模块,用于将补数完的结果取出,作为最终结果输出到kafka的topic中。
进一步,所述sql配置文件配置了输入表名称key、输入表的字段名称列表schema、输入表作用的输出表列表tables,其中,所述输出表列表定义了输出表的名称table、所述输出表对应的主键字段列表primary和计算逻辑sql;sql执行完的结果包含维度列和指标列。
进一步,所述指标配置文件配置了输出表名称table中的指标列的指标列表metrics,其中,所述指标列表定义了指标名称name和指标的计算方式operator。
进一步,所述指标的计算方式operator包括求和、最小值、最大值、求并集和拼接中的至少一种。
进一步,实现所述的系统所采用的计算框架为spark streaming、flink或structure streaming。
本发明的实施例提供的技术方案可以包括以下有益效果:
可通过配置的方式来实现不同应用场景的指标计算,不用针对于不同的场景去重复的编码,降低了开发人员的工作负担,避免了重复劳动。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。
图1是根据本发明一示例性实施例示出的一种基于配置的通用流式指标计算方法的原理框架图;
图2是本发明一示例性实施例示出的一种基于配置的通用流式指标计算方法的数据处理流程图。
具体实施方式
下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以下结合附图详细描述本发明实施例的技术方案。
本发明实施例提供一种基于配置的通用流式指标计算方法,包括:
S1、从kafka中接入数据;
S2、根据sql配置文件中的sql来进行数据计算处理,得到指标结果;
S3、根据指标配置文件将所述指标结果补到redis中补数;
S4、将补数完的结果取出,作为最终结果输出到kafka的topic中。
具体的,图1是根据本发明一示例性实施例示出的一种基于配置的通用流式指标计算方法的原理框架图,如图1所示,数据从kafka中接入,经过Spark streaming程序处理,Spark streaming程序在处理的过程中需要根据配置文件中的sql来进行数据计算处理,由于redis中存的是一段区间内的指标数据,如半小时内的沟通次数,如果sql计算出的指标结果属于这一段区间,就需要将计算的指标结果补到redis中,并将补数完的结果取出,作为最终结果输出到kafka的topic中。
本实施例中,使用spark streaming计算框架来实现流式计算,也可根据需要使用其他的计算框架,如flink、structure streaming等。
本发明中设计的配置文件是程序的重点,包括以下两种json格式的配置文件,当然,根据实际需求,本发明使用的配置文件格式可以有不同的变换。
1.sqlConfig.json,示例如下:
Figure BDA0003166401480000041
Figure BDA0003166401480000051
sqlConfig.json是sql配置文档,用来配置sql及相关信息,该json是一个列表,列表中的每一项对应一种格式的数据。其中,key为输入表名称,是一个唯一字符串,用来过滤kafka中的消息,kafka中的消息格式限定为:xx={"key1":"value1","key2":"value2"}格式,其中xx即为key的值,json部分为具体数据;schema为输入的消息json部分对应的字段名称列表,由逗号分隔;tables为这条消息对应的输出表列表,即这条数据可以作用于多张表中,tables中包含的信息:table为输出表名,primary为主键字段列表,sql为要执行的sql计算逻辑,其中,sql执行完的结果包含维度列和指标列,指标列需要与redis中的数据合并(即补数),primary拼接成redis中的key,可将补数后的结果取出。
字段具体含义如下所示:
字段名称 字段含义
key 一个唯一字符串,用于过滤kafka中的消息
schema json中字段名称列表,由逗号分隔
tables 输出表列表
+table 表名称
+primary 主键字段列表
+sql 计算指标的sql
在上述sqlConfig.json代码示例中,key为key_1v1,schema为field1、field2、field3和field4,table为1v1_chat,primary为field1和field2拼接而成,sql的执行语句为select field1,field2,count(*),min(field4)from#table#group by field1,field2。
2.metricConfig.json,示例如下:
Figure BDA0003166401480000052
Figure BDA0003166401480000061
metricConfig.json为指标配置文档,该json是一个列表,列表中每项表示该表有哪些指标,以及该指标对应的计算方式。其中,table为输出表名,metrics为对应的指标列表,指标列表中包含了:name为指标字段名,operator为指标的计算方式。operator决定了补数的时候如何补,如果operator为sum,则直接将计算的结果与redis中的结果求和,如果operator为min,则求最小值,其他的计算方式类似。
字段含义如下所示:
字段名称 字段含义
table 表名称
metrics 指标列表
+name 指标名称
+operator 指标的计算方式
本发明目前提供的operator包含以下几种:
operator 描述
sum 求和
min 最小值
max 最大值
union 求并集
concat 拼接
上述的operator是指标计算中常见的计算方式,可根据实际需求添加新的operator。
在上述metricConfig.json的代码示例中,table为1v1_chat,即前述sql配置文件sqlConfig.json的输出表,对输出表1v1_chat的指标列中各项指标的计算方式如下:针对指标send_chat_cnt的计算方式为求和,对指标cooperation_start_time的计算方式为求最小值,针对指标cooperation_end_time的计算方式为求最大值。
本发明通过上述的两个配置文件,实现了一个通用的流式指标计算框架,该框架可满足大部分常见的指标计算需求。整个框架的数据处理流程如图2所示。
本发明实施例提供一种基于配置的通用流式指标计算系统,包括:
接入模块,用于从kafka中接入数据;
计算模块,用于根据sql配置文件中的sql来进行数据计算处理,得到指标结果;
补数模块,用于根据指标配置文件将所述指标结果补到redis中补数;
输出模块,用于将补数完的结果取出,作为最终结果输出到kafka的topic中。
关于上述实施例中的系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
本发明实施例提供的一种基于配置的通用流式指标计算方法和系统,基于配置的方式实现了一个通用的流式指标计算框架,不用每次根据具体场景进行重复的开发工作,这种方式大大的降低了开发人员的工作负担,减少了重复劳动,提高了生产效率。
本发明还可以实施为一种计算设备,包括存储器和处理器。
处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器上存储有可执行代码,当可执行代码被处理器处理时,可以使处理器执行上文述及的方法中的部分或全部。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤的部分或全部。
上文中已经参考附图详细描述了本发明的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本发明所必须的。另外,可以理解,本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本发明实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种基于配置的通用流式指标计算方法,其特征在于,包括:
从kafka中接入数据;
根据sql配置文件中的sql来进行数据计算处理,得到指标结果;
根据指标配置文件将所述指标结果补到redis中补数;
将补数完的结果取出,作为最终结果输出到kafka的topic中。
2.根据权利要求1所述的方法,其特征在于,所述sql配置文件配置了输入表名称key、输入表的字段名称列表schema、输入表作用的输出表列表tables,其中,所述输出表列表定义了输出表的名称table、所述输出表对应的主键字段列表primary和计算逻辑sql;sql执行完的结果包含维度列和指标列。
3.根据权利要求1所述的方法,其特征在于,所述指标配置文件配置了输出表名称table中的指标列的指标列表metrics,其中,所述指标列表定义了指标名称name和指标的计算方式operator。
4.根据权利要求3所述的方法,其特征在于,所述指标的计算方式operator包括求和、最小值、最大值、求并集和拼接中的至少一种。
5.根据权利要求1至4任一项所述的方法,其特征在于,实现所述的方法所采用的计算框架为spark streaming、flink或structure streaming。
6.一种基于配置的通用流式指标计算系统,其特征在于,包括:
接入模块,用于从kafka中接入数据;
计算模块,用于根据sql配置文件中的sql来进行数据计算处理,得到指标结果;
补数模块,用于根据指标配置文件将所述指标结果补到redis中补数;
输出模块,用于将补数完的结果取出,作为最终结果输出到kafka的topic中。
7.根据权利要求6所述的系统,其特征在于,所述sql配置文件配置了输入表名称key、输入表的字段名称列表schema、输入表作用的输出表列表tables,其中,所述输出表列表定义了输出表的名称table、所述输出表对应的主键字段列表primary和计算逻辑sql;sql执行完的结果包含维度列和指标列。
8.根据权利要求6所述的系统,其特征在于,所述指标配置文件配置了输出表名称table中的指标列的指标列表metrics,其中,所述指标列表定义了指标名称name和指标的计算方式operator。
9.根据权利要求8所述的系统,其特征在于,所述指标的计算方式operator包括求和、最小值、最大值、求并集和拼接中的至少一种。
10.根据权利要求6至9任一项所述的系统,其特征在于,实现所述的系统所采用的计算框架为spark streaming、flink或structure streaming。
CN202110805583.5A 2021-07-16 2021-07-16 一种基于配置的通用流式指标计算方法及系统 Pending CN113468184A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110805583.5A CN113468184A (zh) 2021-07-16 2021-07-16 一种基于配置的通用流式指标计算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110805583.5A CN113468184A (zh) 2021-07-16 2021-07-16 一种基于配置的通用流式指标计算方法及系统

Publications (1)

Publication Number Publication Date
CN113468184A true CN113468184A (zh) 2021-10-01

Family

ID=77880727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110805583.5A Pending CN113468184A (zh) 2021-07-16 2021-07-16 一种基于配置的通用流式指标计算方法及系统

Country Status (1)

Country Link
CN (1) CN113468184A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120173498A1 (en) * 2010-12-30 2012-07-05 International Business Machines Corporation Verifying Correctness of a Database System
CN109725899A (zh) * 2019-01-04 2019-05-07 中国银行股份有限公司 数据流式处理方法及装置
CN110083625A (zh) * 2019-03-18 2019-08-02 北京奇艺世纪科技有限公司 实时流处理方法、设备、数据处理设备及介质
CN110688530A (zh) * 2019-08-19 2020-01-14 天津开心生活科技有限公司 一种json数据的处理方法及装置
CN111782675A (zh) * 2020-03-18 2020-10-16 北京沃东天骏信息技术有限公司 生成数据库脚本的方法、装置及计算机可读存储介质
CN112860954A (zh) * 2021-02-08 2021-05-28 中国邮政储蓄银行股份有限公司 实时计算的方法以及实时计算系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120173498A1 (en) * 2010-12-30 2012-07-05 International Business Machines Corporation Verifying Correctness of a Database System
CN109725899A (zh) * 2019-01-04 2019-05-07 中国银行股份有限公司 数据流式处理方法及装置
CN110083625A (zh) * 2019-03-18 2019-08-02 北京奇艺世纪科技有限公司 实时流处理方法、设备、数据处理设备及介质
CN110688530A (zh) * 2019-08-19 2020-01-14 天津开心生活科技有限公司 一种json数据的处理方法及装置
CN111782675A (zh) * 2020-03-18 2020-10-16 北京沃东天骏信息技术有限公司 生成数据库脚本的方法、装置及计算机可读存储介质
CN112860954A (zh) * 2021-02-08 2021-05-28 中国邮政储蓄银行股份有限公司 实时计算的方法以及实时计算系统

Similar Documents

Publication Publication Date Title
CN107229619B (zh) 互联网业务链路调用情况的统计、展示方法及装置
CN102203773B (zh) 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接
JP5990192B2 (ja) データストアにおけるクエリーデータのフィルタリング
EP3432157B1 (en) Data table joining mode processing method and apparatus
US20160103877A1 (en) Joining data across a parallel database and a distributed processing system
CN109934712B (zh) 应用于分布式系统的对账方法、对账装置和电子设备
US10482154B2 (en) Distributed processing of data records
CN108599973B (zh) 一种日志关联方法、装置及设备
CN107085570A (zh) 数据处理方法、应用服务器和路由器
US9760604B2 (en) System and method for adaptive filtering of data requests
CN107885865A (zh) 一种代价优化器与代价估计的方法及其设备
Goyal et al. Cross platform (RDBMS to NoSQL) database validation tool using bloom filter
US20210073850A1 (en) Redemption code distribution
CN112785408A (zh) 基于哈希的对账方法及装置
CN112559606A (zh) 用于json格式数据的转换方法及转换装置
CN107451204B (zh) 一种数据查询方法、装置及设备
CN115840687A (zh) 一种基于业务层面的可视化日志链路追踪方法及系统
CN109344169B (zh) 数据处理方法及装置
CN111770150B (zh) 访问流量控制方法、装置及电子设备
CN113468184A (zh) 一种基于配置的通用流式指标计算方法及系统
CN112506887A (zh) 车辆终端can总线数据处理方法及装置
CN110928941A (zh) 一种数据分片抽取方法及装置
CN116450759A (zh) 高精地图数据查询方法、渲染方法及相关装置
CN105589969A (zh) 一种数据处理方法及装置
CN107203550B (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