数据仓库的实现有哪些?
数据仓库包含大量的数据。OLAP 服务器要求决策支持查询在几秒钟内得到确认。因此,数据仓库系统必须提供高效的立方体计算技术、访问技术和查询处理技术。
数据立方体的有效计算
多维数据分析的核心是跨多个维度集合对聚合进行有效计算。在 SQL 术语中,这些聚合被称为分组依据。每个分组依据可以用一个立方体表示,其中分组依据的集合形成一个立方体晶格,定义了一个数据立方体。
给定一个基立方体,有三种数据立方体物化的选择 -
**不进行物化** - 它不预先计算任何“非基”立方体。这会导致动态计算代价高昂的多维聚合,这可能非常慢。
**完全物化** - 它可以预先计算所有立方体。计算出的立方体晶格被称为完整立方体。这种选择通常需要大量的内存空间来存储所有预先计算的立方体。
**部分物化** - 它可以选择性地计算整个可能的立方体集合的适当子集。或者,它可以计算立方体的子集,其中仅包含满足某些用户指定条件的单元格,包括每个单元格的元组计数是否遵循某个阈值。
索引 OLAP 数据
它可以支持高效的数据访问,一些数据仓库系统提供索引结构和物化视图(使用立方体)。位图索引方法在 OLAP 产品中很有名,因为它能够在数据立方体中进行快速搜索。位图索引是记录 ID (RID) 列表的替代表示。
在给定属性的位图索引中,每个属性域中的每个值 v 都有一个不同的位向量 Bv。如果给定属性的域包含 n 个值,则位图索引中的每个条目都需要 n 位(即,有 n 个位向量)。如果属性在数据表中给定行的值是 v,则定义该值的位在位图索引的对应行中设置为 1。该行的所有其他位都设置为 0。
OLAP 查询的有效处理
物化立方体和构建 OLAP 索引结构的目标是加快数据立方体中的查询处理速度。
**确定应在可用立方体上执行哪些操作** - 这包括将查询中表示的一些选择、投影、汇总(分组依据)和向下钻取操作转换为相应的 SQL 和/或 OLAP 操作。例如,切片和切块数据立方体可以对应于物化立方体上的选择和投影操作。
**确定应将相关操作应用于哪些物化立方体** - 这包括识别一些可能用于回答查询的物化立方体,使用立方体之间“支配”关系的知识修剪以下集合,估计使用剩余物化立方体和选择成本最低的立方体。