本技术涉及计算机和存储,特别是涉及一种数据存储方法、装置、电子设备及介质。
背景技术:
1、用户在线上执行购买商品、开通会员或者订阅图书等交易行为时,服务器构建交易行为对应的订单,订单信息中记录有业务数据和扩展数据。其中,业务数据与交易行为关联度较高,例如,业务数据包括:用户标识、购买的商品标识和支付的金额等。扩展数据与交易行为的关联度较低,例如,扩展数据包括:用户执行交易行为时使用的用户终端的设备标识、使用的优惠券标识和使用的红包金额等。
2、随着线上交易的普及,每天产生的订单量越来越大,如果将所有订单的订单信息都存储在一张订单表中,那么在订单表中读写订单信息的耗时将是巨大的。因此目前一般将这种订单表拆分为多个子表,每张子表包括不同订单的订单信息,且每张子表包括的数据项相同,并在每个数据库中存储一部分子表。
3、由于订单信息中的业务数据与实际业务强相关,因此一般不会频繁修改。但扩展数据与实际业务相关性较弱,因此灵活性较高,改动更为频繁,例如扩展数据包含多种统计分析型数据,不同阶段所需统计的数据可能不同。其中,统计分析型数据包括:用户执行交易行为使用的优惠券标识和使用的红包金额等。而目前每次对扩展数据包括的数据项进行修改时,都需要依次修改每个子表,耗费了大量的时间。因此这种数据存储方式导致维护订单信息的复杂度较高。
技术实现思路
1、本技术实施例的目的在于提供一种数据存储方法、装置、电子设备及介质,以实现降低维护订单信息的复杂度。具体技术方案如下:
2、在本技术实施例的第一方面,提供了一种数据存储方法,所述方法包括:
3、获取待存储的订单信息,所述订单信息包括:链路标识、业务数据和扩展数据,所述链路标识用于表示用户执行的一次交易行为;
4、将所述链路标识和所述业务数据对应存储到订单数据子表中;
5、将所述链路标识和所述扩展数据对应存储到扩展数据表中,所述扩展数据表存储于预设数据库中,所述预设数据库为支持水平扩容和/或水平缩容的数据库。
6、可选的,所述将所述链路标识和所述业务数据对应存储到订单数据子表中,包括:
7、通过第一线程将所述链路标识和所述业务数据对应存储到订单数据子表中;
8、所述将所述链路标识和所述扩展数据对应存储到扩展数据表中,包括:
9、通过第二线程将所述链路标识和所述扩展数据对应存储到扩展数据表中;其中,所述第一线程和所述第二线程异步执行。
10、可选的,所述通过第二线程将所述链路标识和所述扩展数据对应存储到扩展数据表中,包括:
11、通过所述第二线程将所述扩展数据转换为json格式;
12、通过所述第二线程将所述链路标识和json格式的扩展数据对应存储到扩展数据表中。
13、可选的,所述订单信息还包括订单号;所述通过第一线程将所述链路标识和所述业务数据对应存储到订单数据子表中,包括:
14、通过所述第一线程从各数据子表中,确定与所述订单号匹配的订单数据子表,每个数据子表包括的订单数据对应的订单均不相同;
15、通过所述第一线程将所述链路标识、所述订单号和所述业务数据对应存储到确定的订单数据子表中。
16、可选的,在所述通过第二线程将所述链路标识和所述扩展数据对应存储到扩展数据表中之后,所述方法还包括:
17、接收修改请求,所述修改请求用于请求修改所述扩展数据;
18、通过所述第二线程对所述扩展数据进行修改。
19、可选的,在所述将所述链路标识和所述扩展数据对应存储到扩展数据表中之前,所述方法还包括:
20、针对所述扩展数据包括的每个数据,判断该数据所属的类型是否属于预设的白名单集合中;
21、若任一判断结果为否,则确定所述扩展数据无效;
22、若判断结果均为是,则执行所述将所述链路标识和所述扩展数据对应存储到扩展数据表中的步骤。
23、在本技术实施例的第二方面,提供了一种数据存储装置,所述装置包括:
24、获取模块,用于获取待存储的订单信息,所述订单信息包括:链路标识、业务数据和扩展数据,所述链路标识用于表示用户执行的一次交易行为;
25、第一存储模块,用于将所述链路标识和所述业务数据对应存储到订单数据子表中;
26、第二存储模块,用于将所述链路标识和所述扩展数据对应存储到扩展数据表中,所述扩展数据表存储于预设数据库中,所述预设数据库为支持水平扩容和/或水平缩容的数据库。
27、可选的,所述第一存储模块,具体用于:
28、通过第一线程将所述链路标识和所述业务数据对应存储到订单数据子表中;
29、所述第二存储模块,具体用于:
30、通过第二线程将所述链路标识和所述扩展数据对应存储到扩展数据表中;其中,所述第一线程和所述第二线程异步执行。
31、可选的,所述第二存储模块,具体用于:
32、通过所述第二线程将所述扩展数据转换为json格式;
33、通过所述第二线程将所述链路标识和json格式的扩展数据对应存储到扩展数据表中。
34、可选的,所述订单信息还包括订单号;所述第一存储模块,具体用于:
35、通过所述第一线程从各数据子表中,确定与所述订单号匹配的订单数据子表,每个数据子表包括的订单数据对应的订单均不相同;
36、通过所述第一线程将所述链路标识、所述订单号和所述业务数据对应存储到确定的订单数据子表中。
37、可选的,所述装置还包括:
38、接收模块,用于在所述通过第二线程将所述链路标识和所述扩展数据对应存储到扩展数据表中之后,接收修改请求,所述修改请求用于请求修改所述扩展数据;
39、修改模块,用于通过所述第二线程对所述扩展数据进行修改。
40、可选的,所述装置还包括:
41、判断模块,用于在所述将所述链路标识和所述扩展数据对应存储到扩展数据表中之前,针对所述扩展数据包括的每个数据,判断该数据所属的类型是否属于预设的白名单集合中;
42、确定模块,用于若所述判断模块的任一判断结果为否,则确定所述扩展数据无效;
43、调用模块,用于若所述判断模块的判断结果均为是,则调用所述第二存储模块执行所述将所述链路标识和所述扩展数据对应存储到扩展数据表中的步骤。
44、在本技术实施例的第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
45、存储器,用于存放计算机程序;
46、处理器,用于执行存储器上所存放的程序时,实现第一方面任一项所述的方法。
47、在本技术实施例的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项所述的方法。
48、在本技术实施例的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一项所述的方法。
49、本技术实施例的有益效果:
50、本技术实施例提供的数据存储方法、装置、电子设备及介质,由于本技术实施例可以将业务数据和扩展数据分别存储到不同的表中,使得对扩展数据的修改不涉及修改业务数据所在的数据子表。而且扩展数据存储在预设数据库中,由于预设数据库支持水平扩容和/或水平缩容,因此即使扩展数据表中存储的扩展数据较多,也不需要对扩展数据表进行拆分,即各订单信息的扩展数据可以存储在同一扩展数据表中。因此在扩展数据包括的数据项需要修改时,仅需修改一张扩展数据表,所以本技术实施例降低了维护订单信息的复杂度。
1.一种数据存储方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述链路标识和所述业务数据对应存储到订单数据子表中,包括:
3.根据权利要求2所述的方法,其特征在于,所述通过第二线程将所述链路标识和所述扩展数据对应存储到扩展数据表中,包括:
4.根据权利要求2所述的方法,其特征在于,所述订单信息还包括订单号;所述通过第一线程将所述链路标识和所述业务数据对应存储到订单数据子表中,包括:
5.根据权利要求2-4任一项所述的方法,其特征在于,在所述通过第二线程将所述链路标识和所述扩展数据对应存储到扩展数据表中之后,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,在所述将所述链路标识和所述扩展数据对应存储到扩展数据表中之前,所述方法还包括:
7.一种数据存储装置,其特征在于,所述装置包括:
8.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的方法。