论文导读:Dirty Data Management in Cloud Database

[WangLWG11]Hongzhi Wang, Jianzhong Li, Jinbao Wang, Hong Gao: Dirty Data Management in Cloud Database. Grid and Cloud Database Management 2011:133-150

温馨提示:“论文导读”旨在推荐他人发表的本领域相关论文。本论文摘要由厦门大学计算机系林子雨老师(http://www.cs.xmu.edu.cn/linziyu)翻译,如果您对该论文细节感兴趣,可以阅读英文原文(全文PDF版权归出版商所有,因此需要到出版商网站下载该论文PDF)。

摘要数据质量问题是由脏数据引起的,大规模数据集更可能包含脏数据。作为大规模数据的重要管理平台,云数据库中脏数据管理尤为重要。由于传统的基于数据清理的方法,不能完全清理脏数据,而且对于大规模数据集而言,代价很高。本文提出了一种新的大规模数据管理方法,来获得具有质量保证的查询结果。为了达到这个目标,本文提出了一个针对云数据库的脏数据库存储结构,以及一个针对查询处理的多层索引结构。一个直接使用脏数据的查询可以充分利用这个索引,选择云中的那些候选节点来高效地运行查询。

部分正文内容翻译

数据质量在现代信息系统中,扮演了重要的角色。一个由SAS和Merrill Lynch[1]支助的报告显示,由于数据质量问题,美国的企业损失超过6000亿美元。对于许多企业而言,收集数据和清理数据的开销,占了信息集成开销的50-80%。

数据质量问题是由脏数据引起的,主要是指不一致、不准确、错误、冗余和过期数据。脏数据在信息系统中广泛存在。数据处理的所有步骤都可能会导致生成脏数据。例如,在数据收集环节,收集设备的噪声和用户输入错误,都可能带来脏数据。在数据集成环节,不一致性是由模式的异构性和数据源的完整性约束导致的。在信息传输步骤,网络的不可靠性可能导致不正确的数据。

在大规模数据集里,更可能存在脏数据。有两个原因,第一个原因是,维护大规模数据的困难性以及大规模存储设备的错误,会导致数据中发生更多的错误。第二个原因是,数据的不一致性的可能性更大。

脏数据会严重影响数据的可用性。例如,就像文献[2]阐述的那样,股票数据库中大约存在65%的不准确数据,并且导致10%的利润损失。在财务软件中存在的不一致性,将会导致财务的混乱,在数据汇总时,也无法得到正确的结果。因此,很有必要对脏数据进行管理,来降低它的危害,从而有效充分地利用数据。

脏数据管理的一个传统的方法是,数据清理[3]。对于大规模数据集,在许多情形下,数据清理都是不合适的。一方面,数据清理操作的代价通常很高。当大规模数据频繁更新时,系统的高效性,会受到数据清理操作的严重影响。另一方面,数据清理技术,不会完全清理脏数据,脏数据的清理工作会导致信息的丢失。因此,需要不涉及数据清理过程的脏数据管理策略。这类技术直接在脏数据上进行查询,并且可以获得高质量的查询结果。脏数据上的查询处理技术包括文献[4-6]。但是,它们都没有考虑在大规模数据集上的脏数据。

构建云数据库是管理大规模数据集的有效方式。在云数据库中,有三类计算机节点:master、router和slave。Master节点负责对slave节点进行管理。Router节点存储云数据库的索引。Slave节点存储数据,并且处理查询。当一个查询到达时,首先被发送给router,router搜索索引来找到那些包含查询结果的slave集合。Slave节点返回局部结果,这些局部结果会被合并得到最终结果。

图7.1是一个云数据库实例,包含一个mater节点,两个router节点,六个slave节点。

当前的云环境中的数据管理,都采用一个假设,即数据是干净的。这些系统根本就没有考虑脏数据。本文将介绍高效和有效的云数据库脏数据管理策略。脏数据被分布到云中,可以支持高效的查询。我们构建了一个3层索引,可以为一个查询快速定位相关的数据节点。为了实现高效的基于索引的查询处理,我们设计了一个数据分区策略。在索引的基础上,我们提出了一个查询处理策略,来获得具有质量保证的查询结果。