如何评估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表达式 删除不使用的 ...
随机推荐
- Linux:安装图形界面
能连接网络的前提下,使用yum安装 yum groupinstall -y "Desktop"yum groupinstall -y "X Window Syste ...
- PHP时间日期
PHP常用的几个时间日期函数有:date(),mktime(),strtotime(); 一.string date ( string $format [, int $timestamp ] ) 函数 ...
- java 动态编译
public class Main { public static void main(String[] args) { System.out.println("Hello World!&q ...
- java 枚举类 enum 总结
枚举定义: enum是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量 ...
- windows下gethostbyname 调用失败
gethostbyname()函数属于WinSock API库,而在使用WinSock API之前,必须调用WSAStartup函数,只有该函数成功返回(表示应用程序与WinSock库成功地建立起连接 ...
- html text加提示语
<input type="text" id="key" name="key" value=" 请输入关键词" on ...
- Solr Cloud搭建
1:搭建tomcat 配置connector: server.xm文件中: <Connector port="8080"maxThreads="200" ...
- UVa 10071 - Back to High School Physics
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=s ...
- Windows 窗体设计器中的设计时错误
当修改窗体里面某一项时导致窗体报错,但是编译运行没问题,报"依赖项问题"则只需要把报错的那个依赖项删除后再重新引用.
- Java NIO教程 Channel
Channel是一个连接到数据源的通道.程序不能直接用Channel中的数据,必须让Channel与BtyeBuffer交互数据,才能使用Buffer中的数据. 我们用FileChannel作为引子, ...