-
准备加载事实表:科学写作指南,教你如何写出被引用的论文和获得资助的提案
资源介绍
7.5 准备装载事实表
在本节中,我们将介绍如何高效的处理数据加载并克服常见的效率障碍。如
果不能采用正确的方法,那么数据加载对于 ETL 开发者将是一个恶梦。接下来的
3 节中将概述你将面对的障碍。
管理索引
索引对于查询来说可以提升性能,但是在数据加载的时候起到的却是相反作
用。如果不能很好的处理,那些使用了大量索引的表将导致你的处理变得非常缓
慢。在开始加载数据以前,在前置任务中需要删除所有的索引,然后在后置任务
中重建所有的索引。如果在加载过程中包含数据更新(Update)操作,需要将那
些要执行更新的记录和其他仅仅需要简单插入的记录分开,单独处理。简单的说,
请按照下列的步骤来避免索引导致的 ETL 处理瓶颈:
1. 从要插入的记录中分离那些需要执行更新操作的记录
2. 删除那些更新操作不需要的索引
3. 加载那些需要更新的记录
4. 删除剩余的索引
5. 通过批量加载方式执行数据插入
6. 重建所有的索引。
管理分区
为了管理或者提高查询性能,使用分区技术将数据库表(及他们的索引)在
物理上分为一些小的表。分区技术的最终优势是,当一个查询要从 10 年的数据
中获得一个月的数据的时候,无需扫描所有的数据,而是直接从包含该月数据的
分区中获得数据。表分区可以极大的提高对大事实表的查询的性能。表分区对于
最终用户是透明的。只有 DBA 和 ETL 团队才会关心分区。
最常用的事实表分区策略是按照日期字段来分区。原因是日期维度是预加载