Storage of multidimensional arrays based on arbitrary tiling

论文标题: Storage of multidimensional arrays based on arbitrary tiling
作者: Furtado P Baumann P

Proceedings - International Conference on Data Engineering (1999) 480-489

DOI: 10.1109/icde.1999.754964

专业词汇:

multidimensional discrete data (MDD):多维离散数据

On-line Analytical Processing(OLAP):联机分析处理,相对于OLTP,操作以为主

MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)

tile:切片,对数组的访问单元

tiling:平铺,支持任何分割成不相交的多维区间以及n维空间的不完全覆盖和 MDD 的逐渐增长

Blob(Binary long Object)是二进制长对象的意思,Blob通常用于存储大文件,典型的Blob内容是一张图片或者一个声音文件

Rasdaman- 阵列数据库系统

ODMG 是支持以对象形式对数据建模的数据库管理系统。

0. Abstract

我们描述了四种策略和各自的平铺算法,并展示了它们在减少磁盘访问和范围查询后处理时间方面的有效性测量。

1. Introduction

一个 MDD 对象由一个可能的稀疏数组组成规则多维网格中某些基本类型的单元格。

虽然分块(平铺)已经被广泛应用了,但是使用平铺来适应不同的访问模式还没有被充分利用。

2. Motivation

以统一的方式处理MDD,独立于应用程序、维度、单元类型和其他属性,不仅可行,而且具有优势。

存储管理的任务很明确:

  • 支持数据模型
    • 要能够管理不同的单元类型和维度
    • 管理数据的插入,删除导致的稀疏性、增加和收缩
  • 优化最常见的数据访问类型
    • 对MDD的访问是范围查询,即检索包含在多维区间内的所有单元格,从而产生原始对象的“子 MDD”
    • 为了优化对 MDD 的独立访问,必须最小化检索到的数据量以及数据库页面的数量
    • 由于访问存储系统针对整个页面,应定义tile以使数据库页面尽可能完整,即切片(tile)大小应近似为存储系统页面大小的整数倍。
    • 另外,由于tile是对数组的访问单位,因此希望尽量减少访问的tile的数量,但同时对tile的大小施加一个上限,以确保它们可以方便地被访问。
  • 最小化存储空间。

常规平铺的缺点:

  • 不考虑特定访问的确切位置,只考虑访问的子区间的形状
    • 唯一可能的优化是选择最小化每次操作访问的图块数量的图块格式。
  • 无法使数组分区适应数组不同部分中数据的分布和属性

下面,我们介绍一个访问模型和一个存储试图克服这些限制的 MDD 年龄方法。

存储方法基于任意平铺,在调整 MDD 对象的存储结构以访问模式方面允许最大的灵活性。

在有关对任意平铺支持中最重要的问题 是 tiling算法的需求给用户足够的机制(mechanism)去利用tiling的灵活性

我们方法的一些关键原则首先被提出在[9]中,描述了多媒体数据存储管理中任意平铺和多维R±树状索引的组合。这些概念随后被扩展到 RasDaMan 系统 [4],除了用于调整存储的应用程序接口外,还开发了完整的存储管理器和平铺策略。

3.Multidimensional Discrete Data

Some terms

定义了底层 MDD 类型系统的主要概念

多维离散数据对象(MDD) m 是一组固定类型 T(base type)的单元格(cell),因此具有固定的单元格大小(cell size)。

每个cell对应一个多元空间域MDD对象的元素。

Definition (spatial) domain of m :

D m D_m Dm 是一个d维离散坐标集( S = S 1 × . . . × S d S = S_1 \times ...\times S_d S=S1×...×Sd)的子区间(Subinterval) ,其中 S i , i = 1 , . . . d S_i,i=1,...d Si,i=1,...d是一个有限全序离散集,并且d是m的维度(dimension)
D m = [ m . l 1 : m . u 1 , . . . , m . l d : m . u d ] , w h e r e   m . l 1 ≤ m . u i , i = 1 , . . d   a n d   l i , u i ∈ S i D_m = [m.l_1:m.u_1,...,m.l_d:m.u_d],\\ where\ m.l_1 \le m.u_i,i=1,..d\ and\ l_i,u_i \in S_i Dm=[m.l1:m.u1,...,m.ld:m.ud],where m.l1m.ui,i=1,..d and li,uiSi

l:low,u:upper

MDD 对象单元格的坐标 ( x 1 , . . . , x d ) (x_1,...,x_d) (x1,...,xd),满足 l i ≤ x i ≤ m i l_i \le x_i \le m_i liximi

A total ordering of the points in the coordinates set is assumed.

定义<关系:
x < y ⇔ ∃ k ∈ 1.. d : x k < y k   a n d   x i = y i , i = 1 , . . . , k − 1 x<y \Leftrightarrow \exist_{k\in 1..d}:x_k<y_k\ and\ x_i=y_i,i=1,...,k - 1 x<yk1..d:xk<yk and xi=yi,i=1,...,k1
一个无界表示为 *,例如(第k维上界无界):
[ m . l 1 : m . u 1 , . . . m . l k : m . u ∗ , . . . , m . l d : m . u d ] , [m.l_1:m.u_1,...m.l_k:m.u_*,...,m.l_d:m.u_d], [m.l1:m.u1,...m.lk:m.u,...,m.ld:m.ud],

Current (spatial) domain

这是包含当前存在于对象中的所有单元格的定义域的最小 d 维区间。

定义域是 MDD 对象的固定属性,而当前域是随时间变化的对象属性。

无限定义域的概念对于定义实例具有不同的、可能变化的当前域的 MDD 类型很重要。 对当前域的支持导致使用的存储空间最小化。

对于 MDD 对象的存储,假定根据坐标的顺序对单元进行隐式排序。 MDD在持久存储介质中的存储需要默认排序,这是线性的。 使用中间存储系统不会改变这种状态,因为即使是数据库或文件系统也只提供阵列的线性存储(作为数据库系统中的 BLOB)。

上面为 MDD 对象制定的空间域定义不仅包括大多数编程语言支持的通常的多维数组。 例如,坐标可以是一年中的日子、月份、公司生产的产品模型或应用领域的其他离散实体。 但是,始终可以建立从这些坐标集到 Z d Z^d Zd 的子区间的映射,并且该映射必须在比存储管理更高的级别上完成。 考虑到这一点,并且为了简化下一节中的解释,下面的讨论将假设映射到作为 Z d Z^d Zd的子区间的坐标集已经在 DBMS 的更高级别完成。 然后可以互换使用术语 MDD 对象或数组。

4. Arbitrary Multidimensional Tiling

多维平铺定义将 MDD 对象划分为多维子数组。 tile 是 MDD 对象的多维子数组,其维度与其所属的 MDD 相同。 一个具有空间域的 MDD 对象的tile:
D m = [ m . l 1 : m . u 1 , . . . , m . l d : m . u d ] , D t = [ t . l 1 : t . u 1 , . . . , t . l d : t . u d ] D_m = [m.l_1:m.u_1,...,m.l_d:m.u_d],\\ D_t =[t.l_1:t.u_1,...,t.l_d:t.u_d] Dm=[m.l1:m.u1,...,m.ld:m.ud],Dt=[t.l1:t.u1,...,t.ld:t.ud]

  • 当一个 tile 插入当前对象,current domain 会更新,会被设置成包括所有域的d维最小子区间
  • tiles 总是有固定边界。
  • for t . l i = t . u i t.l_i = t.u_i t.li=t.ui,可以定义一个tile(作为slice),在i方向的长度为一。

多维数组的特定切片是数组的一组不相交的tiles。 已插入 MDD 对象中的tile不必完全覆盖当前域。 留空的区域被认为被具有默认值的单元格覆盖。 这取决于应用领域的不同使用方式,例如在 OLAP 中,它可能表示缺少维度值的组合。

image-20220303213243139

tiling 分为两种,一种是aligned,一种是nonaligned的。

然而,在我们的例子中,线性平铺可以沿着不同的方向完成,而对于 BLOB,它只能沿着一个方向完成,并且与对象的多维空间域无关(因为线性化阵列的一部分不是矩形的) ,在一般情况下,结果分区不是对象的子数组)。

image-20220303215528208

支持任意平铺的系统能够使用对齐和非对齐平铺方案以及空间的部分覆盖来管理对象。 未对齐的图块可以有不同的大小,因此不可能使所有图块以最佳方式适应系统页面大小。 可能必须在块大小和反映访问模式的配置之间找到折衷方案。 然而,同样在支持对齐平铺的系统中,由于多维性和具有不同尺寸的边界平铺,这样的最佳尺寸是不可能实现的。

5. The Storage Manager for MDD

In RasDaMan, 一个MDD 对象是由一个多维tiles的集合和在tiles上建的索引组成。

每个tile被存储在一个单独的BLOB中;而索引信息存储空间信息。

对于对象的多维子区间的每次访问,索引都会返回与查询区域相交的tile,以供系统进一步处理。

在下一节中,我们会讨论平铺策略的选择受到不同应用领域的数据访问需求的启发。

为实现 data independence, 物理存储层对用户是透明的。

5.1 Access Patterns

对 ADD 对象访问类型的详细研究导致将单个区域访问细分为几种情况:

  • a.访问所有对象
  • b.访问与该对象有相同维度的多维子区域
  • c.访问由沿一个或多个方向选择线性范围产生的多维子区域
  • d.获取一个部分(section),维度更少的MDD

(a)->aligned tiling(single tile 是一种特例)是最好的策略。

(b)->nonaligned tiling scheme

结合方案(a),根据不同类型访问的相对频率,背景(无直接访问区域)regularly tiled(平均划分)的混合解决方案可能是最佳解决方案。

© 经常出现在MOLAP应用中。

维度元素的父级(层次结构的第一级,在最详细的一个之后)将是平铺的典型候选者,因为必须同时访问对应于每个父级的单元格以计算子聚合。

在这个数据立方体中,通过处理对应于沿维度显示的维度元素的父级的单元格来执行子聚合,例如,产品和区域的类型。 如果平铺反映了层次结构,则计算子聚合的各个访问同时对同一平铺的单元格进行操作。

image-20220304094137045

此类访问的最佳平铺,保证每次计算读取的最小数据量,将是由与所示轴正交的超平面定义的平铺。 由于细分是不规则的(例如,某些类型的产品比其他产品具有更多的模型),因此规则的平铺不足以支持这种类型的细分。

可以预期,这样的空间细分也很适合此类对象中类型 (b) 的访问,因为由于访问语义,这些操作是针对与空间细分定义的分区相对应的子区域进行的。 这种空间的细分将导致对齐或部分对齐的平铺。

(d)->有优先的访问方向,最有效的tiling是对齐的平铺,其中平铺沿着这些方向延伸。

5.2 Tiling Strategies

对访问类型和相应空间细分的研究促使我们向最终用户展示平铺策略。 被认为与平铺相关的策略反映了上一节中讨论的不同访问类型的细分类型:根据指定的平铺配置对齐平铺通过沿域的轴定义分区进行平铺,以及根据感兴趣的区域进行平铺。 此外,如果没有为 MDD 对象指定切片策略(默认切片是对齐的),则会执行默认切片,并且基于访问统计的自动切片会为对象导出最佳切片。

Aligned Tiling

如果用户指定的图块配置对应的图块大小不同于 MaxTileSize,则图块将被平均拉伸一个因子f:
f = M a x T i l e S i z e / ( C e l l S i z e × r 1 . . . × r d ) d f = \sqrt[d]{MaxTileSize/(CellSize \times r_1 ... \times r_d )} f=dMaxTileSize/(CellSize×r1...×rd)
该范围的某些元素可以是“无限的”(用“*”表示),这意味着应该沿该方向最大化tile的长度。

该范围的一个元素, r d j = ∗ r_{d_j} = * rdj=,被用来声明一个优先的扫描方向。

就是说可以定义一个优先顺序,有k个方向 r d j = ∗ r_{d_j} = * rdj=, 1 ≤ d 1 < . . . < d k ≤ d , j = 1 , . . . , k 1\le d_1<...<d_k\le d ,j = 1,...,k 1d1<...<dkd,j=1,...,k,那么tile的长度尽可能先满足方向 d k d_k dk,之后满足 d k − 1 d_{k-1} dk1,直到完成 d 1 d_1 d1 或 达到最大tile的size。

image-20220304163740604

Figure 4实际上就是 [ ∗ , 1 , ∗ ] [*,1,*] [,1,] ,分别对应x,y,z坐标轴(优先满足x和z坐标扫描,y坐标长度取1)

Partitioning the Dimensions

directional tiling:输入参数是空间的某些或所有维度的一组分区:
{ ( i , p i , 1 , . . . , p i , n i ) } , i = 1 , . . . , d , n i ≥ 1 \{(i,p_{i,1},...,p_{i,{n_i}})\},i=1,...,d,n_i\ge1 {(i,pi,1,...,pi,ni)},i=1,...,d,ni1

  • 如果 n i = 1 n_i = 1 ni=1,也就是说在该方向上不进行分区。
分片的步骤
  1. Tiles 首先按照超平面 x i = p i , j , j = 1 , . . . , n i x_i = p_{i,j},j=1,...,n_i xi=pi,j,j=1,...,ni进行划分
  2. 如果超出了 MaxTileSize则将两个超平面内的cell继续细分
    • 超出 , nonaligned
    • 从未超出,aligned
  3. 继续细分采取 aligned tiling algorithm

作为定向平铺输入的轴分区定义了一组 MDD 的等向多维分区。

Area of Interest

“感兴趣区域”是MDD对象中频繁访问到的子数组。

  • 这个可以作为tiling的提示,但是独立于tiles。

  • 一个“感兴趣区域”可以包含于一个tile,也可以包含一组相邻的tiles

image-20220304171158767

Statistic Tiling

通过对MDD访问的序列自动计算感兴趣的区域。(聚类)

提出两个阈值:FrequencyThreshold,DistanceThreshold

  • 只有距离在距离阈值以内才能合并两个区域

  • 只有出现次数大于频率阈值才能当做同一类感兴趣区域

Performance Comparison

实验组为上述提到的tiling strategy;对照组为aligned tiling strategy(在相关系统中使用的策略)

  • Directional tiling

image-20220304173151443

  • areas of interest

image-20220304173401979

同一类感兴趣区域

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 多维缩放(Multidimensional Scaling)是一种数据分析方法,用于将高维数据转换为低维空间中的点,以便更好地理解和可视化数据之间的相似性和差异性。它可以用于各种领域,如心理学、社会学、市场研究和生物学等。多维缩放可以通过计算数据点之间的距离或相似性矩阵来实现。 ### 回答2: 多维缩放法(multidimensional scaling,MDS),是一种常用的数据分析技术,用于在低维空间中表示高维度数据,通常用于探索几何学特征和比较数据之间的相似性。该技术可将复杂的关系和结构可视化为二维或三维图形,从而使我们更容易理解和解释数据。 多维缩放法主要用于探究数据集内不同组或对象之间的相似性和差异性,基于它们之间的距离或相似性结果。可分为两种类型:度量MDS和非度量MDS。度量MDS假定距离是可度量的,且高维数据的距离可以在低维空间中重现。非度量MDS假定距离是无序的,且无法准确地反映高维数据之间的距离。 要使用多维缩放法,首先需要获得有关对象之间距离或相似性的数据。比如当人们在做一个品牌调查时,想要了解不同品牌之间的相似性和差异性,就需要先收集关于消费者对每个品牌的与众不同程度的概率数据,然后利用多维缩放法,将数据转换为映射低维空间中的点,可以发现在低维空间中,与众不同程度较高的品牌往往会聚集在一起,这样的模型更易于理解和分析。 多维缩放法还有其他重要应用案例。在生物学领域,它可以用于研究生物物种之间的相似性和演化类别的结构。在心理学领域,它可以用于研究人们对不同对象或概念之间的感知和判别,以及评估人类语言语调的范围和结构。 总之,多维缩放法是一种简单而强大的分析工具,可以帮助探索和理解不同数据之间的相似性和差异性,找出数据点之间的潜在关系和结构,为后续研究和应用提供宝贵的指导。 ### 回答3: 多维缩放(又称为MDS)是一种统计学方法,用于评估数据集中各项之间的距离或相似度。MDS可以将数据集中的对象(如文本文档、图像或音频片段)映射到二维或三维空间,从而创建一个可视化表示。MDS的目的是通过将数据点映射到较低维度空间中的布局来展示数据集中对象的相似性和差异性,以便进一步分析。 最常见的MDS方法是基于距离矩阵的。在这种方法中,每对对象之间的距离被计算并表示为一个矩阵。MDS将该距离矩阵转换为低维度空间中的点,并通过最小化在低维度空间中的点之间的距离与原始距离矩阵之间的差异来找到合适的布局。 MDS在许多领域都得到了广泛的应用。在市场研究中,MDS可用于分析消费者对产品的偏好,而在物理空间中,MDS可用于研究分子之间的相似性。此外,MDS还被广泛用于可视化大型数据集中的关系和模式,包括社交网络分析、文本分析和数据挖掘。通过可视化数据集中的对象之间的相似性和差异性,MDS使得分析人员能够更好地理解复杂的数据结构和关系。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值