CN107229673A - Hbase数据库的数据写入方法、Hbase终端及存储介质 - Google Patents
Hbase数据库的数据写入方法、Hbase终端及存储介质 Download PDFInfo
- Publication number
- CN107229673A CN107229673A CN201710261658.1A CN201710261658A CN107229673A CN 107229673 A CN107229673 A CN 107229673A CN 201710261658 A CN201710261658 A CN 201710261658A CN 107229673 A CN107229673 A CN 107229673A
- Authority
- CN
- China
- Prior art keywords
- written
- hbase
- business datum
- write
- data
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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/547—Remote procedure calls [RPC]; Web services
Abstract
本发明公开了一种Hbase数据库的数据写入方法、Hbase终端及存储介质,所述Hbase数据库的数据写入方法包括:获取需要写入到Hbase数据库中的待写入业务数据;将所述待写入业务数据存储到Hbase终端的缓存区中;在预设时间周期到达且所述缓存区中当前存储有待写入业务数据时,将所述缓存区中当前存储的待写入业务数据刷写到Hbase数据库。通过定时地检测write buffer中是否存在数据,如果存在则直接将该数据刷写到服务器以存储到Hbase表中,以尽可能及时地将待写入业务数据刷写到服务器,避免了通过write buffer设置阈值的方式导致的业务上的数据丢失、无法获取的问题。
Description
技术领域
本发明涉及计算机技术领域,更具体地说,涉及一种Hbase数据库的数据写入方法、Hbase终端及存储介质。
背景技术
随着互联网、云计算等信息技术在内的通信行业的迅速发展,对数据信息进行有效应用和管理成为企业发展的挑战和机遇,现代社会进入了大数据发展时代。Hbase(Hadoop Database)数据库属于Hadoop的数据库,是一个具有高可靠性、高性能、面向列、可伸缩的分布式开源数据库。基于Hadoop分布式文件系统(Hadoop Distributed FileSystem,HDFS)的Hbase,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能。通过HBase可以实现在普通的PC Server上搭建起大规模结构化存储集群,进而实现对庞大的数据表格的信息处理,达到采用普通的PC处理超过十亿行的、数百万列元素组成的数据表。
用户通过客户端将数据存储到Hbase表时,每一次数据写入(put操作) 都需要客户端调用一次RPC(Remote Procedure Call Protocol,远程过程调用协议)操作,以将相应的数据送往服务器中,然后通过服务器将其存储到Hbase 表中。在每次写入的数据量较大时,这种处理方式一般不会产生任何影响,但是若每次写入的数据量较小,例如几百行、上千行的数据,这种小数据量的写入同样这也需要客户端调用一次RPC操作才能将其送往服务器中。特别是当多次持续地小数据写入时,需要客户端不断地为各个需要写入的小数据分别调用一次RPC操作。这种写入方式无疑会浪费客户端的处理资源,也会耗费较多的时间。
因此,现有的Hbase在客户端中内置了一个write buffer(写缓存区),以用于负责收集待写入的数据,将客户端中需要写入的多个待写入业务数据集中暂时存储在该writebuffer中,并在write buffer存满(到达预设阈值)时,客户端通过调用一次RPC操作将当前存储在write buffer中的所有数据一次性送往服务器。进而极大程度地降低客户端数据写入过程的资源占用,有利于提高数据写入效率。但是,当启动write buffer这种机制后,客户端只有在write buffer 存满之后才会将其送往服务器进行存储。也就是说,若writebuffer长时间处于未存满状态时,就会出现当前存储在write buffer中的数据将一直暂存在 write buffer中,不能及时被送往服务器进行存储的情况,这将导致不能快速及时地将待写入业务数据存储到Hbase表的问题,也即是其他需要获取该数据的客户端无法通过服务器及时地获取到该数据,造成业务上的数据无法同步的问题。
另外,现有的Hbase写入过程还提供了一种用户手动强制写入的方式:在将相应的待写入业务数据存储在write buffer后,用户可以手动强制地将该待写入业务数据发送给服务器进行存储。但是,这种手动强制写入的方式显然不方便用户使用,也违背了客户端write buffer设计的初衷。
发明内容
本发明要解决的技术问题在于:现有的Hbase数据库的数据写入方式是基于writebuffer设置的阈值或用户手动强制写入的方式来控制待写入业务数据的写入过程,无法很好地保证待写入业务数据的写入时间,从而导致业务上的数据丢失、无法获取的问题。针对该技术问题,提供一种Hbase数据库的数据写入方法、Hbase终端及存储介质。
为解决上述技术问题,本发明提供一种Hbase数据库的数据写入方法,所述Hbase数据库的数据写入方法包括:
获取需要写入到Hbase数据库中的待写入业务数据;
将所述待写入业务数据存储到Hbase终端的缓存区中;
在预设时间周期到达且所述缓存区中当前存储有待写入业务数据时,将所述缓存区中当前存储的待写入业务数据刷写到Hbase数据库。
进一步地,所述预设时间周期根据产生所述待写入业务数据的业务所允许的业务数据时延进行设置。
进一步地,在所述预设时间周期达到之前,还包括:
判断所述缓存区中当前存储的待写入业务数据的数据量是否达到预设数据量门限,如是,将所述当前存储的待写入业务数据刷写到所述Hbase数据库;
或,
判断是否接收到数据刷写控制指令,如是,将所述当前存储的待写入业务数据刷写到所述Hbase数据库。
进一步地,在所述预设时间周期达到之前,将所述当前存储的待写入业务数据刷写到所述Hbase数据库后,还包括:将当前计时时间清零重新开始计时。
进一步地,所述预设数据量门限根据预设时间周期内Hbase终端待写入业务数据的平均数据量大小设置;
或,根据所述Hbase终端待写入业务数据的业务数据之最大实时业务数据量大小设置。
本发明提供了一种Hbase终端,所述Hbase终端包括:处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的数据写入程序,以实现以下步骤:
获取需要写入到Hbase数据库中的待写入业务数据;
将所述待写入业务数据存储到Hbase终端的缓存区中;
判断预设时间周期到达且所述缓存区中当前存储有待写入业务数据时,将所述缓存区中当前存储的待写入业务数据刷写到Hbase数据库。
进一步地,在所述判断预设时间周期达到之前,所述处理器还用于执行所述数据写入程序,以实现以下步骤:
判断所述缓存区中当前存储的待写入业务数据的数据量是否达到预设数据量门限,如是,将所述当前存储的待写入业务数据刷写到所述Hbase数据库;
或,
判断是否接收到数据刷写控制指令,如是,将所述当前存储的待写入业务数据刷写到所述Hbase数据库。
进一步地,在所述预设时间周期达到之前,将所述当前存储的待写入业务数据刷写到所述Hbase数据库后,所述处理器还用于执行所述数据写入程序,以实现以下步骤:将当前计时时间清零重新开始计时。
进一步地,所述处理器还用于执行所述数据写入程序,以实现以下步骤:
根据产生所述待写入业务数据的业务所允许的业务数据时延设置预设时间周期;
根据预设时间周期内所述Hbase终端待写入业务数据的平均数据量大小设置预设数据量门限,或根据所述Hbase终端待写入业务数据的业务数据之最大实时业务数据量大小设置预设数据量门限。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有数据写入程序,所述数据写入程序被处理器执行时实现上面所述的Hbase 数据库的数据写入方法的步骤。
有益效果
本发明提供一种Hbase数据库的数据写入方法、Hbase终端及存储介质,所述Hbase数据库的数据写入方法包括:获取需要写入到Hbase数据库中的待写入业务数据;将所述待写入业务数据存储到Hbase终端的缓存区中;在预设时间周期到达且所述缓存区中当前存储有待写入业务数据时,将所述缓存区中当前存储的待写入业务数据刷写到Hbase数据库。通过定时地检测write buffer 中是否存在数据,如果存在则直接将该数据刷写到服务器以存储到Hbase表中,不需要用户每次手动地将待写入业务数据刷写到服务器,提升了用户体验;也能够尽可能及时地将待写入业务数据刷写到服务器,避免了通过write buffer 设置阈值的方式来控制待写入业务数据的写入,无法保证将该待写入数据及时地刷写到服务器,导致业务上的数据丢失、无法获取的问题,提升了用户体验。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为实现本发明各个实施例一个可选的移动终端的结构示意图;
图2为本发明第一实施例提供的一种Hbase终端的数据写入方法流程示意图;
图3为本发明第一实施例提供的一种计时监测方式的示意图;
图4为本发明第一实施例提供的另一种计时监测方式的示意图;
图5为本发明第一实施例提供的另一种Hbase终端的数据写入方法流程示意图;
图6为本发明第二实施例提供的一种Hbase终端的数据写入方法流程示意图;
图7为本发明第三实施例提供的一种Hbase终端结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
请参阅图1,其为实现本发明各个实施例的一种移动终端的硬件结构示意图,该移动终端100可以包括:RF(Radio Frequency,射频)单元101、WiFi 模块102、音频输出单元103、A/V(音频/视频)输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对移动终端的各个部件进行具体的介绍:
射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将基站的下行信息接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、 GPRS(General Packet Radio Service,通用分组无线服务)、CDMA2000(CodeDivision Multiple Access 2000,码分多址2000)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、TD-SCDMA(Time Division-Synchronous CodeDivision Multiple Access,时分同步码分多址)、 FDD-LTE(Frequency DivisionDuplexing-Long Term Evolution,频分双工长期演进)和TDD-LTE(Time DivisionDuplexing-Long Term Evolution,分时双工长期演进)等。
WiFi属于短距离无线传输技术,移动终端通过WiFi模块102可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块102,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
音频输出单元103可以在移动终端100处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将射频单元101或 WiFi模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103可以包括扬声器、蜂鸣器等等。
A/V输入单元104用于接收音频或视频信号。A/V输入单元104可以包括图形处理器(Graphics Processing Unit,GPU)和麦克风,图形处理器对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元106上。经图形处理器处理后的图像帧可以存储在存储器109(或其它存储介质)中或者经由射频单元101或WiFi模块102进行发送。麦克风可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由射频单元101发送到移动通信基站的格式输出。麦克风可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
移动终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在移动终端100移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元 106可包括显示面板,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。
用户输入单元107可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107 可包括触控面板以及其他输入设备。触控面板,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板。除了触控面板,用户输入单元107还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。
进一步的,触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图1中,触控面板与显示面板是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板与显示面板集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元108用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元 108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器 109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器110是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
移动终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图1未示出,移动终端100还可以包括蓝牙模块等,在此不再赘述。
基于上述移动终端硬件结构,提出本发明方法各个实施例。
第一实施例
参照图2,图2为本发明第一实施例提供的一种Hbase数据库的数据写入方法流程示意图,所述数据写入方法包括:
S21:获取需要写入到Hbase数据库中的待写入业务数据。
获取需要写入到Hbase数据库中的待写入业务数据,可以通过Hbase终端来获取待写入业务数据,也可以是其他终端或者设备获取需要写入到Hbase 数据库的待写入数据,再发送给Hbase终端以将其存储到Hbase数据库中。
待写入业务数据可以是任意数据类型的数据,在本实施例中不做限制。具体可以是某公司的物品采购信息、运营财务报表、公司员工个人信息等、或者是某事业单位的人事结构、部门职能介绍信息等,或者某视频网站的视频内容信息、文字图片信息等,在此不再一一举例说明。
S22:将所述待写入业务数据存储到Hbase终端的缓存区中。
在获取到相应的待写入业务数据后,将该待写入业务数据存储到Hbase 终端的缓存区(write buffer)中。其中,Hbase终端可以理解为安装有Hbase 客户端的终端,具体的Hbase终端例如可以是一台Hbase客户端的计算机,当然,也可以是其他安装有Hbase客户端的电子设备。Hbase终端的write buffer 通常是基于该Hbase终端的内存进行设置的。以一台low cast(廉价)的计算机为例,通常其内存可能是2G的RAM、或者4G的RAM等,因此基于Hbase 终端的内存进行设置的write buffer的大小必然应当远小于该内存的数值。
本领域技术人员应当明白的是,Hbase客户端中内置的write buffer机制默认是处于禁用状态的,而本实施例提供的数据写入方式是在write buffer机制启用下进行的,因此需要对Hbase客户端的write buffer的状态设置为“启用”状态。具体可以将AutoFlush(自动刷写)关闭,以此来启用write buffer。可以通过如下修改实现:
table.setAutoFlush(false);
table.flushCommits();
在成功启用write buffer后,当Hbase终端获取到需要写入到Hbase表中的待写入业务数据时,Hbase终端将直接把该待写入业务数据存储到write buffer中。
S23:在预设时间周期到达且该缓存区中当前存储有待写入业务数据时,将该缓存区中当前存储的待写入业务数据刷写到Hbase数据库。
本实施例中,Hbase终端可以对预设时间周期进行计时监测,并在判断预设时间周期到达时,将write buffer中当前存储的待写入业务数据刷写到服务器以进行存储。进一步地,Hbase终端还可以判断该write buffer中的数据量是否为零,也即是判断writebuffer中当前是否存在需要写入的待写入业务数据,只有在预设时间周期到达且该writebuffer中存在需要写入的待写入业务数据时,再将该待写入业务数据刷写到服务器。
本实施例中,预设时间周期是根据待写入业务数据对应的业务所允许的业务数据时延进行设置的。以保证在业务允许的时延范围内Hbase终端自动地将相应的待写入数据业务刷写到服务器进行存储,一方面对用户来说,能够有效避免基于write buffer设置的阈值来刷写待写入业务数据导致的长时间无法刷写到服务器的问题,解决了若希望及时将待写入业务数据刷写到服务器则需要用户手动强制刷写,不方便用户使用的问题,因此有利于提升用户体验;另一方面,对Hbase终端以及服务器来说,因为Hbase终端可以对在预设时间周期内获取到的待写入业务数据,只需要调用一次RPC操作即可将其刷写到服务器,而不必为每一个待写入业务数据分别调用一次RPC操作,对应的,服务器也可以通过调用一个处理线程将这些待写入业务数据存储在Hbase表中,而不必多次调用。因此有利于减少Hbase终端以及服务器的处理负荷,提高业务数据的存储效率。
例如,待写入业务数据对应的业务说允许的业务数据时延是2秒,具体可以是从Hbase终端获取到该待写入业务数据开始(或者说是存储到write buffer 开始),直到该待写入业务数据成功刷写到服务器(或者说是其他的Hbase终端能够通过该服务器获取到该待写入业务数据)的整个过程所花费的时间最长为2秒。此时,预设时间周期可以设置为2秒,也即是每间隔2秒便将write buffer 中当前存储的待写入业务数据刷写到服务器。请参见图3,Hbase终端持续不断地进行计时监测,具体可以是在启用write buffer时开始进行计时。待写入业务数据A在计时到0.5秒时存储到该write buffer中;待写入业务数据B在计时到1.5秒时存储到该write buffer中;在计时达到2秒时,也即是预设时间周期到达时,Hbase终端将通过调用一次RPC操作将该write buffer中的待写入业务数据(A和B)一起刷写到服务器中。避免Hbase终端需要在0.5秒时,为待写入业务数据A调用一次RPC操作将该业务数据A刷写到服务器,并在 1.5秒时,又为待写入业务数据B调用一次RPC操作将该业务数据B刷写到服务器。通过本实施例提供的方案,可以使Hbase终端在2秒时,直接通过调用一次RPC操作将该write buffer中的待写入业务数据(A和B)一起刷写到服务器中,减少Hbase终端的处理负荷,提高Hbase终端的处理效率。特别是针对持续不断地刷写数据的情况,例如在预设时间周期需要处理的待写入业务数据为10个、20个,甚至更多时,通过本实施例提供的方案更是能够极大程度地减少Hbase终端的处理负荷。
本实施例还提供一种计时监测方式,请参见图4,这里假设预设时间周期为5秒,在启用write buffer时Hbase并未立即开始进行计时,而是等到存在待写入业务数据时开始计时,且在预设时间周期到达后,停止计时,直到再次获取新的待写入业务数据时再开始进计时。具体的,Hbase终端获取到需要写入到Hbase数据库中的待写入业务数据C时,开始进行计时,并在计时时间为2.5秒时,Hbase终端又获取到待写入业务数据D,最终Hbase终端在计时时间达到5秒时,将待写入业务数据C和D一起刷写到服务器中。此时,Hbase 终端停止计时,等待若干时间之后,Hbase终端又获取到待写入业务数据E,此时Hbase终端再次重新开始计时。这种计时方式在存在待写入业务数据时触发计时监测,避免长时间不存在待写入业务数据,Hbase终端也需要执行计时监测的过程,浪费Hbase终端不必要的资源占用。
应当说明的是,上述设置预设时间周期的过程并未考虑将待写入业务数据存储到write buffer的时间、从write buffer刷写到服务器的时间、以及服务器将待写入业务数据存储到Hbase表的时间等。因此,在实际应用场景中,若待写入业务数据对应的业务所允许的业务数据时延是2秒,此时可以将预设时间周期设置为稍小于2秒,例如设置为1秒、1.5秒等。
本实施例中,Hbase终端在判断预设时间周期到达时,会将write buffer 中当前存储的待写入业务数据刷写到服务器,具体的,Hbase终端可以调用相应的刷写函数,例如“flushCommits()”以将write buffer中当前存储的待写入业务数据刷写到服务器。应当说明的是,若write buffer当前不存在待写入业务数据,则不必执行刷写操作。
请参见图5,图5为本发明第一实施例提供的另一种Hbase数据库的数据写入方法,包括:
S51:获取需要写入到Hbase数据库中的待写入业务数据。
S52:将所述待写入业务数据存储到Hbase终端的缓存区中。
对于步骤S51和S52,与上面所述的S21和S22相同,在此不再赘述。
S53:计时监测。
应当理解的是,步骤S53中的“计时监测”与其他各步骤之间不存在必然的顺序关系,计时监测的过程是在判断计时时间达到时,将当前计时时间清零,还可以立即重新开始进行计时。
S54:判断缓存区中当前存储的待写入业务数据的数据量是否达到预设数据量门限;如是,转至步骤S56;如否,转至步骤S57。
本实施例中,write buffer预设数据量门限是根据预设时间周期内Hbase 终端待写入业务数据的平均数据量大小进行设置的。例如,Hbase终端待写入业务数据的平均数据量大小为每秒1MB,预设时间周期假设为2秒,那么在预设时间周期内该Hbase终端待写入业务数据的平均数据量大小为2MB。此时,write buffer预设数据量门限可以设置为2MB、2.5MB等,使write buffer 中当前存储的待写入业务数据的数据量达到预设时间周期的平均值左右时, Hbase终端可以立即将其刷写到服务器,因为在达到平均值后,一般不会存在其他比较大的待写入业务数据需要在这个预设时间周期范围内刷写到服务器,因此Hbase终端可以不用在等待预设施加周期达到,直接将其刷写到服务器,从而能更加及时地将待写入业务数据刷写到服务器中进行存储,这也有利于其他需要获取该待写入业务数据的Hbase终端更快能够获取该业务数据。
这个平均数据量大小可以根据该Hbase终端所有刷写到服务器的数据或者一段时间内的刷写到服务器的数据计算得到,例如,在一分钟之内,该Hbase 终端刷写到服务器的中数据量为120MB,那么可以知道该Hbase终端的平均数据量大小为2MB每秒。也可以根据待写入业务数据的业务类型预估待写入业务数据的平均数据量。
本实施例中,write buffer预设数据量门限还可以根据Hbase终端待写入业务数据的业务数据之最大实时业务数据量大小进行设置,也即是可以根据业务每次收发的实时数据进行设置。例如,Hbase终端待写入业务数据对应的业务数据之最大实时数据量大小为5MB,那么write buffer预设数据量门限也可以设置为5MB、6MB等。
write buffer预设数据量门限具体可以通过如下方式进行设置:setWriteBufferSize(long size);
例如设置为2MB:setWriteBufferSize(2097152),2MB等于2097152字节。
S55:判断是否接收到数据刷写控制指令;如是,转至步骤S56;如否,转至步骤S57。
步骤S55中,Hbase终端可以接收数据刷写控制指令,也即是用户可以通过主动刷写待写入业务数据到服务器。
本领域技术人员应当明白的是,对于步骤S54和步骤S55,两者之间也不存在执行的先后顺序,当S54中检测到缓存区中当前存储的待写入业务数据达到预设数据量门限时,则Hbase终端直接调用RPC操作将其刷写到服务器进行存储。若步骤S55判断接收到数据刷写控制指令时,例如用户显式的调用数据刷写控制指令,此时Hbase终端也将直接通过RPC操作将相应的待写入业务数据发送给服务器进行存储。也即是说,两者是并列关系的,只要步骤S54 判断达到预设数据量门限或者步骤S55接收到数据刷写指令都将触发Hbase 终端将缓存区中当前存储的待写入业务数据刷写到服务器。
S56:将该缓存区中当前存储的待写入业务数据刷写到Hbase数据库。
在预设时间周期到达之前,步骤S54判断write buffer中当前存储的待写入业务数据的数据量大小到达预设数据量门限,或者步骤S55Hbase终端接收到用户下发的数据刷写控制指令时,立即将该write buffer中当前存储的待写入业务数据刷写到Hbase数据库。进一步地,Hbase终端还可以将当前计时时间清零并重新开始计时。
S57:在预设时间周期到达且所述缓存区中当前存储有待写入业务数据时,将所述缓存区中当前存储的待写入业务数据刷写到Hbase数据库。
在预设时间周期到达时,且该缓存区中当前存储有待写入业务数据,Hbase 终端将该缓存区中当前存储的待写入业务数据刷写到Hbase数据库。当然,在预设时间周期达到时,若该缓存区中不存在需要写入的待写入业务数据,则不需要进行相应的刷写操作。
本实施例中,对于Hbase终端将待写入业务数据刷写到Hbase服务器并存储到Hbase数据库的过程,不是本发明的重点,可以基于现有的处理过程将待写入业务数据存储到Hbase数据库中,在此不再进行介绍说明。
应当理解的是,本实施例提供的Hbase数据库的数据写入方法并不限于将待写入业务数据刷写到Hbase数据库中,本实施例提供的Hbase数据库的数据写入方法同样适用于将相应的待写入业务数据刷写到其他数据库进行存储,例如Oracle、MySQL、Access、Memcached、Cassandra、MongoDB等数据库。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有上述的数据写入程序,所述数据写入程序被处理器执行时,可以实现上述的Hbase数据库的数据写入方法的步骤。
本实施例提供一种Hbase数据库的数据写入方法及计算机可读存储介质,所述Hbase数据库的数据写入方法包括:获取需要写入到Hbase数据库中的待写入业务数据;将所述待写入业务数据存储到Hbase终端的缓存区中;在预设时间周期到达且所述缓存区中当前存储有待写入业务数据时,将所述缓存区中当前存储的待写入业务数据刷写到Hbase数据库。通过定时地检测write buffer 中是否存在数据,如果存在则直接将该数据刷写到服务器以存储到Hbase表中,如果不存在,则重新开始计时,在下一个定时周期达到时,再次进行检测等过程,能够在业务允许的预设时间周期内将待写入业务数据刷写到服务器,避免了通过write buffer设置阈值的方式来控制待写入业务数据的写入,无法保证将该待写入数据及时地刷写到服务器,导致业务上的数据丢失、无法获取的问题。
第二实施例
本实施例在第一实施例的基础上,提供一种Hbase数据库的数据写入控制方法,请参照图6,图6为本发明第二实施例提供的一种Hbase数据库的数据写入控制方法流程示意图,所述数据写入控制方法包括:
S61:开启HBase客户端的write buffer。
具体可以通过设置自动刷写为false(关闭)来激活write buffer:
table.setAutoFlush(false);
table.flushCommits();
S62:设置预设时间周期,并开始进行计时。
预设时间周期根据待写入业务数据对应的业务所允许的业务数据时延进行设置,并在设置完成后,开始进行计时。
S63:获取待写入业务数据,并判断是否到达预设数据量门限;如是,转至步骤S65;如否,转至步骤S64。
预设数据量门限根据预设时间周期内Hbase终端待写入业务数据的平均数据量大小设置;或者根据Hbase终端待写入业务数据的业务数据之最大实时业务数据量大小设置。待写入业务数据的数据量可以通过相应的检测函数来检测其数据量,Hbase终端根据待写入业务数据的数据量判断其是否达到预设数据量门限。
S64:在预设时间周期达到时,将write buffer中当前存储的待写入业务数据刷写到服务器。
在预设时间周期到达时,若write buffer中当前存储的待写入业务数据的数据量还未达到预设数据量阈值,此时Hbase终端也将立即把存储在write buffer中的待写入业务数据刷写到服务器。以保证在业务所允许的数据业务时延范围内,将该待写入业务数据存储到Hbase数据库中。
S65:立即将write buffer中当前存储的待写入业务数据刷写到服务器。
在预设时间周期达到之前,判断write buffer中当前存储的待写入业务数据的数据量达到预设数据量门限是,Hbase终端直接将write buffer中当前存储的待写入业务数据刷写到服务器。而不必再等待预设时间周期达到时才将该待写入业务数据刷写到服务器。
应当理解的是,在Hbase终端将待写入业务数据刷写到Hbase服务器后,该Hbase终端可以直接通过相应的获取函数(例如get()函数)从Hbase服务器中获取其存储的相应业务数据。
本实施例提供一种Hbase数据库的数据写入控制方法,包括开启HBase 客户端的write buffer,设置预设时间周期,并开始进行计时,获取待写入业务数据,并判断是否到达预设数据量门限,如在预设时间达到之前,达到预设数据量门限,则立即将write buffer中当前存储的待写入业务数据刷写到服务器,如否,则继续进行计时监测,并在预设时间周期达到时,将write buffer中当前存储的待写入业务数据刷写到服务器。不需要用户每次手动地将待写入业务数据刷写到服务器,提升了用户体验;也能够在业务允许的预设时间周期内将待写入业务数据刷写到服务器,避免了通过write buffer设置阈值的方式来控制待写入业务数据的写入,无法保证将该待写入数据及时地刷写到服务器,导致业务上的数据丢失、无法获取的问题。
第三实施例
参照图7,图7为本发明第三实施例提供的一种Hbase终端的结构示意图,所述Hbase终端70包括处理器71、存储器72及通信总线73:
其中,通信总线73用于实现处理器和存储器之间的连接通信;处理器71 用于执行存储器72中存储的数据写入程序,以实现以下步骤:获取需要写入到Hbase数据库中的待写入业务数据;将待写入业务数据存储到Hbase终端的缓存区中;判断预设时间周期到达且缓存区中当前存储有待写入业务数据时,将缓存区中当前存储的待写入业务数据刷写到Hbase数据库。
待写入业务数据可以是任意数据类型的数据,在本实施例中不做限制。具体可以是某公司的物品采购信息、运营财务报表、公司员工个人信息等、或者是某事业单位的人事结构、部门职能介绍信息等,或者某视频网站的视频内容信息、文字图片信息等,在此不再一一举例说明。
在获取到相应的待写入业务数据后,将该待写入业务数据存储到Hbase 终端70的缓存区(write buffer)中。其中,Hbase终端70可以理解为安装有 Hbase客户端的终端,具体的Hbase终端70例如可以是如图1所示的一台计算机,当然,也可以是其他安装有Hbase客户端的电子设备。Hbase终端70 的write buffer通常是基于该Hbase终端70的内存进行设置的。以一台low cast (廉价)的计算机为例,通常其内存可能是2G的RAM、或者4G的RAM等,因此基于Hbase终端70的内存进行设置的write buffer的大小必然应当远小于该内存的数值。
本领域技术人员应当明白的是,Hbase客户端中内置的write buffer机制默认是处于禁用状态的,而本实施例提供的Hbase终端70,可以通过处理器71 执行相应的数据写入程序,以实现对Hbase客户端的write buffer的状态设置为“启用”状态。可以通过如下修改实现:
table.setAutoFlush(false);
table.flushCommits();
在成功启用write buffer后,当Hbase终端获取到需要写入到Hbase表中的待写入业务数据时,Hbase终端70将直接把该待写入业务数据存储到write buffer中。
本实施例中,处理器71还可以对预设时间周期进行计时监测,并在判断预设时间周期到达时,将write buffer中当前存储的待写入业务数据刷写到服务器以进行存储。进一步地,处理器71还可以判断该write buffer中的数据量是否为零,也即是判断writebuffer中当前是否存在需要写入的待写入业务数据,只有在预设时间周期到达且该writebuffer中存在需要写入的待写入业务数据时,处理器71才会将该待写入业务数据刷写到服务器。
处理器71还用于执行数据写入程序,以实现以下步骤:根据待写入业务数据对应的业务所允许的业务数据时延设置预设时间周期。以保证在业务允许的时延范围内Hbase终端70自动地将相应的待写入数据业务刷写到服务器进行存储,一方面对用户来说,能够有效避免基于write buffer设置的阈值来刷写待写入业务数据导致的长时间无法刷写到服务器的问题,解决了若希望及时将待写入业务数据刷写到服务器则需要用户手动强制刷写,不方便用户使用的问题,因此有利于提升用户体验;另一方面,对Hbase终端70以及服务器来说,因为Hbase终端70可以对在预设时间周期内获取到的待写入业务数据,只需要调用一次RPC操作即可将其刷写到服务器,而不必为每一个待写入业务数据分别调用一次RPC操作,对应的,服务器也可以通过调用一个处理线程将这些待写入业务数据存储在Hbase表中,而不必多次调用。因此有利于减少Hbase终端70以及服务器的处理负荷,提高业务数据的存储效率。
例如,待写入业务数据对应的业务说允许的业务数据时延是2秒,具体可以是从Hbase终端70获取到该待写入业务数据开始(或者说是存储到write buffer开始),直到该待写入业务数据成功刷写到服务器(或者说是其他的 Hbase终端70能够通过该服务器获取到该待写入业务数据)的整个过程所花费的时间最长为2秒。此时,预设时间周期可以设置为2秒,也即是每间隔2 秒便将write buffer中当前存储的待写入业务数据刷写到服务器。特别是针对持续不断地刷写数据的情况,例如在预设时间周期需要处理的待写入业务数据为10个、20个,甚至更多时,通过本实施例提供的方案更是能够极大程度地减少Hbase终端70的处理负荷。
本实施例中,处理器71在判断预设时间周期到达时,会将write buffer中当前存储的待写入业务数据刷写到服务器,具体的,处理器71可以调用相应的刷写函数,例如“flushCommits()”以将write buffer中当前存储的待写入业务数据刷写到服务器。应当说明的是,若write buffer当前不存在待写入业务数据,则处理器71不必执行刷写操作。
在所述处理器71判断预设时间周期达到之前,所述处理器71还用于执行所述数据写入程序,以实现以下步骤:判断所述缓存区中当前存储的待写入业务数据的数据量是否达到预设数据量门限,如是,将当前存储的待写入业务数据刷写到Hbase数据库;处理器71还用于根据预设时间周期内所述Hbase终端待写入业务数据的平均数据量大小设置预设数据量门限,或根据所述Hbase 终端待写入业务数据的业务数据之最大实时业务数据量大小设置预设数据量门限。
例如,Hbase终端70待写入业务数据的平均数据量大小为每秒1MB,预设时间周期假设为2秒,那么在预设时间周期内该Hbase终端待写入业务数据的平均数据量大小为2MB。此时,处理器71可以将write buffer的预设数据量门限可以设置为2MB、2.5MB等,使writebuffer中当前存储的待写入业务数据的数据量达到预设时间周期的平均值左右时,Hbase终端70可以立即将其刷写到服务器,因为在达到平均值后,一般业务不会存在其他比较大的待写入业务数据需要在这个预设时间周期范围内刷写到服务器,因此Hbase终端70 可以不用在等待预设施加周期达到,直接将其刷写到服务器,以更加及时地将待写入业务数据刷写到服务器中进行存储,也有利于其他需要获取该待写入业务数据的Hbase终端70更快能够获取该业务数据。
这个平均数据量大小可以根据该Hbase终端所有刷写到服务器的数据或者一段时间内的刷写到服务器的数据计算得到,例如,在一分钟之内,该Hbase 终端刷写到服务器的中数据量为120MB,那么可以知道该Hbase终端的平均数据量大小为2MB每秒。
本实施例中,对于write buffer预设数据量门限,处理器71还可以根据 Hbase终端70待写入业务数据的业务数据之最大实时业务数据量大小进行设置。例如,Hbase终端70待写入业务数据的业务数据之最大实时业务数据量大小为5MB,那么处理器71可以将writebuffer预设数据量门限也可以设置为 5MB、5.5MB。
本发明实施例提供一种Hbase终端,包括通信总线用于实现处理器和存储器之间的连接通信;处理器用于执行存储器中存储的数据写入程序,以实现以下步骤:获取需要写入到Hbase数据库中的待写入业务数据;将待写入业务数据存储到Hbase终端的缓存区中;判断预设时间周期到达且缓存区中当前存储有待写入业务数据时,将缓存区中当前存储的待写入业务数据刷写到Hbase 数据库。能够在业务允许的预设时间周期内将待写入业务数据刷写到服务器,避免了通过write buffer设置阈值的方式来控制待写入业务数据的写入,无法保证将该待写入数据及时地刷写到服务器,导致业务上的数据丢失、无法获取的问题,提升了用户体验。
第四实施例
本实施例在第三实施例的基础上,提供一种Hbase终端,所述Hbase终端包括:处理器、存储器以及通信总线;
其中,通信总线用于实现处理器和存储器之间的连接通信;处理器用于执行存储器中存储的数据写入程序,以实现以下步骤:获取需要写入到Hbase 数据库中的待写入业务数据,将所述待写入业务数据存储到Hbase终端的缓存区中,并进行计时监测,判断缓存区中当前存储的待写入业务数据的数据量是否达到预设数据量门限,如在预设时间周期到达之前判断达到预设数据量门限,则立即将该缓存区中当前存储的待写入业务数据刷写到Hbase数据库,如否,则在预设时间周期到达时,将缓存区中当前存储的待写入业务数据刷写到 Hbase数据库;或者在预设时间周期到达之前判断接收到数据刷写控制指令时,则立即将该缓存区中当前存储的待写入业务数据刷写到Hbase数据库,如否,则在预设时间周期到达时,将缓存区中当前存储的待写入业务数据刷写到 Hbase数据库。
应当理解的是,处理器执行“计时监测”与其他各步骤之间不存在必然的顺序关系,计时监测的过程是在判断计时时间达到时,将当前计时时间清零,并立即重新开始进行计时。
本实施例中,write buffer预设数据量门限是根据预设时间周期内Hbase 终端待写入业务数据的平均数据量大小进行设置的。例如,Hbase终端待写入业务数据的平均数据量大小为每秒1MB,预设时间周期假设为2秒,那么在预设时间周期内该Hbase终端待写入业务数据的平均数据量大小为2MB。此时,处理器可以将write buffer预设数据量门限可以设置为2MB、2.5MB等,使write buffer中当前存储的待写入业务数据的数据量达到预设时间周期的平均值左右时,Hbase终端可以立即将其刷写到服务器,因为在达到平均值后,一般不会存在其他比较大的待写入业务数据需要在这个预设时间周期范围内刷写到服务器,因此Hbase终端可以不用在等待预设施加周期达到,直接将其刷写到服务器,以更加及时地将待写入业务数据刷写到服务器中进行存储,也有利于其他需要获取该待写入业务数据的Hbase终端更快能够获取该业务数据。
处理器可以根据该Hbase终端所有刷写到服务器的数据或者一段时间内的刷写到服务器的数据计算得到,例如,在一分钟之内,该Hbase终端刷写到服务器的中数据量为120MB,那么处理器即可计算得到Hbase终端的平均数据量大小为2MB每秒。处理器也可以接受用户手动输入的数据量数值,并将其设置为预设数据量门限。
本实施例中,处理器还可以根据Hbase终端待写入业务数据对应的业务数据之最大实时数据量大小来设置预设数据量门限。例如,Hbase终端待写入业务数据对应的业务数据之最大实时数据量大小为5MB,那么处理器可以将 write buffer预设数据量门限也可以设置为5MB。
具体的,处理器可以通过如下下方式设置预设数据量门限: setWriteBufferSize(long size);
例如设置为2MB:setWriteBufferSize(2097152),2MB等于2097152字节。
处理器判断是否接收到数据刷写控制指令,这与处理器判断是否达到预设数据量门限之间,两者之间也不存在执行的先后顺序,也即是说,两者是并列关系的,只要处理器判断达到预设数据量门限或者接收到数据刷写指令,都将触发Hbase终端将缓存区中当前存储的待写入业务数据刷写到服务器。进一步地,在预设时间周期到达之前,将缓存区中当前存储的待写入业务数据刷写到服务器后,处理器还可以将当前计时时间清零并重新开始计时。
在预设时间周期到达时,且该缓存区中当前存储有待写入业务数据,Hbase 终端将该缓存区中当前存储的待写入业务数据刷写到Hbase数据库。当然,在预设时间周期达到时,若该缓存区中不存在需要写入的待写入业务数据,则不需要进行相应的刷写操作。
本发明实施例提供一种Hbase终端,包括通信总线用于实现处理器和存储器之间的连接通信;处理器用于执行存储器中存储的数据写入程序,以实现以下步骤:获取需要写入到Hbase数据库中的待写入业务数据,将所述待写入业务数据存储到Hbase终端的缓存区中,并进行计时监测,判断缓存区中当前存储的待写入业务数据的数据量是否达到预设数据量门限,如在预设时间周期到达之前判断达到预设数据量门限,则立即将该缓存区中当前存储的待写入业务数据刷写到Hbase数据库,如否,则在预设时间周期到达时,将缓存区中当前存储的待写入业务数据刷写到Hbase数据库;或者在预设时间周期到达之前判断接收到数据刷写控制指令时,则立即将该缓存区中当前存储的待写入业务数据刷写到Hbase数据库,如否,则在预设时间周期到达时,将缓存区中当前存储的待写入业务数据刷写到Hbase数据库。能够在业务允许的预设时间周期内将待写入业务数据刷写到服务器,避免了通过write buffer设置阈值的方式来控制待写入业务数据的写入,无法保证将该待写入数据及时地刷写到服务器,导致业务上的数据丢失、无法获取的问题。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种Hbase数据库的数据写入方法,其特征在于,包括:
获取需要写入到Hbase数据库中的待写入业务数据;
将所述待写入业务数据存储到Hbase终端的缓存区中;
在预设时间周期到达且所述缓存区中当前存储有待写入业务数据时,将所述缓存区中当前存储的待写入业务数据刷写到Hbase数据库。
2.根据权利要求1所述的Hbase数据库的数据写入方法,其特征在于,所述预设时间周期根据产生所述待写入业务数据的业务所允许的业务数据时延进行设置。
3.根据权利要求1或2所述的Hbase数据库的数据写入方法,其特征在于,在所述预设时间周期达到之前,还包括:
判断所述缓存区中当前存储的待写入业务数据的数据量是否达到预设数据量门限,如是,将所述当前存储的待写入业务数据刷写到所述Hbase数据库;
或,
判断是否接收到数据刷写控制指令,如是,将所述当前存储的待写入业务数据刷写到所述Hbase数据库。
4.根据权利要求3所述的Hbase数据库的数据写入方法,其特征在于,在所述预设时间周期达到之前,将所述当前存储的待写入业务数据刷写到所述Hbase数据库后,还包括:将当前计时时间清零重新开始计时。
5.根据权利要求3所述的Hbase数据库的数据写入方法,其特征在于,所述预设数据量门限根据预设时间周期内Hbase终端待写入业务数据的平均数据量大小设置;
或,根据所述Hbase终端待写入业务数据的业务数据之最大实时业务数据量大小设置。
6.一种Hbase终端,其特征在于,所述Hbase终端包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的数据写入程序,以实现以下步骤:
获取需要写入到Hbase数据库中的待写入业务数据;
将所述待写入业务数据存储到Hbase终端的缓存区中;
判断预设时间周期到达且所述缓存区中当前存储有待写入业务数据时,将所述缓存区中当前存储的待写入业务数据刷写到Hbase数据库。
7.根据权利要求6所述的Hbase终端,其特征在于,在所述判断预设时间周期达到之前,所述处理器还用于执行所述数据写入程序,以实现以下步骤:
判断所述缓存区中当前存储的待写入业务数据的数据量是否达到预设数据量门限,如是,将所述当前存储的待写入业务数据刷写到所述Hbase数据库;
或,
判断是否接收到数据刷写控制指令,如是,将所述当前存储的待写入业务数据刷写到所述Hbase数据库。
8.根据权利要求7所述的Hbase终端,其特征在于,在所述预设时间周期达到之前,将所述当前存储的待写入业务数据刷写到所述Hbase数据库后,所述处理器还用于执行所述数据写入程序,以实现以下步骤:将当前计时时间清零重新开始计时。
9.根据权利要求6-8任一项所述的Hbase终端,其特征在于,所述处理器还用于执行所述数据写入程序,以实现以下步骤:
根据产生所述待写入业务数据的业务所允许的业务数据时延设置预设时间周期;
根据预设时间周期内所述Hbase终端待写入业务数据的平均数据量大小设置预设数据量门限,或根据所述Hbase终端待写入业务数据的业务数据之最大实时业务数据量大小设置预设数据量门限。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有数据写入程序,所述数据写入程序被处理器执行时实现如权利要求1至5中任一项所述的Hbase数据库的数据写入方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710261658.1A CN107229673A (zh) | 2017-04-20 | 2017-04-20 | Hbase数据库的数据写入方法、Hbase终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710261658.1A CN107229673A (zh) | 2017-04-20 | 2017-04-20 | Hbase数据库的数据写入方法、Hbase终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107229673A true CN107229673A (zh) | 2017-10-03 |
Family
ID=59933127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710261658.1A Pending CN107229673A (zh) | 2017-04-20 | 2017-04-20 | Hbase数据库的数据写入方法、Hbase终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107229673A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038171A (zh) * | 2017-12-07 | 2018-05-15 | 杭州电魂网络科技股份有限公司 | 数据写入方法、装置及数据服务器 |
CN108073703A (zh) * | 2017-12-14 | 2018-05-25 | 郑州云海信息技术有限公司 | 一种评论信息获取方法、装置、设备及存储介质 |
CN108121822A (zh) * | 2018-01-09 | 2018-06-05 | 北京奇艺世纪科技有限公司 | 一种写入数据方法和装置 |
CN110275882A (zh) * | 2019-05-08 | 2019-09-24 | 平安科技(深圳)有限公司 | 基于hbase的数据写入方法、系统、装置及可读存储介质 |
CN110377235A (zh) * | 2019-07-26 | 2019-10-25 | Oppo(重庆)智能科技有限公司 | 数据处理方法、装置、移动终端及计算机可读存储介质 |
CN112084163A (zh) * | 2020-09-04 | 2020-12-15 | 珠海大横琴科技发展有限公司 | 一种数据写入方法、装置及计算机设备 |
CN113220766A (zh) * | 2021-05-24 | 2021-08-06 | 成都四方伟业软件股份有限公司 | 一种基于Siddhi存储数据到Hbase的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140317448A1 (en) * | 2013-04-23 | 2014-10-23 | Facebook, Inc. | Incremental checkpoints |
CN104270412A (zh) * | 2014-06-24 | 2015-01-07 | 南京邮电大学 | 一种基于Hadoop分布式文件系统的三级缓存方法 |
CN105005617A (zh) * | 2015-07-21 | 2015-10-28 | 领航动力信息系统有限公司 | 一种时间序列数据的存储方法及装置 |
US20160070711A1 (en) * | 2014-09-10 | 2016-03-10 | International Business Machines Corporation | Outputting map-reduce jobs to an archive file |
CN105446893A (zh) * | 2014-07-14 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 数据存储方法及设备 |
CN105791439A (zh) * | 2016-04-29 | 2016-07-20 | 中国农业银行股份有限公司 | 一种数据处理方法、数据接收设备及数据处理系统 |
CN105893521A (zh) * | 2016-03-31 | 2016-08-24 | 南京烽火软件科技有限公司 | 一种读写分离的HBase入库方法 |
CN105930384A (zh) * | 2016-04-14 | 2016-09-07 | 南京理工大学 | 基于Hadoop体系的传感云数据存储系统及其实现方法 |
-
2017
- 2017-04-20 CN CN201710261658.1A patent/CN107229673A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140317448A1 (en) * | 2013-04-23 | 2014-10-23 | Facebook, Inc. | Incremental checkpoints |
CN104270412A (zh) * | 2014-06-24 | 2015-01-07 | 南京邮电大学 | 一种基于Hadoop分布式文件系统的三级缓存方法 |
CN105446893A (zh) * | 2014-07-14 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 数据存储方法及设备 |
US20160070711A1 (en) * | 2014-09-10 | 2016-03-10 | International Business Machines Corporation | Outputting map-reduce jobs to an archive file |
CN105005617A (zh) * | 2015-07-21 | 2015-10-28 | 领航动力信息系统有限公司 | 一种时间序列数据的存储方法及装置 |
CN105893521A (zh) * | 2016-03-31 | 2016-08-24 | 南京烽火软件科技有限公司 | 一种读写分离的HBase入库方法 |
CN105930384A (zh) * | 2016-04-14 | 2016-09-07 | 南京理工大学 | 基于Hadoop体系的传感云数据存储系统及其实现方法 |
CN105791439A (zh) * | 2016-04-29 | 2016-07-20 | 中国农业银行股份有限公司 | 一种数据处理方法、数据接收设备及数据处理系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038171A (zh) * | 2017-12-07 | 2018-05-15 | 杭州电魂网络科技股份有限公司 | 数据写入方法、装置及数据服务器 |
CN108038171B (zh) * | 2017-12-07 | 2020-07-03 | 杭州电魂网络科技股份有限公司 | 数据写入方法、装置及数据服务器 |
CN108073703A (zh) * | 2017-12-14 | 2018-05-25 | 郑州云海信息技术有限公司 | 一种评论信息获取方法、装置、设备及存储介质 |
CN108121822A (zh) * | 2018-01-09 | 2018-06-05 | 北京奇艺世纪科技有限公司 | 一种写入数据方法和装置 |
CN110275882A (zh) * | 2019-05-08 | 2019-09-24 | 平安科技(深圳)有限公司 | 基于hbase的数据写入方法、系统、装置及可读存储介质 |
WO2020224218A1 (zh) * | 2019-05-08 | 2020-11-12 | 平安科技(深圳)有限公司 | 基于hbase的数据写入方法、系统、装置及可读存储介质 |
CN110377235A (zh) * | 2019-07-26 | 2019-10-25 | Oppo(重庆)智能科技有限公司 | 数据处理方法、装置、移动终端及计算机可读存储介质 |
CN110377235B (zh) * | 2019-07-26 | 2023-04-07 | Oppo(重庆)智能科技有限公司 | 数据处理方法、装置、移动终端及计算机可读存储介质 |
CN112084163A (zh) * | 2020-09-04 | 2020-12-15 | 珠海大横琴科技发展有限公司 | 一种数据写入方法、装置及计算机设备 |
CN113220766A (zh) * | 2021-05-24 | 2021-08-06 | 成都四方伟业软件股份有限公司 | 一种基于Siddhi存储数据到Hbase的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107229673A (zh) | Hbase数据库的数据写入方法、Hbase终端及存储介质 | |
CN108108007B (zh) | 一种降低功耗的处理方法及移动终端 | |
CN108337363A (zh) | 一种终端熄屏显示控制方法、终端 | |
CN110149552A (zh) | 一种视频流帧数据的处理方法及终端 | |
CN107463602A (zh) | 一种日志处理方法及服务器、客户端 | |
CN107256120A (zh) | 场景切换方法、终端及计算机可读存储介质 | |
CN107147928A (zh) | 播放视频的方法、终端及计算机可读存储介质 | |
CN107132974A (zh) | 终端冻屏处理方法、终端及计算机可读存储介质 | |
CN107038245A (zh) | 页面切换方法、移动终端及存储介质 | |
CN107340833A (zh) | 终端温度控制方法、终端及计算机可读存储介质 | |
CN107577332A (zh) | 一种耗电控制方法、移动终端及计算机可读存储介质 | |
CN107807857A (zh) | 清理运行内存的方法、设备及计算机可存储介质 | |
CN107391241A (zh) | 应用快速启动方法、终端及计算机可读存储介质 | |
CN107329838A (zh) | 一种业务交互方法、终端和计算机可读存储介质 | |
CN108415781A (zh) | 一种显示控制方法、终端及计算机可读存储介质 | |
CN107807767A (zh) | 一种通讯业务的处理方法、终端及计算机可读存储介质 | |
CN107590057A (zh) | 冻屏监测与解决方法、移动终端及计算机可读存储介质 | |
CN107181700A (zh) | 移动终端应用程序的控制方法、移动终端及存储介质 | |
CN110177177A (zh) | 消息回复方法、移动终端及计算机可读存储介质 | |
CN107463243A (zh) | 一种屏幕控制方法、移动终端和计算机可读存储介质 | |
CN107682421A (zh) | 访问消息的方法、服务器、终端及计算机可读存储介质 | |
CN107704133A (zh) | 冻屏监测与解决方法、移动终端及计算机可读存储介质 | |
CN107390856A (zh) | 一种降低移动终端功耗的方法、移动终端及存储介质 | |
US11418945B2 (en) | Information processing method for RF device and mobile terminal | |
CN108259233A (zh) | 一种移动终端中图形处理器gpu参数配置方法及移动终端 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171003 |