CN112948455A - 一种基于Apache Druid的实时分析计算方法 - Google Patents
一种基于Apache Druid的实时分析计算方法 Download PDFInfo
- Publication number
- CN112948455A CN112948455A CN202110023876.8A CN202110023876A CN112948455A CN 112948455 A CN112948455 A CN 112948455A CN 202110023876 A CN202110023876 A CN 202110023876A CN 112948455 A CN112948455 A CN 112948455A
- Authority
- CN
- China
- Prior art keywords
- data
- apache
- kafka
- druid
- real
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 31
- 238000010223 real-time analysis Methods 0.000 title claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 7
- 238000004140 cleaning Methods 0.000 claims abstract description 4
- 239000002356 single layer Substances 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 230000000737 periodic effect Effects 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010205 computational analysis Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- 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/2471—Distributed 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于大数据实时计算技术领域,公开了一种基于Apache Druid的实时分析计算方法,为了解决现有技术存在的开发周期长、成本高以及更新慢的问题。本发明步骤1:获取kafka原始数据并进行清洗和转换得到规范化的数据记录;步骤2:配置规则,然后基于Flink流计算对形成的数据记录进行解析,并输出到消息队列kafka中;步骤3:自定义数据加工逻辑,并提交任务到Apache Druid中。
Description
技术领域
本发明属于大数据实时计算技术领域,具体涉及一种基于Apache Druid的实时分析计算方法。
背景技术
随着大数据技术在金融领域的应用范围越来越广,对数据的时效性要求也越来越高。企业需要能够实时跟踪最新的业务开展情况,为企业的运营决策提供决策,为数据赋能。不过由于数据的增长,业务对数据时效性的要求,给大数据分析带来挑战,针对海量的数据实时分析需求,需要一种更合适的分析引擎来进行更快的分析数据,更高效的挖掘数据。
然而,现有技术中对于大数据实时指标的计算和分析需要如下步骤:提出需求-开发- 测试和上线,每次新增一个指标,都需要重复上述步骤,从而导致开发周期长、成本高以及分析计算的更新慢。
发明内容
基于以上问题,本发明提供一种基于Apache Druid的实时分析计算方法,避免了传统方式下开发周期长,时效性差以及灵活性不够的特点,实现了业务人员随时随地的掌握数据信息,分析数据。
为解决技术问题,本发明所采用的技术方案是:
一种基于Apache Druid的实时分析计算方法,其特征在于,包括如下:
步骤1:获取kafka中原始数据进行清洗和转换得到规范化的数据记录;
步骤2:配置规则,然后基于Flink流计算对形成的数据记录进行解析,并输出到消息队列kafka中;
步骤3:自定义数据加工逻辑,并提交任务到Apache Druid中。
优选的,上述步骤1具体包括如下:
步骤1.1:过滤出需要的数据,根据日志请求从kafka原始数据中筛选出需要解析的数据记录;
步骤1.2:对步骤1.1中筛选出的数据记录中的数据进行预处理;
步骤1.3:经过步骤1.2处理后的数据成为了规范化的数据记录,此时定义需要获取的字段。
优选的,上述步骤1.2中的预处理包括:去掉数据记录中的中文字符,去掉字符串前后空格以及去掉记录中的特殊字符。
优选的,步骤2具体包括如下:
步骤2.1:定义需要解析的字段,然后基于Flink流计算将字段从步骤1.3中得到的规划化的数据记录中依次提取出来并进行解析得到解析后的数据;
步骤2.2:将上述步骤2.1中得到的解析后的数据,组成一个标准的单层json格式,存入到一个Ring Buffer(环形缓冲队列)中。
步骤2.3:将步骤2.2中存入到Ring Buffer中队列的数据,批量的方式取出然后输出到消息队列kafka里面。
在一些实施例中,步骤2.1中的对数据记录进行解析采用抽象语法树(AST)的方式进行解析。
优选的,上述步骤3具体包括如下:
步骤3.1:自定义数据加工逻辑,对上述步骤2.3中的输出到消息队列kafka里面的数据进行加工并形成json字符串;
步骤3.2:将步骤3.1中的自定义加工逻辑形成的json字符串,通过http的方式提交到Apache Druid上。
优先的,步骤3.1具体包括如下:
步骤3.1.1:定义数据源,同时需要指定时间字段列;其中,数据源是来自kafka消息队列。例如将数据源定义为“xw_druid_kafkaSource”,时间字段列设置为“time”。
步骤3.1.2:定义需要计算的维度和相应的指标;
步骤3.1.3:定义任务运行间隔时间,通过周期批量的方式抽取kafka中的数据进行加工并获得json字符串。
优先的,步骤3.1.3中,运行间隔时间设置为天、小时、分钟或秒。
与现有技术相比,本发明具有以下有益效果:
本发明的基于Apache Druid的实时分析计算方法,实现了一种可配置,可扩展和多维度指标的计算方法,利用Apache Druid的特性及时输出想要的结果满足业务的需要。在海量数据下,业务人员可以自由定义维度,自由定义指标计算,能够实现毫秒级返回结果。避免了传统方式下开发周期长,时效性差以及灵活性不够的特点,实现了业务人员随时随地的掌握数据信息,分析数据。
具体实施方式
下面结合实施例对本发明作进一步的描述,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域的普通技术人员在没有做出创造性劳动前提下所获得的其他所用实施例,都属于本发明的保护范围。
本发明的基于Apache Druid的实时分析计算方法,包括如下:
步骤1:获取kafka中原始数据进行清洗和转换得到规范化的数据记录;
步骤2:配置规则,然后基于Flink流计算对形成的数据记录进行解析,并输出到消息队列kafka中;
步骤3:自定义数据加工逻辑,并提交任务到Apache Druid中。
优选的,上述步骤1具体包括如下:
步骤1.1:过滤出需要的数据,根据日志请求从kafka原始数据中筛选出需要解析的数据记录;
步骤1.2:对步骤1.1中筛选出的数据记录中的数据进行预处理;
步骤1.3:经过步骤1.2处理后的数据成为了规范化的数据记录,此时定义需要获取的字段。
优选的,上述步骤1.2中的预处理包括:去掉数据记录中的中文字符,去掉字符串前后空格以及去掉记录中的特殊字符。
优选的,步骤2具体包括如下:
步骤2.1:定义需要解析的字段,然后基于Flink流计算将字段从步骤1.3中得到的规划化的数据记录中依次提取出来并进行解析得到解析后的数据;
步骤2.2:将上述步骤2.1中得到的解析后的数据,组成一个标准的单层json格式,存入到一个Ring Buffer(环形缓冲队列)中。
步骤2.3:将步骤2.2中存入到Ring Buffer中队列的数据,批量的方式取出然后输出到消息队列kafka里面。
在一些实施例中,步骤2.1中的对数据记录进行解析采用抽象语法树(AST)的方式进行解析。
优选的,上述步骤3具体包括如下:
步骤3.1:自定义数据加工逻辑,对上述步骤2.3中的输出到消息队列kafka里面的数据进行加工并形成json字符串;
步骤3.2:将步骤3.1中的自定义加工逻辑形成的json字符串,通过http的方式提交到Apache Druid上,并在页面上观察任务是否启动。
优先的,步骤3.1具体包括如下:
步骤3.1.1:定义数据源,同时需要指定时间字段列;其中,数据源是来自kafka消息队列,设置为“xw_druid_kafkaSource”,时间字段列设置为“time”。
步骤3.1.2:定义需要计算的维度和相应的指标;维度和指标的关系如下表所示:
计算的维度是一组属性,可以唯一标识一组记录,这里的维度可以选择步骤2.1中指定解析字段中的部分,也可以是全部。
指标是在对应维度下的一个唯一聚合值。指标的运算支持:求和、求差、求平均数、求方差、求1/4分位数和求3/4分位数等。
步骤3.1.3:定义任务运行间隔时间,通过周期批量的方式抽取kafka中的数据进行加工并获得json字符串。
优先的,步骤3.1.3中,运行间隔时间设置为天、小时、分钟或秒。在对数据进行实时计算分析时,运行间隔时间设置为分钟或秒。
本发明的基于Apache Druid的实时分析计算方法,实现了一种可配置,可扩展和多维度指标的计算方法,利用Apache Druid的特性及时输出想要的结果满足业务的需要。在海量数据下,业务人员可以自由定义维度,自由定义指标计算,能够实现毫秒级返回结果。避免了传统方式下开发周期长,时效性差以及灵活性不够的特点,实现了业务人员随时随地的掌握数据信息,分析数据。
其中,在此补充说明的是:kafka:一种消息队列,可以将数据放入改队列,游到另外一个输出接口中去。Flink:一种大数据分布式计算引擎,能够对海量数据进行高效加工处理。 Apache Druid:一种高性能实时分析数据库。本领域的技术人员都能明白和理解,在此不再赘述。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (8)
1.一种基于Apache Druid的实时分析计算方法,其特征在于,包括如下:
步骤1:获取kafka原始数据并进行清洗和转换得到规范化的数据记录;
步骤2:配置规则,然后基于Flink流计算对形成的数据记录进行解析,并输出到消息队列kafka中;
步骤3:自定义数据加工逻辑,并提交任务到Apache Druid中。
2.根据权利要求1所述的基于Apache Druid的实时分析计算方法,其特征在于,上述步骤1具体包括如下:
步骤1.1:过滤出需要的数据,根据日志请求从kafka原始数据中筛选出需要解析的数据记录;
步骤1.2:对步骤1.1中筛选出的数据记录中的数据进行预处理;
步骤1.3:经过步骤1.2处理后的数据成为了规范化的数据记录,此时定义需要获取的字段。
3.根据权利要求2所述的基于Apache Druid的实时分析计算方法,其特征在于,上述步骤1.2中的预处理包括:去掉数据记录中的中文字符,去掉字符串前后空格以及去掉记录中的特殊字符。
4.根据权利要求3所述的基于Apache Druid的实时分析计算方法,其特征在于,步骤2具体包括如下:
步骤2.1:定义需要解析的字段,然后基于Flink流计算将字段从步骤1.3中得到的规划化的数据记录中依次提取出来并进行解析得到解析后的数据;
步骤2.2:将上述步骤2.1中得到的解析后的数据,组成一个标准的单层json格式,存入到一个Ring Buffer中;
步骤2.3:将步骤2.2中存入到Ring Buffer中队列的数据,批量的方式取出然后输出到消息队列kafka里面。
5.根据权利要求4所述的基于Apache Druid的实时分析计算方法,其特征在于,步骤2.1中的对数据记录进行解析采用抽象语法树的方式进行解析。
6.根据权利要求5所述的基于Apache Druid的实时分析计算方法,其特征在于,步骤3具体包括如下:
步骤3.1:自定义数据加工逻辑,对上述步骤2.3中的输出到消息队列kafka里面的数据进行加工并形成json字符串;
步骤3.2:将步骤3.1中的自定义加工逻辑形成的json字符串,通过http的方式提交到Apache Druid上。
7.根据权利要求6所述的基于Apache Druid的实时分析计算方法,其特征在于,步骤3.1具体包括如下:
步骤3.1.1:定义数据源,同时需要指定时间字段列;其中,数据源是来自kafka消息队列。
步骤3.1.2:定义需要计算的维度和相应的指标;
步骤3.1.3:定义任务运行间隔时间,通过周期批量的方式抽取kafka中的数据进行加工并获得json字符串。
8.根据权利要求7所述的基于Apache Druid的实时分析计算方法,其特征在于,步骤3.1.3中,定义任务运行间隔时间设置为天、小时、分钟或秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110023876.8A CN112948455A (zh) | 2021-01-08 | 2021-01-08 | 一种基于Apache Druid的实时分析计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110023876.8A CN112948455A (zh) | 2021-01-08 | 2021-01-08 | 一种基于Apache Druid的实时分析计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112948455A true CN112948455A (zh) | 2021-06-11 |
Family
ID=76235111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110023876.8A Pending CN112948455A (zh) | 2021-01-08 | 2021-01-08 | 一种基于Apache Druid的实时分析计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948455A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684352A (zh) * | 2018-12-29 | 2019-04-26 | 江苏满运软件科技有限公司 | 数据分析系统、方法、存储介质及电子设备 |
CN110147398A (zh) * | 2019-04-25 | 2019-08-20 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、介质和电子设备 |
WO2019161931A1 (en) * | 2018-02-26 | 2019-08-29 | Huawei Technologies Co., Ltd. | Stream processing device and method of processing a stream of data |
CN110245158A (zh) * | 2019-06-10 | 2019-09-17 | 上海理想信息产业(集团)有限公司 | 一种基于Flink流计算技术的多源异构数据实时处理系统及方法 |
CN111026725A (zh) * | 2019-10-21 | 2020-04-17 | 北京奇艺世纪科技有限公司 | 消费数据的数据处理方法、装置、计算机设备和存储介质 |
CN111444291A (zh) * | 2020-03-27 | 2020-07-24 | 上海爱数信息技术股份有限公司 | 一种基于流处理引擎和规则引擎的实时数据告警方法 |
CN111813871A (zh) * | 2020-06-30 | 2020-10-23 | 北京九章云极科技有限公司 | 一种数据实时处理系统及方法 |
-
2021
- 2021-01-08 CN CN202110023876.8A patent/CN112948455A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019161931A1 (en) * | 2018-02-26 | 2019-08-29 | Huawei Technologies Co., Ltd. | Stream processing device and method of processing a stream of data |
CN109684352A (zh) * | 2018-12-29 | 2019-04-26 | 江苏满运软件科技有限公司 | 数据分析系统、方法、存储介质及电子设备 |
CN110147398A (zh) * | 2019-04-25 | 2019-08-20 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、介质和电子设备 |
CN110245158A (zh) * | 2019-06-10 | 2019-09-17 | 上海理想信息产业(集团)有限公司 | 一种基于Flink流计算技术的多源异构数据实时处理系统及方法 |
CN111026725A (zh) * | 2019-10-21 | 2020-04-17 | 北京奇艺世纪科技有限公司 | 消费数据的数据处理方法、装置、计算机设备和存储介质 |
CN111444291A (zh) * | 2020-03-27 | 2020-07-24 | 上海爱数信息技术股份有限公司 | 一种基于流处理引擎和规则引擎的实时数据告警方法 |
CN111813871A (zh) * | 2020-06-30 | 2020-10-23 | 北京九章云极科技有限公司 | 一种数据实时处理系统及方法 |
Non-Patent Citations (1)
Title |
---|
ANSSUMMER: "kafka+flink+druid/es实时计算方案", 《HTTPS://BLOG.CSDN.NET/YIZHOU35/ARTICLE/DETAILS/103003830》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112052151A (zh) | 故障根因分析方法、装置、设备及存储介质 | |
US9563650B2 (en) | Migrating federated data to multi-source universe database environment | |
CN111291049A (zh) | 一种创建表的方法、装置、设备和存储介质 | |
CN106951557B (zh) | 日志关联方法、装置和应用其的计算机系统 | |
CN104572976B (zh) | 网站数据更新方法和系统 | |
CN111190892B (zh) | 一种数据回填中处理异常数据的方法和装置 | |
CN112181960A (zh) | 一种基于AIOps的智能运维框架系统 | |
CN112236761A (zh) | 数据立方体的动态增量更新 | |
CN115543402B (zh) | 一种基于代码提交的软件知识图谱增量更新方法 | |
CN113360554A (zh) | 一种数据抽取、转换和加载etl的方法和设备 | |
CN111881105B (zh) | 业务数据的标注模型及其模型训练方法 | |
CN110674360A (zh) | 一种用于数据关联图谱的构建和数据的溯源方法和系统 | |
CN116126950A (zh) | 实时物化视图系统和方法 | |
Al-Ameen et al. | A systematic and open exploration of faas research | |
CN109284088B (zh) | 一种信令大数据处理方法及电子设备 | |
CN114398394A (zh) | 数据血缘解析方法、装置、设备及存储介质 | |
CN113901037A (zh) | 数据管理方法、装置及存储介质 | |
CN113419740A (zh) | 程序数据流的分析方法、装置、电子设备及可读存储介质 | |
CN112948455A (zh) | 一种基于Apache Druid的实时分析计算方法 | |
US11681721B2 (en) | Systems and methods for spark lineage data capture | |
CN115510139A (zh) | 数据查询方法和装置 | |
US11989199B2 (en) | Optimizing flow of data within ETL data processing pipeline | |
CN115599871A (zh) | 基于湖仓一体的数据处理系统和方法 | |
CN115168474A (zh) | 一种基于大数据模型的物联中台系统搭建方法 | |
CN113612832A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210611 |
|
RJ01 | Rejection of invention patent application after publication |