如何评估ETL的数据加载时间
简述如何评估大型ETL数据加载时间。
答:评估一个大型的ETL的数据加载时间是一件很复杂的事情。数据加载分为两类,一类是初次加载,另一类是增量加载。
在数据仓库正式投入使用时,需要进行一次初次加载,而这次初次加载需要的时间一般较难预料。在数据仓库的日常使用和维护中,每天需要对数据仓库进行增量加载。增量加载的数据量要比初次加载小很多。
下面以初次加载为例来谈谈如何评估大型ETL的数据加载时间。
对初次加载的加载时间进行预估,需要将整个ETL过程分成抽取、转换和加载三部分,分别对这三部分进行评估。
1.对抽取时间的评估。
抽取通常占用的ETL的大部分时间,而且对这部分需要时间的评估也是非常困难的。为了对这部分时间进行评估,我们可以将查询时间分成两部分,一部分是查询响应时间,另一部分是数据返回时间。查询响应时间指从查询开始执行到结果开始返回这段时间。数据返回时间指第一条记录返回到最后一条记录返回的时间。
另外,初次加载的数据量太大,我们可以考虑选择其中的一部分来评估整体的时间,实际处理中,可以选择事实表的一个分区。一般来说各个分区的数据量差不多,评估出一个分区的时间,乘上分区数可以作为整体的评估时间。
2.对数据转换时间的评估
数据转换工作通常在内存中完成,一般来说都有着非常快的速度,占总体时间的比重比较小。如果要评估这部分需要的时间的话,最简单的评估方法是先评估出抽取时间和加载时间,然后运行整个过程,用整体时间减去抽取时间和加载时间。
3.对加载时间的评估
很多原因都可能影响加载时间,其中最重要的两个分别是索引和日志。
对加载时间的评估,也可以像评估抽取时间时一样,选择加载数据的一部分,如1/200进行加载,计算出时间后乘以200来作为整体加载时间。
总之,大型ETL数据的加载时间的评估是很困难的,我们采用的方法主要是类比评估,即选择一部分数据减少整体时间进行评估。在进行评估时要注意到测试环境和生产环境的配置等的差别会引起评估结果的偏差。虽然这种对时间的评估一定会有误差,但是可以做为整体加载时间的一个参考。
如何评估ETL的数据加载时间的更多相关文章
- GreenPlum数据加载
1. copy命令 对于数据加载,GreenPlum数据库提供copy工具,copy工具源于PostgreSQL数据库,copy命令支持文件与表之间的数据加载和表对文件的数据卸载.使用copy命令进行 ...
- 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)
实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...
- Android Volley和Gson实现网络数据加载
Android Volley和Gson实现网络数据加载 先看接口 1 升级接口 http://s.meibeike.com/mcloud/ota/cloudService POST请求 参数列表如下 ...
- iOS App中数据加载的6种方式
我们看到的APP,往往有着华丽的启动界面,然后就是漫长的数据加载等待,甚至在无网络的时候,整个处于不可用状态.那么我们怎么处理好界面交互中的加载设计,保证体验无缝衔接,保证用户没有漫长的等待感,而可以 ...
- AE数据加载
1. 数据加载问题: 任何系统都离不开数据的加载,下边就AE中几种常用的数据加载做一个列举.以便查阅: 1.加载个人数据库 个人数据库是保存在Access中的数据库.其加载方式有两种:通过名字和通过属 ...
- 教你50招提升ASP.NET性能(十四):使用startMode属性来减少ASP.NET站点加载时间
(25)Use the startMode attribute to reduce the load time for your ASP.NET site 招数25: 使用startMode属性来减少 ...
- APP中数据加载的6种方式-b
我们看到的APP,往往有着华丽的启动界面,然后就是漫长的数据加载等待,甚至在无网络的时候,整个处于不可用状态.那么我们怎么处理好界面交互中的加载设计,保证体验无缝衔接,保证用户没有漫长的等待感,而可以 ...
- Android4.0图库Gallery2代码分析(二) 数据管理和数据加载
Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Androi ...
- web开发的性能准则(减少页面加载时间方面)
准则(概述) 减少 HTTP 请求 使用CDN加速 避免空的src或href属性值 增加过期头 启GZIP压缩 把css文件放到头部 把javascript放到尾部 避免使用css表达式 删除不使用的 ...
随机推荐
- JS语法(二)
JS变量 var 变量名 = 变量值://自己会判断什么类型 一个好的编程习惯是,在代码开始处,统一对需要的变量进行声明. var name = “xiaosan”, age = 22, addres ...
- opencv透视变换
关于透视投影的几何知识,以及求解方法,可以参考 http://media.cs.tsinghua.edu.cn/~ahz/digitalimageprocess/chapter06/chapt06_a ...
- 纸上谈兵:AVL树
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 二叉搜索树的深度与搜索效率 我们在树, 二叉树, 二叉搜索树中提到,一个有n个节点 ...
- Android Service 文档
应用场景: 1 用于将后台逻辑(Service中)和UI逻辑(Activity中)进行解耦,实现Service功能的复用,为其他程序提供功能. 2 后台功能,由于Activity在进入后台时(On ...
- Shell脚本IF条件判断和判断条件总结
转自:http://m.jb51.net/article/56553.htm 这篇文章主要介绍了Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结 ...
- regression build test
Q: 什么是regression test以及为什么做regression test? A: fixing1进到build之后,QA/tester要进行手动测试,也可能会写automation.但是随 ...
- 返回记录结构时,如果需要返回为nil时 应该怎么办。
- nodejs总结
1.locomotive Powerful MVC web framework for Node.js. https://github.com/jaredhanson/locomotive 是基于ex ...
- gitlab 配置
一.Gitlab的使用 具体步骤: 1.打开 Git Bash,输入~ssh -keygen 然后一直回车,直至出现图片上的内容 1) 2) 2.然后自动生成.ssh文件夹,双击文件夹 1) 2) ...
- NGUI ScrollView总结
1顶级父类加boxCollider和UIDragScrollView脚本保证在item拖走后也能通过拖拽剩余区域的方式操作. 2下一级添加UIPanel在Clipping设定区域,注意如果设定soft ...