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