一种基于多线程异步的高频数据库写入方法及装置制造方法及图纸

技术编号:42339659 阅读:28 留言:0更新日期:2024-08-14 16:16
本发明专利技术公开了一种基于多线程异步的高频数据库写入方法及装置,通过创建多线程表写入器对象并对其进行初始化;获取待写入数据库的表结构,创建一组线程及对应的缓存队列,每个线程均与数据库系统连接并监视对应缓存队列的状态,设定缓存队列单次期望写入的数量阈值以及最大写入间隔的时间阈值;通过多线程表写入器对象进行数据异步插入;根据所述表结构确定表类型和分区类型,对于分区表,将不同分区类型的数据插入不同的缓存队列中;循环执行线程,基于所述数量阈值和时间阈值,触发缓存队列的写入条件,通过线程将缓存队列中的数据发送到数据库系统进行数据插入,并清空该缓存队列。从而提高写入效率,降低数据写入时延、降低数据库负载。

【技术实现步骤摘要】

本专利技术属于计算机数据库领域,具体涉及一种基于多线程异步的高频数据库写入方法及装置


技术介绍

1、目前,大数据技术已广泛应用到金融、物联网等行业,而海量数据的写入是大数据处理和分析的基础。在实际应用中如何将实时生成的大量数据及时、准确、完整的写入到数据库中,是一项很有挑战的工作。

2、目前,各主流数据库都推出了各自的api来进行数据的写入查询操作。以使用开源库mariadb-connector-c向mysql中写入数据为例。在写入数据时,用户需要调用mysql_query接口来执行一个sql语句,而该接口是一个同步的接口,即在请求发出后,调用该接口的线程会挂起等待,不会继续执行后续代码,直到mysql完成数据插入并返回执行结果后,mysql_query接口才会返回,然后,用户需要通过调用其它接口,例如mysql_store_result来获取执行结果。这种方式在写入高频数据时(例如金融场景下证券交易所的逐笔交易,以及物联网场景下传感器的测量数据)效率很低,因为客户端进程需要承担与mysql通信以及mysql插入数据的时间开销,这就会导致数据本文档来自技高网...

【技术保护点】

1.一种基于多线程异步的高频数据库写入方法,其特征在于包括如下步骤:

2.根据权利要求1所述的一种基于多线程异步的高频数据库写入方法,其特征在于:所述步骤S1的初始化中,设定不同类型的分区方案,用于步骤S2中向不同缓存队列插入不同分区类型的数据,分区方案包括范围分区、哈希分区以及值分区,范围分区对每个分区区间创建一个分区,哈希分区利用哈希函数对分区列进行操作,建立指定数量的分区,值分区对分区列的每个值创建一个分区。

3.根据权利要求1所述的一种基于多线程异步的高频数据库写入方法,其特征在于:所述步骤S1的初始化中,表结构信息包括各列的数据类型,用于步骤S2中对传入...

【技术特征摘要】

1.一种基于多线程异步的高频数据库写入方法,其特征在于包括如下步骤:

2.根据权利要求1所述的一种基于多线程异步的高频数据库写入方法,其特征在于:所述步骤s1的初始化中,设定不同类型的分区方案,用于步骤s2中向不同缓存队列插入不同分区类型的数据,分区方案包括范围分区、哈希分区以及值分区,范围分区对每个分区区间创建一个分区,哈希分区利用哈希函数对分区列进行操作,建立指定数量的分区,值分区对分区列的每个值创建一个分区。

3.根据权利要求1所述的一种基于多线程异步的高频数据库写入方法,其特征在于:所述步骤s1的初始化中,表结构信息包括各列的数据类型,用于步骤s2中对传入数据进行数据校验,再将校验合法的数据进行插入。

4.根据权利要求1所述的一种基于多线程异步的高频数据库写入方法,其特征在于:所述步骤s2中,对于内存表,使用一个缓存队列以及一个线程,将数据插入到缓存队列中。

5.根据权利要求1所述的一种基于多线程异步的高频数据库写入方法,其特征在于:所述步骤s3中,线程循环执行的过程,包括如下步骤:

6.根据权利要求1所述的一种基于多线程异步的高频数据库写入方法,其特征在于:所述步骤s1中,设置回调函数,将数据插入的结果通知用户;所述步骤s3中,还包括步骤s3.4:判断是否设置了回调函数,若...

【专利技术属性】
技术研发人员:余涛平卢周正周小华
申请(专利权)人:浙江智臾科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1