本发明专利技术提供的大数据ETL动态划分时间片的数据抽取方法,首先设定系统的基准耗时并初始化系统的分片时间,然后启动系统循环执行数据抽取;系统在执行完一次数据抽取后,如果系统当前实时耗时和基准耗时的差值大于预设阈值时,系统根据当前分片时间、基准耗时和当前实时耗时调整下一次分片时间,并根据下一次分片时间执行下一次数据抽取;如果系统当前实时耗时和基准耗时的差值小于或等于预设阈值时,系统保持当前的分片时间,并根据当前分片时间执行下一次数据抽取,该方法能够动态划分时间片,使得下一次数据抽取的实时耗时和基准耗时趋于平稳,提高了数据抽取的效率。
【技术实现步骤摘要】
本专利技术涉及通信
,具体涉及一种大数据ETL动态划分时间片的数据抽取方法。
技术介绍
ETL(Extract-Transform-Load,数据仓库技术),用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。现有的ETL工具从数据源抽取数据一般是全量或者增量抽取,对于从关系数据库中大表数据(比如海量历史日志抽取),数据一般根据固定的分片时间(历史日志数据一般都是按时间索引)来进行抽取,分片时间是指相邻两次数据抽取的间隔。但是对于业务日志数据每个分片时间内分布的数据量可能不是均匀的,如果我们为把分片划分为等分时间片,那么分片时间内分布的数据量过多会造成系统I/O,内存消耗陡峰,分片时间内分布的数据量过小会造成计算资源浪费,出现加长采集周期,空转问题。
技术实现思路
针对现有技术中存在的上述不足,本专利技术专利在于怎么提供一种基于ETL的数据抽取方法,能够动态划分时间片,提高数据抽取的效率,解决现有技术存在的系统I/O,内存消耗陡峰或计算资源浪费等问题。为解决上述技术问题,实现专利技术目的,本专利技术采用的技术方案如下:一种大数据ETL动态划分时间片的数据抽取方法,首先设定系统的基准耗时并初始化系统的分片时间,然后启动系统循环执行数据抽取,并记录系统执行完一次数据抽取后得到的实时耗时;系统在执行完一次数据抽取后,如果系统当前实时耗时和基准耗时的差值大于预设阈值时,系统根据当前分片时间、基准耗时和当前实时耗时调整下一次分片时间,并根据下一次分片时间执行下一次数据抽取;如果系统当前实时耗时和基准耗时的差值小于或等于预设阈值时,系统保持当前的分片时间,并根据当前分片时间执行下一次数据抽取。作为上述方案的进一步优化,所述系统“根据当前分片时间、基准耗时和当前实时耗时调整下一次分片时间”具体为:定义当前分片时间为an,单位为秒,n为系统执行数据抽取的次数,当前实时耗时为en,单位为秒,基准耗时为k,单位为秒;令系数r=k/en,函数其中rmin为预设的系数r下限,rmax为预设的系数r上限,则下一次分片时间其中g=an*f(r),单位为秒,m为预设的分片阈值,单位为秒,即最大分片时间。作为上述方案的进一步优化,所述rmin的取值范围为0.1~1;所述rmax的取值范围为2~5。作为上述方案的进一步优化,所述基准耗时k的取值范围为1~10,单位为秒。作为上述方案的进一步优化,所述分片阈值m为系统初始化的分片时间的5~10倍。作为上述方案的进一步优化,所述系统初始化的分片时间单位为秒,其中M为系统每分钟的吞吐量,N为系统的数据源每分钟内产生的数据量。相比于现有技术,本专利技术具有如下优点:本专利技术提供的大数据ETL动态划分时间片的数据抽取方法,系统能够根据上一次数据抽取的分片时间、基准耗时和实时耗时调整下一次数据抽取的分片时间,能够动态划分时间片,使得下一次数据抽取的实时耗时和基准耗时趋于平稳,提高了数据抽取的效率。具体实施方式下面结合实施例对本专利技术作进一步详细的描述,但本专利技术的实施方式不限于此。实施例:一种大数据ETL动态划分时间片的数据抽取方法,首先设定系统的基准耗时并初始化系统的分片时间,然后启动系统循环执行数据抽取,并记录系统执行完一次数据抽取后得到的实时耗时;系统在执行完一次数据抽取后,如果系统当前实时耗时和基准耗时的差值大于预设阈值时,系统根据当前分片时间、基准耗时和当前实时耗时调整下一次分片时间,并根据下一次分片时间执行下一次数据抽取;如果系统当前实时耗时和基准耗时的差值小于或等于预设阈值时,系统保持当前的分片时间,并根据当前分片时间执行下一次数据抽取。假设系统的数据源每分钟内产生的数据量是一定的,则分片时间越长,两次数据抽取的时间间隔越长,则一次数据抽取抽取到的数据量也就越大,系统处理的实时耗时也就越长。反之,分片时间越短,系统处理的实时耗时也就越短。系统设定的基准耗时和初始化的分片时间可根据整个系统的性能和数据源的数据量确定,在正式运行该系统时,可以用该系统进行调试,设定不同的分片时间,然后得出系统在每一个分片时间下的实时耗时,如果实时耗时较大,缩小分片时间,如果实时耗时较小,增大分片时间,从而选出系统最佳的实时耗时对应的分片时间,在正式运行系统时,用该分片时间对系统进行初始化,一方面能够解决系统冷启动的问题,另一方面使得系统从一开始运行后的实时耗时比较合理。事实上,由于系统的数据源每分钟内产生的数据量是随机的,所以即便分片时间一样,系统的数据源每分钟内产生的数据量越大,实时耗时也就越大。系统在数据抽取的过程中,即便上一次分片时间下的实时耗时趋近基准耗时,但是可能下一次数据抽取时数据源的数据量较大或较小,使得实时耗时较大或较小,这时就需要对分片时间做调整。该方法能够持续根据上一次数据抽取的情况调整下一次数据抽取的分片时间,本方法调整分片时间始终以数据抽取的实事耗时趋近于基准耗为基准,实现了在整个数据抽取过程中动态划分时间片的功能,使得下一次数据抽取的实时耗时和基准耗时趋于平稳,提高了数据抽取的效率。所述系统“根据当前分片时间、基准耗时和当前实时耗时调整下一次分片时间”具体为:定义当前分片时间为an,单位为秒,n为系统执行数据抽取的次数,当前实时耗时为en,单位为秒,基准耗时为k,单位为秒;令系数r=k/en,函数其中rmin为预设的系数r下限,rmax为预设的系数r上限,则下一次分片时间其中g=an*f(r),单位为秒,m为预设的分片阈值,单位为秒,即最大分片时间。未防止实时耗时抖动过大,可以限制相邻时间片波动范围比率,所述rmin的取值范围为0.1~1,优选0.5;所述rmax的取值范围为2~5,优选2。所述基准耗时k的取值范围为1~10,单位为秒,优选2秒。所述分片阈值m为最大分片时间,一般系统初始化的分片时间的5~10倍,优选系统初始化的分片时间的10倍。所述系统初始化的分片时间单位为秒,其中M为系统每分钟的吞吐量,N为系统的数据源每分钟内产生的数据量。例如系统中宿主环境性能的吞吐量只有50W/min,系统的数据源平均每分钟内产生的数据量为100W,则初始化的分片时间为30秒,由于系统执行数据抽取时还需要考虑多个任务同时运行会竞争资源,所以还要求系统在分片时间达到时,抽取的数据量一般不超过网卡流量的10%。假设rmin=0.5,rmax=2,k=2s,m=10a0=300s,a0=30s,e0=4s,则r=0.5,f(r)=0.5,g=15s,则下一次分片时间a1=15s,由此可以看出,如果首次实时耗时为4s,大于基准耗时2s,减小下一次分片时间为15秒。假设e0=1s,则r=2,f(r)=2,g=60s,则下一次分片时间a1=60s,由此可以看出,如果首次实时耗时为1s,小于基准耗时2s,增大下一次分片时间为60秒。由此可以看出使用上述方法,可以实现慢慢调整分片时间,使得实事耗时趋近于基准耗时。最后说明的是,以上实施例仅用以说明本专利技术的技术方案而非限制,尽管参照较佳实施例对本专利技术进行了详细说明,本文档来自技高网...
【技术保护点】
一种大数据ETL动态划分时间片的数据抽取方法,其特征在于,首先设定系统的基准耗时并初始化系统的分片时间,然后启动系统循环执行数据抽取,并记录系统执行完一次数据抽取后得到的实时耗时;系统在执行完一次数据抽取后,如果系统当前实时耗时和基准耗时的差值大于预设阈值时,系统根据当前分片时间、基准耗时和当前实时耗时调整下一次分片时间,并根据下一次分片时间执行下一次数据抽取;如果系统当前实时耗时和基准耗时的差值小于或等于预设阈值时,系统保持当前的分片时间,并根据当前分片时间执行下一次数据抽取。
【技术特征摘要】
1.一种大数据ETL动态划分时间片的数据抽取方法,其特征在于,首先设定系统的基准耗时并初始化系统的分片时间,然后启动系统循环执行数据抽取,并记录系统执行完一次数据抽取后得到的实时耗时;系统在执行完一次数据抽取后,如果系统当前实时耗时和基准耗时的差值大于预设阈值时,系统根据当前分片时间、基准耗时和当前实时耗时调整下一次分片时间,并根据下一次分片时间执行下一次数据抽取;如果系统当前实时耗时和基准耗时的差值小于或等于预设阈值时,系统保持当前的分片时间,并根据当前分片时间执行下一次数据抽取。2.如权利要求1所述的大数据ETL动态划分时间片的数据抽取方法,其特征在于,所述系统“根据当前分片时间、基准耗时和当前实时耗时调整下一次分片时间”具体为:定义当前分片时间为an,单位为秒,n为系统执行数据抽取的次数,当前实时耗时为en,单位为秒,基准耗时为k,单位为...
【专利技术属性】
技术研发人员:马昭德,李建,张韬,何荣,夏秋,
申请(专利权)人:重庆秒银科技有限公司,
类型:发明
国别省市:重庆;50
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。