掌桥专利:专业的专利平台
掌桥专利
首页

一种基于Clickhouse的数据处理方法、设备及介质

文献发布时间:2023-06-19 13:49:36


一种基于Clickhouse的数据处理方法、设备及介质

技术领域

本申请涉及数据库技术领域,尤其涉及一种基于Clickhouse的数据处理方法、设备及介质。

背景技术

随着数据中心的发展,各行业的项目中数据不断增多,相对应的用户需求的数据、开发人员所利用的数据,也在不断增加。数据的日益增多,对于开发人员来说,无疑增加了开发时的工作量。并且在数据的堆叠下,开发人员的开发速度,远不如用户需求的更迭速度。

若开发人员不能在第一时间满足用户需求,将造成用户体验感差,不能认可开发人员提供的服务,同时开发人员的工作积极性也可能变差。因此,亟需一种能够及时地为用户提供服务、满足用户的数据需求的技术方案,来提高有数据需求的用户对数据服务的体验。

发明内容

本申请实施例提供了一种基于Clickhouse的数据处理方法、设备及介质,用于及时地为提供用户数据服务,满足用户的数据需求。

一方面,本申请提供了一种基于Clickhouse的数据处理方法,该方法包括:

确定业务数据的标签。其中,业务数据为若干终端设备采集的数据。根据业务数据的标签,将各业务数据进行分类。将分类后的各业务数据进行相应的数据格式转换,得到待存储数据。根据待存储数据的标签,将待存储数据存储至Clickhouse数据仓库,以得到仓储数据。其中,待存储数据的标签根据业务数据的标签得到。基于用户的操作,确定Clickhouse数据仓库中,用户的需求数据。其中,需求数据根据仓储数据生成。

在本申请的一种实现方式中,确定业务数据的数据格式。根据业务数据的数据格式,匹配预设的数据转换标准。根据匹配的数据转换标准,将业务数据进行数据格式转换,以得到待存储数据。其中,待存储数据为轻量级的数据交换JSON格式。

在本申请的一种实现方式中,按照待存储数据的标签,对待存储数据进行数据压缩。以及根据RSA加密算法,将数据压缩后的待存储数据进行加密。在将待存储数据写入Clickhouse数据仓库之前,将加密后的待存储数据进行解密操作。

在本申请的一种实现方式中,向用户终端展示查询界面。其中,查询界面包括用于查询Clickhouse数据仓库中的仓储数据的若干应用程序编程接口API。基于用户对查询界面的操作,生成查询API。其中,查询API至少包括一个API。根据查询API,确定Clickhouse数据仓库中,与查询API中的信息相对应的仓储数据,作为用户的需求数据。

在本申请的一种实现方式中,向用户终端展示查询界面。其中,查询界面用于输入结构化查询语言SQL。在用户终端发送输入完成信息的情况下,根据用户终端输入的SQL,生成查询API。根据查询API,确定Clickhouse数据仓库中,与查询API中的信息相对应的仓储数据,作为用户的需求数据。

在本申请的一种实现方式中,在查询API生成之后,向用户终端发送参数信息,以提示用户输入查询API的查询参数。根据用户终端输入的参数,通过查询API,确定Clickhouse数据仓库中,与查询API中的信息相对应的仓储数据,作为用户的需求数据。

在本申请的一种实现方式中,业务数据的标签至少包括以下一项:syslog、数据库日志、服务器日志、用户画像。

在本申请的一种实现方式中,在Clickhouse数据仓库中,不存在用户的需求数据的情况下,生成需求信息,并将需求信息发送至维护终端。确定维护终端的反馈信息。以及将反馈信息转发至用户对应的用户终端。

另一方面,本申请还提供了一种基于Clickhouse的数据处理设备,该设备包括:

至少一个处理器;以及,与至少一个处理器通信连接的存储器。其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:

确定业务数据的标签。其中,业务数据为若干终端设备采集的数据。根据业务数据的标签,将各业务数据进行分类。将分类后的各业务数据进行相应的数据格式转换,得到待存储数据。根据待存储数据的标签,将待存储数据存储至Clickhouse数据仓库,以得到仓储数据。其中,待存储数据的标签根据业务数据的标签得到。基于用户的操作,确定Clickhouse数据仓库中,用户的需求数据。其中,需求数据根据仓储数据生成。

再一方面,本申请还提供了一种基于Clickhouse的数据处理的非易失性计算机存储介质,存储有计算机可执行指令,该计算机可执行指令设置为:

确定业务数据的标签。其中,业务数据为若干终端设备采集的数据。根据业务数据的标签,将各业务数据进行分类。将分类后的各业务数据进行相应的数据格式转换,得到待存储数据。根据待存储数据的标签,将待存储数据存储至Clickhouse数据仓库,以得到仓储数据。其中,待存储数据的标签根据业务数据的标签得到。基于用户的操作,确定Clickhouse数据仓库中,用户的需求数据。其中,需求数据根据仓储数据生成。

本申请获取若干业务数据,并确定各业务数据的标签,根据各业务数据的标签对各业务数据进行分类。将分类后的各业务数据进行格式转换并写入Clickhouse数据仓库,根据用户的操作,从Clickhouse数据仓库中,为用户提供需求数据。利用Clickhouse数据仓库的特性,提高了存储数据的读取速度,让用户能够及时地得到需求数据。将业务数据分类写入Clickhouse数据仓库,可以快速、便捷地将大量的业务数据写入Clickhouse数据仓库,节省业务数据存储的时间。本申请通过上述方案,可以及时为用户提供需求数据,为用户提供良好的数据需求服务。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例中一种基于Clickhouse的数据处理方法的一种流程示意图;

图2为本申请实施例中一种基于Clickhouse的数据处理设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

互联网的发展,使得各行业都通过网络来进行项目,也通过网络来为用户提供服务。对于网络服务而言,必不可少地人员,就是后台的开发工作者。用户在通过网络体验网络服务时,若面临新的服务需求时,开发工作者需要进行及时地反馈,以给用户良好地服务体验。但是,由于数据的日益增多,网络服务的使用人群过于庞大的情况下,对于用户的需求,可能不能及时地被开发工作者反馈,使得需求不能得到满足的用户降低网络服务体验。

若能够在当前数据服务场景下,提供一种及时满足用户对数据的需求的技术方案,可以提高用户对数据服务的体验。

基于此,本申请实施例提供了一种基于Clickhouse的数据处理方法、设备及介质,用来为用户提供及时地数据服务,提高用户对数据服务的使用体验度。本申请是一种基于Clickhouse的数据处理方法,Clickhouse是一种列式存储数据库,由于其通过列式存储方式进行存储数据,其读取数据的速度快,且存储数据的占用存储空间较其他数据库的存储方式小,用Clickhouse来存储用户、开发人员的项目数据,可以保证数据能够及时读取,为用户提供及时地数据服务奠定了基础。

以下结合附图,详细说明本申请的各个实施例。

本申请实施例提供了一种基于Clickhouse的数据处理方法,如图1所示,该方法可以包括步骤101-步骤105:

步骤101,服务器确定业务数据的标签。

其中,业务数据为若干终端设备采集的数据。

在本申请实施例中,业务数据可以由多个采集终端发送到服务器中,也可以是由多个服务器组成的服务器集群采集的数据。其中,采集终端可以是笔记本电脑、手机等终端设备,也可以是其它设备,本申请对此不作具体限定。

本申请的执行主体可以是服务器,可以是若干服务器组成的服务器集群,服务器集群中存在负责不同功能的服务器,例如数据采集服务器、数据处理服务器等,服务器集群中的各服务器可以相互通信,实现本申请的基于Clickhouse的数据处理方法。

在业务数据被采集到之后,服务器可以对业务数据的标签进行确定。在本申请实施例中,业务数据的标签可以包括以下一项:syslog、数据库日志、服务器日志、用户画像。在实际使用过程中,由于业务数据的增长,标签的类型可以包括更多,本申请对于业务数据的标签数量及类型,不作具体限定。

如开发人员在开发过程中,写入服务器日志中一种用户还未进行使用的数据,服务器可以确定该未使用的数据的标签为服务器日志。

需要说明的是,服务器作为基于Clickhouse的数据处理方法的执行主体,仅为示例性存在,执行主体不仅限于服务器,本申请对此不作具体限定。

步骤102,服务器根据业务数据的标签,将各业务数据进行分类。

在服务器确定业务数据的标签之后,服务器可以根据业务数据标签,对业务数据进行分类,以将对业务数据进行分类后地处理。

通过对业务数据进行分类,可以在业务数据处理时,不会有干扰数据的存在,保证在数据处理过程中的处理方便,不易出错。

步骤103,服务器将分类后的各业务数据进行相应的数据格式转换,得到待存储数据。

在本申请实施例中,服务器可以对业务数据进行数据格式转换,以便于对业务数据的传输及存储。服务器可以通过执行以下方法,对业务数据进行格式转换:

首先,服务器确定业务数据的数据格式。

业务数据的数据格式存在各种格式,例如log文件。

然后,服务器根据业务数据的数据格式,匹配预设的数据转换标准。

服务器可以预先存储有若干种数据转换标准,数据转换标准可以将一种数据格式的业务数据,处理为另一种数据格式的数据,但数据中记录的内容保持不变。数据转换标准例如log文件转换为轻量级的数据交换(JavaScript Object Notation,JS对象简谱)JSON格式。

最后,服务器根据匹配的数据转换标准,将业务数据进行数据格式转换,以得到待存储数据。

其中,待存储数据为轻量级的数据交换JSON格式。

服务器将各数据格式下的业务数据,转换为JSON格式的待存储数据,方便待存储数据在处理时,格式统一,方便服务器对其进行处理,节省数据处理地时间。

服务器得到待存储数据后,可以将待存储数据进行存储至Clickhouse数据仓库,方便在用户对待存储数据有所需求时,及时地提供给用户。由于服务器需要既需要采集数据,又需要进行待存储数据写入Clickhouse数据仓库,为避免数据丢失,保证数据安全。因此,在待存储数据写入Clickhouse数据仓库之前,本申请还可以执行以下方法:

首先,服务器按照待存储数据的标签,对待存储数据进行数据压缩。

服务器可以根据待存储数据的标签,如待存储数据有A标签、B标签,服务器将A标签、B标签的待存储数据分别进行数据压缩,服务器数据压缩可以通过压缩软件,将待存储数据压缩为压缩文件,如GNUzip文件。

其次,服务器根据RSA加密算法,将数据压缩后的待存储数据进行加密。

服务器对待存储数据进行加密的同时或之后,还可以对压缩后的待存储数据进行加密操作,加密时服务器可以使用RSA加密算法,对待存储数据进行加密。

由于RSA加密算法的安全性高,RSA加密算法不易被算法攻破。因此在项目数据量大,且用户数据、开发人员数据等各类待存储数据的安全要求较高的情况下,服务器通过RSA加密算法对待存储数据进行加密,可以更好地保证数据的安全性,保证数据能够准确地提供给用户。

最后,服务器在将待存储数据写入Clickhouse数据仓库之前,将加密后的待存储数据进行解密操作。

在服务器进行存储待存储数据至Clickhouse数据仓库之前,需要通过服务器自身存储的一解密秘钥以及服务器中的加密秘钥,将压缩后的待存储数据进行解密操作,进而保证服务器内得到的待存储数据的准确,以及Clickhouse数据仓库中的数据的可信度。

步骤104,服务器根据待存储数据的标签,将待存储数据存储至Clickhouse数据仓库,以得到仓储数据。

其中,待存储数据的标签根据业务数据的标签得到。

服务器根据待存储数据的标签,按照列式存储的方式,将待存储数据一一存储在Clickhouse数据仓库中。服务器根据待存储数据的标签,如C标签的待存储数据,服务器通过预先存储的批处理脚本,将C标签的待存储数据进行批处理写入Clickhouse。

待存储数据的标签可以根据业务数据的标签得到,举例说明,业务数据的标签可以是syslog、数据库日志、服务器日志、用户画像中的一种,服务器根据业务数据生成的待存储数据的标签可以与业务数据的标签相对应,如业务数据的标签为syslog,那么待存储数据的标签也是syslog。

服务器通过数据的批处理,可以提供Clickhouse的并发写入能力,提高数据处理的速度。

步骤105:服务器基于用户的操作,确定Clickhouse数据仓库中,用户的需求数据。

其中,需求数据根据仓储数据生成。

在本申请实施例中,服务器可以通过用户对应的用户终端交互界面,与用户终端进行交互。服务器与用户终端进行交互,得到用户的需求数据,可以通过执行以下方法实现:

首先,服务器向用户终端展示查询界面。

其中,查询界面包括用于查询Clickhouse数据仓库中的仓储数据的若干应用程序编程接口API。

服务器向用户终端展示设置有,用于查询Clickhouse数据仓库中的仓储数据的若干应用程序编程接口API的查询界面。

然后,服务器基于用户对查询界面的操作,生成查询API。

其中,查询API至少包括一个API。

用户可以在查询界面中,对若干应用程序编程接口API进行相应的操作,例如滑动API、点击API、拖拽API等操作,用户可以选择查询界面中的一个位置放置选定API或者通过查询界面中的预设操作确定选定API。服务器根据用户的选定API,生成查询API,该查询API至少包括一个API。

最后,服务器根据查询API,确定Clickhouse数据仓库中,与查询API中的信息相对应的仓储数据,作为用户的需求数据。

服务器可以根据查询API,获取Clickhouse数据仓库中的用户的需求数据,该数据与查询API中的信息相对应。例如查询API为数据1、数据2、数据3,服务器根据数据1、数据2、数据3所分别对应的标签,从Clickhouse数据仓库中快速确定数据1、数据2、数据3,以提供给用户,满足用户需求。

再以软件为例,在软件中用户需求数据为一软件界面的翻页功能,根据用户在查询界面的第一选定API为“翻页”,第二选定API为“某某软件界面”,服务器将第一选定API、第二选定API生成查询API。根据查询API,服务器从Clickhouse数据仓库中,获取包含“翻页”“某某软件界面”的相应的仓储数据,以提供给用户。

在本申请的另一个实施例中,服务器还可以为用户展示用户自行编写API的界面,通过用户定义编写的API,提供给用户需求数据,具体地:

首先,服务器向用户终端展示查询界面。其中,查询界面用于输入结构化查询语言SQL。

然后,服务器在用户终端发送输入完成信息的情况下,根据用户终端输入的SQL,生成查询API。

在查询界面,可以设置一输入完成的预设区域,用户对该预设区域进行操作,服务器即可确定用户终端发送输入完成信息,以根据用户终端输入的SQL,进行生成查询API。

最后,服务器根据查询API,确定Clickhouse数据仓库中,与查询API中的信息相对应的仓储数据,作为用户的需求数据。

根据查询API获取用户的需求数据,上述步骤中已经论述,在此不再赘述。

服务器在确定查询API之后,服务器还需要确定API的参数,以准确地在Clickhouse数据仓库中,确定用户的需求数据,如查询API中数据1存在一子参数,用户需要对该子参数进行定义。具体如下:

服务器在查询API生成之后,向用户终端发送参数信息,以提示用户输入查询API的查询参数。

例如用户的需求数据为一地图数据,Clickhouse数据仓库中的地图数据存在若干个,名称均为多个字母、多个数字组成,若用户不定义地图数据的名称参数,服务器不能确定用户的需求数据是哪一个地图数据

服务器根据用户终端输入的参数,通过查询API,确定Clickhouse数据仓库中,与查询API中的信息相对应的仓储数据,作为用户的需求数据。

在本申请实施例中,可能存在Clickhouse数据仓库中不存在满足用户需求的仓储数据,本申请可以通过执行以下方法,提供给用户需求数据:

首先,服务器在Clickhouse数据仓库中,不存在用户的需求数据的情况下,生成需求信息,并将需求信息发送至维护终端。

然后,服务器确定维护终端的反馈信息。

反馈信息可以是提供给用户的需求数据,也可以是其它用于满足用户的需求数据的信息,例如:“某某时间,为您提供需求数据”。

最后,服务器将反馈信息转发至用户对应的用户终端。

服务器将需求信息发送至维护终端,可以使维护终端及时为用户终端提供数据服务。现有技术在未使用本申请提供的方法之前,用户只能先将需求数据的信息发送给开发人员,开发人员对用户需求数据进行开发操作,可能耽误用户的使用时间。由于项目数据的增多,开发人员在工作量巨大时,可能不能及时得到部分用户的需求数据的信息,更加增加了用户的等待时间。

通过本申请提供的技术方案,可以在用户未提出需求数据前,将各种日志数据、用户画像等存储于Clickhouse数据仓库中。用户在有数据需求时,通过在服务器提供的查询界面操作,可以直接得到需求数据,不需要开发人员进行开发。本申请提供的技术方案,可以更加及时地满足用户的数据需求,为用户提供更好地数据服务。

图2为本申请实施例提供的一种基于Clickhouse的数据处理设备的结构示意图,该设备包括:

至少一个处理器;以及,与至少一个处理器通信连接的存储器。其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:

确定业务数据的标签。其中,业务数据为若干终端设备采集的数据。根据业务数据的标签,将各业务数据进行分类。将分类后的各业务数据进行相应的数据格式转换,得到待存储数据。根据待存储数据的标签,将待存储数据存储至Clickhouse数据仓库,以得到仓储数据。其中,待存储数据的标签根据业务数据的标签得到。基于用户的操作,确定Clickhouse数据仓库中,用户的需求数据。其中,需求数据根据仓储数据生成。

本申请实施例还提供了一种基于Clickhouse的数据处理的非易失性计算机存储介质,存储有计算机可执行指令,该计算机可执行指令设置为:

确定业务数据的标签。其中,业务数据为若干终端设备采集的数据。根据业务数据的标签,将各业务数据进行分类。将分类后的各业务数据进行相应的数据格式转换,得到待存储数据。根据待存储数据的标签,将待存储数据存储至Clickhouse数据仓库,以得到仓储数据。其中,待存储数据的标签根据业务数据的标签得到。基于用户的操作,确定Clickhouse数据仓库中,用户的需求数据。其中,需求数据根据仓储数据生成。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备、介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请实施例提供的设备、介质与方法是一一对应的,因此,设备、介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备、介质的有益技术效果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 一种基于Clickhouse的数据处理方法、设备及介质
  • 基于智能安防设备的数据处理方法、设备及存储介质
技术分类

06120113822520