CN113220766A - 一种基于Siddhi存储数据到Hbase的方法及装置 - Google Patents
一种基于Siddhi存储数据到Hbase的方法及装置 Download PDFInfo
- Publication number
- CN113220766A CN113220766A CN202110566060.XA CN202110566060A CN113220766A CN 113220766 A CN113220766 A CN 113220766A CN 202110566060 A CN202110566060 A CN 202110566060A CN 113220766 A CN113220766 A CN 113220766A
- Authority
- CN
- China
- Prior art keywords
- data
- hbase
- siddhi
- storing
- cache
- 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
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/25—Integrating or interfacing systems involving database management systems
-
- 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
Abstract
本发明公开了一种基于Siddhi存储数据到Hbase的方法及装置,主要解决现有技术中存在的现有流数据存储对技术和环境要求高的问题。该一种基于Siddhi存储数据到Hbase的方法为预设整个SiddhiQL语句中的参数;然后继承Siddhi的Sink抽象类,实现其中的核心抽象方法,将自定义Sink框架搭建完成;再然后通过触发条件批量将流数据存入Hbase中。通过上述方案,本发明达到了降低流数据存储所需技术要去和环境要求的目的,具有很高的实用价值和推广价值。
Description
技术领域
本发明涉及流数据存储技术领域,具体地说,是涉及一种基于Siddhi存储数据到Hbase的方法及装置。
背景技术
现对流数据的持续存入Hbase是通过spark-streaming从kafka种拉取数据,然后做简单的数据清洗最后存入Hbase中;通过该方法将流数据实时存入Hbase的流数据入库效率高,但是对技术和处理环境有更高的要求,其至少需要提供完整的kafka和spark环境的支持,且不仅要考虑目标数据怎么发布到kafka上还需要得到spark编程的支持。
发明内容
本发明的目的在于提供一种基于Siddhi存储数据到Hbase的方法及装置,以解决现有流数据存储对技术和环境要求高的问题。
为了解决上述问题,本发明提供如下技术方案:
一种基于Siddhi存储数据到Hbase的方法包括以下步骤:
S1、预设整个SiddhiQL语句中的参数;
S2、继承Siddhi的Sink抽象类,实现其中的核心抽象方法,将自定义Sink框架搭建完成;
S3、运用Hbase提供的API连接Hbase集群,并向指定命名空间下的表中写入数据,数据为siddhi中配置的相关source数据源所捕获的数据;
S4、实现一个内存Cache,将Siddhi中的流数据暂存到Cache中,等待步骤S1中参数的触发,判断是否达到触发条件,是则将Cache中的流数据批量的刷写到Hbase中,否则不做任何操作。
本发明通过自定义Siddhi的HbaseSink实现对流式数据的入库处理,可以很好的规避现有流数据存储对技术和环境要求高的问题;不需要用户搭建kafka和spark环境,用户只需要导入Siddhi核心环境和自定义HbaseSink拓展支持包,通过编写简单的SiddhiQL查询语句就能实现将流式数据存入Hbase,SiddhiQL语言具有学习成本低、结构通俗易懂,相比通过spark编程实现流式数据存入Hbase,难度下降了几个数量级。
进一步的,步骤S1的参数包括Hbase中需要的hbase.zookeeper.quorum、namespace、tablename、columnfamily;刷写触发条件参数:flush.count和time.out;通过时间和数据量来控制刷写时机。
进一步的,步骤S4中所需步骤S1中的参数为刷写触发条件参数。
进一步的,步骤S4中触发条件为包括Cache中存入流数据的条数和批事件暂存在Cache中的时间,判断这两者中任一个是否达到指定的数量级,是则触发,否则不触发。
一种基于Siddhi自定义HbaseSink的装置包括存储器:用于存储可执行指令;处理器:用于执行所述存储器中存储的可执行指令,实现一种基于Siddhi存储数据到Hbase的方法。
与现有技术相比,本发明具有以下有益效果:
(1)本发明通过自定义Siddhi的HbaseSink实现对流式数据的入库处理,可以很好的规避现有流数据存储对技术和环境要求高的问题;不需要用户搭建kafka和spark环境,用户只需要导入Siddhi核心环境和自定义HbaseSink拓展支持包,通过编写简单的SiddhiQL查询语句就能实现将流式数据存入Hbase,SiddhiQL语言具有学习成本低、结构通俗易懂,相比通过spark编程实现流式数据存入Hbase,难度下降了几个数量级。
(2)本发明通过自定义HbaseSink的实现,封装HbaesClient,借助Siddhi本身强大的流数据处理能力实现了将流数据存入Hbase的实现,摆脱复杂流式数据处理引擎:stream、storm、flink,依托Siddhi实现流数据入Hbase,故通过本发明流数据存储所部署环境要求更低。
(3)本发明通过简单的SiddhiQL语句实现流式数据存入Hbase,使流数据的存储操作更简单。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合实施例对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
Siddhi:Siddhi是以僧伽罗语中的事件命名;Siddhi是流处理和复杂事件处理平台,可用于构建成熟的事件驱动的应用程序。
Sink:Siddhi将数据通过事件的形式承载,如载着数据货物的邮轮发往下一个港口,目前Siddhi自带了丰富的Sink,其中包括memory、log、kafka、file、http等。
Hbase:Hbase是一种高可靠、高性能、面向列、可伸缩的分布式存储系统,可以利用廉价的Server搭建起大规模存储集群。
SiddhiQL:是siddhi框架支持的一种类SQL的解析语言。
Cache:是指计算机中的一块内存空间。
HbaseSink,是整个专利方法在siddhi框架的背景下,实现的自定义siddhi框架存储模块——HbaseSink。
实施例1
一种基于Siddhi存储数据到Hbase的方法,首先通过对Siddhi的Sink抽象类的继承实现自定义HbaseSink,然后通过Siddhi将流数据批量存入Hbase中;具体过程如下:
第一步,预设好整个SiddhiQL语句中的参数,包括Hbase中需要的hbase.zookeeper.quorum、namespace、tablename、columnfamily,同时还加入了刷写触发条件参数:flush.count和time.out,通过时间和数据量来控制刷写时机。
第二步,继承Siddhi的Sink抽象类,实现其中的核心抽象方法,此为本领域成熟的技术故在此不做累述,将大体的自定义Sink框架搭建完成。
第三步,实现HbaseClient的编写,具体为运用Hbase提供的API去连接Hbase集群,并向指定命名空间下的表中写入数据,数据为siddhi中配置的相关source数据源所捕获的数据。
第四步,实现一个内存Cache,此为本领域成熟的技术,其具体过程在此不做累述,将Siddhi中的事件暂存到Cache中,等待刷写条件的触发,其中的触发条件包括Cache中存入的事件的条数以及批事件暂存在Cache中的时间,当两者其一达到指定的数量级就将Cache中的事件批量的刷写到Hbase中,两者均未达到则不做任何操作。
Cache就是通过JAVA语言开辟一个计算机的内存空间,此空间用来暂时存储siddhi捕获的数据;最后当Cache中的数据满足设置的捕获到的条数或者等待捕获的时间条件,二者满足其一就实现将Cache中的数据存储到Hbase中,如果配置的目标Hbase是集群环境就是存储到Hbase集群,如果是单机Hbase就存储到单机Hbase。
实施例2
一种基于Siddhi自定义HbaseSink的装置包括存储器:用于存储可执行指令;处理器:用于执行所述存储器中存储的可执行指令,实现一种基于Siddhi存储数据到Hbase的方法。
本发明用于将通过Siddhi处理的流式数据存入Hbase,通过自定义Siddhi的Sink类型,实现将数据存储到Hbase中,从而实现大规模流数据的持续存储。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (5)
1.一种基于Siddhi存储数据到Hbase的方法,其特征在于,包括以下步骤:
S1、预设整个SiddhiQL语句中的参数;
S2、继承Siddhi的Sink抽象类,实现其中的核心抽象方法,将自定义Sink框架搭建完成;
S3、运用Hbase提供的API连接Hbase集群,并向指定命名空间下的表中写入数据,数据为siddhi中配置的相关source数据源所捕获的数据;
S4、实现一个内存Cache,将Siddhi中的流数据暂存到Cache中,等待步骤S1中参数的触发,判断是否达到触发条件,是则将Cache中的流数据批量的刷写到Hbase中,否则不做任何操作。
2.根据权利要求1所述的一种基于Siddhi存储数据到Hbase的方法,其特征在于,步骤S1的参数包括Hbase中需要的hbase.zookeeper.quorum、namespace、tablename、columnfamily;刷写触发条件参数:flush.count和time.out。
3.根据权利要求2所述的一种基于Siddhi存储数据到Hbase的方法,其特征在于,步骤S4中所需步骤S1中的参数为刷写触发条件参数。
4.根据权利要求1所述的一种基于Siddhi存储数据到Hbase的方法,其特征在于,步骤S4中触发条件为包括Cache中存入流数据的条数和批事件暂存在Cache中的时间,判断这两者中任一个是否达到指定的数量级,是则触发,否则不触发。
5.一种基于Siddhi存储数据到Hbase的方法,其特征在于,包括
存储器:用于存储可执行指令;
处理器:用于执行所述存储器中存储的可执行指令,实现如权利要求1-4任一项所述的一种基于Siddhi存储数据到Hbase的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110566060.XA CN113220766A (zh) | 2021-05-24 | 2021-05-24 | 一种基于Siddhi存储数据到Hbase的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110566060.XA CN113220766A (zh) | 2021-05-24 | 2021-05-24 | 一种基于Siddhi存储数据到Hbase的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113220766A true CN113220766A (zh) | 2021-08-06 |
Family
ID=77098105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110566060.XA Pending CN113220766A (zh) | 2021-05-24 | 2021-05-24 | 一种基于Siddhi存储数据到Hbase的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220766A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914399A (zh) * | 2012-12-31 | 2014-07-09 | 中国移动通信集团公司 | 一种并行计算系统中的磁盘缓存方法及装置 |
CN104572903A (zh) * | 2014-12-26 | 2015-04-29 | 北京中交兴路车联网科技有限公司 | 一种Hbase数据库的控制数据入库的方法 |
CN107229673A (zh) * | 2017-04-20 | 2017-10-03 | 努比亚技术有限公司 | Hbase数据库的数据写入方法、Hbase终端及存储介质 |
CN111142786A (zh) * | 2019-11-29 | 2020-05-12 | 苏州浪潮智能科技有限公司 | 一种数据写入方法、装置及计算机可读存储介质 |
-
2021
- 2021-05-24 CN CN202110566060.XA patent/CN113220766A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914399A (zh) * | 2012-12-31 | 2014-07-09 | 中国移动通信集团公司 | 一种并行计算系统中的磁盘缓存方法及装置 |
CN104572903A (zh) * | 2014-12-26 | 2015-04-29 | 北京中交兴路车联网科技有限公司 | 一种Hbase数据库的控制数据入库的方法 |
CN107229673A (zh) * | 2017-04-20 | 2017-10-03 | 努比亚技术有限公司 | Hbase数据库的数据写入方法、Hbase终端及存储介质 |
CN111142786A (zh) * | 2019-11-29 | 2020-05-12 | 苏州浪潮智能科技有限公司 | 一种数据写入方法、装置及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
SIDDHI-STORE-HBASE开发者: "siddhi-store-hbase扩展", 《HTTPS://WSO2-EXTENSIONS.GITHUB.IO/SIDDHI-STORE-HBASE/》 * |
SIDDHI开发者: "kafka-sink", 《HTTPS://SIDDHI.IO/EN/V5.1/DOCS/API/5.1.0/#KAFKA-SINK》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2881804C (en) | High performance real-time relational database system and methods for using same | |
US9544355B2 (en) | Methods and apparatus for realizing short URL service | |
CN101902336B (zh) | 一种基于规则模型的安全事件关联分析系统及方法 | |
CN106227780B (zh) | 一种海量网页的自动化截图取证方法和系统 | |
CN108021809A (zh) | 一种数据处理方法及系统 | |
WO2020181599A1 (zh) | 一种模型应用方法、管理方法、系统及服务器 | |
CN109656963B (zh) | 元数据获取方法、装置、设备及计算机可读存储介质 | |
CN106951552A (zh) | 一种基于Hadoop的用户行为数据处理方法 | |
CN110716910A (zh) | 一种日志管理方法、装置、设备和存储介质 | |
US9632847B2 (en) | System and method for linearizing messages from data sources for optimized high-performance processing in a stream processing system | |
CN108073625A (zh) | 用于元数据信息管理的系统及方法 | |
CN107168847A (zh) | 一种支撑分布式架构的全链路应用监控方法与装置 | |
CN107180050A (zh) | 一种数据抓取系统及方法 | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
CN108509313A (zh) | 一种业务监控方法、平台及存储介质 | |
CN112631806A (zh) | 异步消息排列及调度方法、装置、电子设备及存储介质 | |
CN111124801B (zh) | 智能化系统资源监控方法、装置及计算机可读存储介质 | |
US8984514B2 (en) | Modifying scheduled execution of object modification methods associated with database objects | |
CN102571949B (zh) | 一种基于网络的数据自毁方法 | |
CN110019318A (zh) | 一种日志匹配处理方法、装置以及电子设备 | |
CN113220766A (zh) | 一种基于Siddhi存储数据到Hbase的方法及装置 | |
CN107203437A (zh) | 防止内存数据丢失的方法、装置和系统 | |
CN108681462A (zh) | 一种代码量统计方法及装置 | |
CN116009985A (zh) | 接口调用方法、装置、计算机设备和存储介质 | |
US20220222080A1 (en) | Queuing System |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210806 |