CN113094262B - 一种基于数据库分库分表的生产数据进行测试的方法 - Google Patents
一种基于数据库分库分表的生产数据进行测试的方法 Download PDFInfo
- Publication number
- CN113094262B CN113094262B CN202110336106.9A CN202110336106A CN113094262B CN 113094262 B CN113094262 B CN 113094262B CN 202110336106 A CN202110336106 A CN 202110336106A CN 113094262 B CN113094262 B CN 113094262B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- user
- sub
- modulus
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据库分库分表的生产数据进行测试的方法,涉及软件测试领域,包括:S1:设计数据库分库分表用户数据保存方法;S2:生产数据库抽样;S3:基于数据进行业务测试验证。本发明的有益效果:通过预先对用户的所有数据都绑定一个分库分表索引和一个用户唯一编号ID,并一起保存,实现用户所有数据的区分并确保所有用户数据都存放在一个数据库分片上;通过预设的抽样置信度及误差率计算出最低抽样数,通过数据库分库分表取模系数、取模余数和抽样的取模倍数因子,确定数据的抽样量且不小于最低抽样数,并通过取模系数、取模余数、抽样的取模倍数因子的组合,能够在保证用户数据完整性的情况下,极大的减少数据的抽样量。
Description
技术领域
本发明涉及软件测试领域,尤其是一种基于数据库分库分表的生产数据进行测试的方法。
背景技术
现有技术方案:
1.如果需要生产数据用于测试环境,主要是通过将生产数据全部下载到测试环境,然后导入测试环境数据库,才能进行测试,该方案在数据库数据量非常大时,存在导出生产数据并导入测试环境成本非常高且耗时长的问题。
2.通过梳理出用户数据库表之间的结构关系,筛选出特定用户的数据进行测试,然后从生产环境导出数据再导入测试环境,当数据库表很多且结构复杂的情况下,该方案执行难度大且成本高。
与本发明相关的技术点:
置信度:也叫可靠度,或置信水平,置信系数,它是指特定个体对待特定命题真实性相信的程度,也就是概率是对个人信念合理性的量度。
置信水平是指构造总体参数的多个样本区间中,包含总体参数的区间占总数之比,一般用1-α表示;而置信区间是指在某一置信水平下,样本统计值与总体参数值间误差范围。置信区间越大,置信水平越高。
发明内容
针对上述现有技术中存在的不足,本发明的目的在于一种基于数据库分库分表的生产数据进行测试的方法,解决现有技术成本高且效率低的问题。
为解决上述问题,本发明公开了一种基于数据库分库分表的生产数据进行测试的方法,包括以下步骤:步骤1:设计数据库分库分表用户数据保存方法;步骤2:生产数据库抽样;步骤3:基于数据进行业务测试验证;
其中,步骤1的具体方法如下:
1.1预先确定需要将生产用户数据均匀存储到多少台数据库机器上,将数据库机器的台数设置为取模系数;
1.2对每一个用户ID,生成一条唯一用户ID索引;并随机生成一条N位长度的数据库分库分表索性;将该用户的唯一用户ID索引及分库分表索引一起组成一条用户的标识记录,并按照步骤1.3保存到特定的数据库分片上;
1.3对数据库分库分表索性进行取模,取模数为步骤1.1设置的取模系数,根据取模余数,确定用户数据分布应该分配到哪个数据库分片上;
步骤2的具体方法如下:
2.1了解生产数据库的数据量大小,并按照统计概率理论算出置信率为M%的抽样数据量大小,根据实际的测试需要的数据量大小确定对几片数据库进行数据抽样;
2.2确定数据库分库分表取模系数,确定每一分片数据库的取模余数,确定数据库抽样的取模倍数因子;
2.3通过取模系数与抽样的取模倍数因子相乘,获得抽取取模系数;
2.4对确定需要抽样的分片数据库里的数据表进行抽样,对每一张表里面的每条数据的分库分表索引以抽取取模系数为系数进行取模,将余数等于分片数据库的取模余数的数据取出并导出为一个抽样分片数据库。
作为优选,步骤1还包括以下步骤:
1.4用户产生的其它业务数据,通过查询用户的唯一用户ID索引,获得该用户的分库分表索引,并再次依据步骤1.3来计算出用户其它业务数据应该存储到哪个数据库分片上;计算获得用户其它业务数据应该存储到哪个数据库分片上后,将该用户的其它业务数据与用户的分库分表索引一起作为一条记录,保存到计算出的数据库中。
作为优选,步骤2还包括以下步骤:
2.5对抽样数据库的数据进行脱敏操作,将数据库的涉及用户隐私的信息进行信息脱敏,最后存储为分片脱敏数据库。
作为优选,步骤3的具体步骤如下:将生产上脱敏的分片数据库数据导入测试环境对应的数据库分片上。
作为优选,步骤3还包括以下步骤:对测试环境的其它未进行抽样的数据库分片,在保障数据库的表结构和生产一致的情况下,清空所有表数据。
作为优选,步骤2.1所述的置信率为M%取值区间为95%到99%。
本发明有益效果如下:
1.通过预先对用户的所有数据都绑定一个分库分表索引,及唯一用户ID一起保存,实现用户所有数据的区分并确保所有用户数据都存放在一个数据库分片上;
2.通过预设的抽样置信度及抽样误差,计算最低抽样数,通过数据库分库分表取模系数、取模余数、抽样的取模倍数因子,确定数据的抽样量且不小于最低抽样数,并通过取模系数、取模余数、抽样的取模倍数因子的组合,能够在保证用户数据完整性的情况下,极大的减少数据的抽样量;
3.将生产上脱敏的分片数据库数据导入测试环境对应的数据库分片上面;对测试环境的其它未进行抽样的数据库分片,在保障数据库的表结构和生产一致情况下,清空所有表数据。该方式解决了生产数据与测试环境数据存在冲突的问题。
附图说明
图1是本发明的实施例示意图。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
为解决上述问题,本发明公开了一种基于数据库分库分表的生产数据进行测试的方法,包括:
步骤1:设计数据库分库分表用户数据保存方法:
1.1预先确定需要将生产用户数据均匀存储到多少台数据库机器上,将数据库机器的台数设置为取模系数;如有64台服务器,可以设置取模系数为64;
1.2对每一个用户ID,生成一条唯一用户ID索引;并随机生成一条N位长度的数据库分库分表索性;将该用户的唯一用户ID索引及分库分表索引一起组成一条用户的标识记录,并按照步骤1.3保存到特定的数据库分片上;
如:用户ID为:ID202010021745678分库索性为:87640,则87640/64取余数为60,则该用户数据保存在第60片数据库上;
1.3对数据库分库分表索性进行取模,取模数为步骤1.1设置的取模系数,根据取模余数,确定用户数据分布应该分配到那个数据库分片上;
1.4用户产生的其它业务数据,通过查询用户的唯一用户ID索引,获得该用户的分库分表索引,并再次依据步骤1.3来计算出用户其它业务数据应该存储到那个数据库分片上;计算获得用户其它业务数据应该存储到那个数据库分片上后,将该用户的其它业务数据与用户的分库分表索引一起作为一条记录,保存到计算出的数据库中;
如用户信息数据:
|cus_no|sharding|name|age|phone|
|ID202010021745678|87640|张三|26|13900000000|
用户其它业务信息:
|cus_no|sharding|loan|date|channel|
|ID202010021745678|87640|1000.00|20210231|xw001|。
步骤2:生产数据库抽样:
2.1了解生产数据库的数据量大小,并按照统计概率理论,算出置信率为99%,抽样误差为1%的抽样数据量大小,根据实际的测试需要的数据量大小确定对几片数据库进行数据抽样;本案例取99%置信度,抽样误差为1%,可以根据实际的情况,调整置信度和抽样误差;
2.2确定数据库分库分表取模系数,确定每一分片数据库的取模余数,确定数据库抽样的取模倍数因子;
2.3通过取模系数与抽样的取模倍数因子相乘,获得抽取取模系数;
2.4由于数据库的每一张表的每条记录都按照步骤1的要求,预设计和保存了分库分表索性值,对确定需要抽样的分片数据库里的数据表进行抽样,对每一张表里面的每条数据的分库分表索引以抽取取模系数为系数进行取模,将余数等于分片数据库的取模余数的数据取出并导出为一个抽样分片数据库;由于每一个用户的所有数据都带有相同的分库分表索引,通过抽样也能够保证每一个用户的数据完整性;另外由于进行的是随机抽样,数据在随机的基础上,也保证了数据量的大幅度降低,从而能够快速将生产数据导出到测试环境使用。该步骤也解决了,如果数据库的表结构关系复杂情况下,进行抽样需要花费很大成本进行表间关系梳理的问题。因为该方法通过使每个用户的所有数据都带有相同的分库分表索性,所以进行抽样取模后,所有用户数据的余算也一定是一致的,能够保证在抽样的情况下,都被筛选出来;
2.5对抽样数据库里面的数据进行脱敏操作,将数据库里面的用户电话号码、身份证、姓名、住址、银行卡等涉及用户隐私的敏感信息进行脱敏,最后存储为分片脱敏数据库。
步骤3:基于脱敏数据进行业务测试验证。
3.1将生产上脱敏的分片数据库数据导入测试环境对应的数据库分片上面;对测试环境的其他未进行抽样的数据库分片,在保障数据库的表结构和生产一致情况下,清空所有表数据。该方式解决了生产数据与测试环境数据存在冲突的情况,因为数据的产生和业务配置相关,测试环境的这些配置可能和生产配置不一样,所以需要清空测试环境的数据。
3.2由于采样数据量在一定数量以后,抽样可达到99%置信度和1%的误差率从而满足了数据的随机性,在测试环境进行测试,也能够实现数据的的多样性以及和在生产环境进行验证的高度一致性。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
1.一种基于数据库分库分表的生产数据进行测试的方法,其特征在于,包括以下步骤:步骤1:设计数据库分库分表用户数据保存方法;步骤2:生产数据库抽样;步骤3:基于数据进行业务测试验证;
其中,步骤1的具体方法如下:
1.1预先确定需要将生产用户数据均匀存储到多少台数据库机器上,将数据库机器的台数设置为取模系数;
1.2对每一个用户ID, 生成一条唯一用户ID索引;并随机生成一条N位长度的数据库分库分表索性;将该用户的唯一用户ID索引及分库分表索引一起组成一条用户的标识记录,并按照步骤1.3保存到特定的数据库分片上;
1.3对数据库分库分表索性进行取模,取模数为步骤1.1设置的取模系数,根据取模余数,确定用户数据分布应该分配到哪个数据库分片上;
步骤2的具体方法如下:
2.1了解生产数据库的数据量大小,并按照统计概率理论算出置信率为M% 的抽样数据量大小,根据实际的测试需要的数据量大小确定对几片数据库进行数据抽样;
2.2确定数据库分库分表取模系数,确定每一分片数据库的取模余数,确定数据库抽样的取模倍数因子;
2.3通过取模系数与抽样的取模倍数因子相乘,获得抽取取模系数;
2.4对确定需要抽样的分片数据库里的数据表进行抽样,对每一张表里面的每条数据的分库分表索引以抽取取模系数为系数进行取模,将余数等于分片数据库的取模余数的数据取出并导出为一个抽样分片数据库;
步骤3的具体步骤如下:将生产上脱敏的分片数据库数据导入测试环境对应的数据库分片上;对测试环境的其它未进行抽样的数据库分片,在保障数据库的表结构和生产一致的情况下,清空所有表数据。
2.根据权利要求1所述的一种基于数据库分库分表的生产数据进行测试的方法,其特征在于,步骤1还包括以下步骤:
1.4用户产生的其它业务数据,通过查询用户的唯一用户ID索引,获得该用户的分库分表索引,并再次依据步骤1.3来计算出用户其它业务数据应该存储到哪个数据库分片上;计算获得用户其它业务数据应该存储到哪个数据库分片上后,将该用户的其它业务数据与用户的分库分表索引一起作为一条记录,保存到计算出的数据库中。
3.根据权利要求2所述的一种基于数据库分库分表的生产数据进行测试的方法,其特征在于,步骤2还包括以下步骤:
2.5对抽样数据库的数据进行脱敏操作,将数据库的涉及用户隐私的信息进行信息脱敏,最后存储为分片脱敏数据库。
4.根据权利要求2所述的一种基于数据库分库分表的生产数据进行测试的方法,其特征在于,步骤2.1所述的置信率为M%取值区间为95%到99%。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110336106.9A CN113094262B (zh) | 2021-03-29 | 2021-03-29 | 一种基于数据库分库分表的生产数据进行测试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110336106.9A CN113094262B (zh) | 2021-03-29 | 2021-03-29 | 一种基于数据库分库分表的生产数据进行测试的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094262A CN113094262A (zh) | 2021-07-09 |
CN113094262B true CN113094262B (zh) | 2022-10-18 |
Family
ID=76670663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110336106.9A Active CN113094262B (zh) | 2021-03-29 | 2021-03-29 | 一种基于数据库分库分表的生产数据进行测试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094262B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434908B (zh) * | 2021-08-30 | 2021-12-07 | 四川新网银行股份有限公司 | 一种基于Logback日志组件的数据脱敏方法 |
CN114116777A (zh) * | 2021-12-06 | 2022-03-01 | 深圳前海微众银行股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN114169004A (zh) * | 2021-12-10 | 2022-03-11 | 泰康保险集团股份有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714097A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 一种访问数据库的方法和装置 |
CN105786938A (zh) * | 2014-12-26 | 2016-07-20 | 华为技术有限公司 | 一种对大数据进行处理的方法和装置 |
CN107180081A (zh) * | 2017-04-28 | 2017-09-19 | 广东亿迅科技有限公司 | 海量关系型数据库的调用方法及装置 |
CN111931241A (zh) * | 2020-09-23 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的线性回归特征显著性检验方法、装置 |
CN112015741A (zh) * | 2020-10-19 | 2020-12-01 | 武汉物易云通网络科技有限公司 | 一种海量数据的分库分表存储方法与装置 |
CN112380276A (zh) * | 2021-01-15 | 2021-02-19 | 四川新网银行股份有限公司 | 一种分布式系统分库分表后非分片键字段查询数据的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6801903B2 (en) * | 2001-10-12 | 2004-10-05 | Ncr Corporation | Collecting statistics in a database system |
US10192000B2 (en) * | 2016-01-29 | 2019-01-29 | Walmart Apollo, Llc | System and method for distributed system to store and visualize large graph databases |
CN110909004A (zh) * | 2019-11-29 | 2020-03-24 | 南京领行科技股份有限公司 | 一种分库分表的数据校验方法及设备 |
-
2021
- 2021-03-29 CN CN202110336106.9A patent/CN113094262B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714097A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 一种访问数据库的方法和装置 |
CN105786938A (zh) * | 2014-12-26 | 2016-07-20 | 华为技术有限公司 | 一种对大数据进行处理的方法和装置 |
CN107180081A (zh) * | 2017-04-28 | 2017-09-19 | 广东亿迅科技有限公司 | 海量关系型数据库的调用方法及装置 |
CN111931241A (zh) * | 2020-09-23 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的线性回归特征显著性检验方法、装置 |
CN112015741A (zh) * | 2020-10-19 | 2020-12-01 | 武汉物易云通网络科技有限公司 | 一种海量数据的分库分表存储方法与装置 |
CN112380276A (zh) * | 2021-01-15 | 2021-02-19 | 四川新网银行股份有限公司 | 一种分布式系统分库分表后非分片键字段查询数据的方法 |
Non-Patent Citations (3)
Title |
---|
基于分布式的数据库分库与分表策略研究;谢振华 等;《电脑知识与技术》;20200515;第16卷(第14期);第60-62页 * |
工业大数据分析技术的发展及其面临的挑战;何文韬等;《信息与控制》;20180702;第47卷(第04期);第398-410页 * |
数据库分库分表;路要一步一步走;《https://www.cnblogs.com/king0207/p/13392006.html》;20201210;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113094262A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113094262B (zh) | 一种基于数据库分库分表的生产数据进行测试的方法 | |
US9934233B2 (en) | Searchable data archive | |
CN109189861A (zh) | 基于指标的数据流统计方法、服务器及存储介质 | |
CN112527783A (zh) | 一种基于Hadoop的数据质量探查系统 | |
CN111385365A (zh) | 上报数据的处理方法、装置、计算机设备和存储介质 | |
CN112199388A (zh) | 陌电识别方法、装置、电子设备及存储介质 | |
CN107577707B (zh) | 一种目标数据集生成方法、装置及电子设备 | |
CN111672128A (zh) | 基于本地保留时长识别的游戏商城游戏推荐方法及系统 | |
CN101661428B (zh) | 用于评估内存管理分析的产生式规则的方法 | |
CN110334019A (zh) | 一种测试方法、装置及可读存储介质 | |
CN113434596A (zh) | 一种分布式数据库测试数据的生成方法及装置 | |
CN112256648A (zh) | 一种基于Nginx日志行为采集和跟踪的方法及装置 | |
CN113849520A (zh) | 异常sql的智能识别方法、装置、电子设备及存储介质 | |
CN111309724A (zh) | 一种用于对大数据进行处理的方法及系统 | |
CN117494702B (zh) | 一种结合rpa和ai的数据推送方法及系统 | |
CN114266073B (zh) | 一种基于区块链技术的数据链接隐私处理系统 | |
EP2767911A1 (en) | Data storage and retrieval | |
CN113011831B (zh) | 用于数据审计的系统以及数据审计的方法 | |
CN116069248A (zh) | 一种科技项目分类储存系统 | |
CN117971887A (zh) | 慢查询日志的生成方法、装置、设备及介质 | |
CN115276983A (zh) | 一种用于渗透测试的密码字典管理方法 | |
CN107623659A (zh) | 一种获取设备特征id方法和系统 | |
CN114169004A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN115203000A (zh) | 验证搜索召回质量的方法、装置、计算机设备 | |
CN118037030A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |