数据管理包括对数据进行有效的收集、存储、处理和应用的过程。在面向复杂数据的数据可视化过程中,还涉及面向应用的数据管理,它的管理对象是数据生命周期所涉及的应用过程中描述构成应用系统构件属性的元数据。
通常数据按照一定的组织形式和规则进行存储和处理,以实现有效的数据管理。从逻辑上看,数据组织具有一个层层相连的层次体系:位、字符、数据元、记录、文件、数据库。其中,记录是逻辑上相关的数据元组合;文件是逻辑上相关的记录集合;数据库是一种作为计算机系统资源共享的数据集合。
6.5.1数据清洗与精简
由于数据源的多样性,数据集由于干扰、冗余和一致性因素的影响具有不同的质量。从需求的角度,一些数据分析工具和应用对数据质量有着严格的要求。因此在大数据系统中需要数据预处理技术提高数据的质量。
(1)数据清洗
对于海量数据来说,未经处理的原始数据中包含大量的无效数据,这些数据在到达存储过程之前就应该被过滤掉。在原始数据中,常见的数据质量问题包括:噪声和离群值、数值缺失、数值重复等。解决这些问题的方法称为数据清洗。
①噪声指对真实数据的修改;离群值指与大多数数据偏离较大的数据。
②数值缺失的主要原因包括:信息未被记录;某些属性不适用于所有实例。处理数据缺失的方法有:删除数据对象;插值计算缺失值;在分析时忽略缺失值;用概率模型估算缺失值等。非结构化数据通常存在低质量数据项,构成了数据清洗和数据可视化的新挑战。
③数值重复的主要来源是异构数据源的合并,可采用数据清洗方法消除。
处理数据丢失和重复记录仅是数据清洗的一部分。其他操作还包括:运用汇总统计删除、分辨或者修订错误或不精确的数据;调整数据格式和测量单位;数据标准化与归一化等。另一方面,实际采集的数据经常包含错误和自相矛盾的内容,而且实验、模拟和信息分析过程不可避免地存在误差,从而对分析结果产生很大的影响。通常这类问题可以归结为不确定性。不确定性有两方面内涵,包括各数据点自身存在的不确定性,以及数据点属性值的不确定性。前者可用概率描述,后者有多种描述方式,如描述属性值的概率密度函数,以方差为代表的统计值等。由于不确定性数据与确定性数据存在显著差异,所以针对不确定性数据需要采取特殊的数据建模、分析和可视化方法。表6-1中列出了数据清洗最终需要达到的目标,包括有效性、准确性、可信性、一致性、完整性和时效性六个方面。在数据清洗步骤完成后,该表可作为数据清洗效果的检查表,对已进行的清洗过程进行评估。
表6-1数据清洗效果检查表
目标 | 含义 |
有效性 | 数据是否真实合理 |
准确性 | 数据是否精确,有无误差 |
可信性 | 数据来源和收集方式是否可信 |
一致性 | 数据(格式、单位等)是否一致 |
完整性 | 数据是否有缺失 |
时效性 | 数据适用范围(相对分析任务) |
可视化作为一种有效的展示手段和交互手段,在数据清洗中发挥了巨大的作用。有人提出33种脏数据类型,并且强调其中的25种在清理时需要人的交互。这意味着多种脏数据在清理时可使用交互式可视化方法来提高数据清理效率。
目前一些商业工具提供了交互式可视化界面,来辅助用户完成数据清洗工作。OpenRefine(前身为GoogleRefine)使用交互式编辑和简单脚本方式来完成数据编辑、转换和问题值处理等功能。Trifacta公司的Wrangler工具通过展示数据的统计图表,来支持用户执行数据初探操作,渐进式地发现数据中包含的问题和缺陷,并提供了一系列数据编辑工具来进行清洗操作。
(2)数据精简
由高维性带来的维度灾难、数据的稀疏性和特征的多尺度性是大数据时代中数据所特有的性质。直接对海量高维的数据集进行可视化通常会产生杂乱无章的结果,这种现象被称为视觉混乱。为了能够在有限的显示空间内表达比显示空间尺寸大得多的数据,我们需要进行数据精简。在数据存储、分析层面进行的数据精简能降低数据复杂度,减少数据点数目并同时保留数据中的内涵特征,从而减少查询和处理时的资源开销,提高查询的响应性能。经典的数据精简包括前面章节中描述的方法,如统计分析、采样、直方图、聚类和降维,也可采用各类数据特征抽取方法,如奇异值分解、局部微分算子、离散小波变换等。在数据仓库或联机分析处理系统应用中,数据精简可用于提升大规模数据查询和管理的交互性。由于分析和推理只需要定性的结果,所以可采用近似解提高针对大数据的精简效率。
面向大数据的交互可视化对数据组织和管理提出了更高的要求。实施计算机图形学发展的一些理念经常被应用在交互式数据可视化应用上,如可伸缩的数据结构和算法、层次化数据管理和多尺度表达等。在选择恰当的数据精简方法时,使用者必须对时机、对象、使用策略和视觉质量评估等因素进行综合考察,这些考察项目不仅仅针对数据管理、数据可视化等学科,还往往涉及认知心理学、用户测试、视觉设计等相关学科。以是否使用可视化为标准,数据精简方法可分为两类。
①使用质量指标优化非视觉因素,如时间、空间等。
②使用质量指标优化数据可视化,称为可视数据精简。
可视数据精简需要自动分析数据以便选择和衡量数据的不同特征,如关联性、布局和密度。这些量度指导和评估数据精简的过程,向用户呈现优化的可视化结果。常用的可视化质量指标包括尺寸、视觉有效性和特征保留度。尺寸是可量化的量度,如数据点的数量,构成了其他计算的基础。视觉有效性用于衡量图像退化(如冲突、模糊)或可视布局的美学愉悦程度。常见方法有数据密度和数据油墨比等特征(见图6-2)。特征保留度是评估可视化质量的核心,它衡量可视化结果在数据、可视化和认知方面正确展现数据特性的程度。
图6-2数据油墨比是EdwardTufte提出的一个数据可视化质量评估标准,它被定义为用于展现数据的像素数目与全部油墨像素数目的比值。左图显示的数据油墨比远低于右图
6.5.2数据整合与集成
对于来自不同数据源的数据来说,它们具有高度异构的特点:不同的数据模型、不同的数据类型、不同的命名方法、不同的数据单元等,例如来自不同国家气象检测站的气象数据,或不同企业的客户数据等。当需要对这些异构数据的集合进行处理时,首先需要有效的数据集成方法对这些数据进行整合。数据整合指将不同数据源的数据进行采集、清洗、精简和转换后统一融合在一个数据集合中,并提供统一数据视图的数据集成方式。
一般来说,数据整合的常用方式有以下两种。
①物化式(见图6-3左图):查询之前,涉及的数据块被实际交换和存储到同一物理位置(如数据仓库等)。物化式数据整合需要对数据进行物理移动,即从源数据库移动到其他位置。
②虚拟式(见图6-3右图):数据并没有从数据源中移出,而是在不同的数据源之上增加转换策略,并构建一个虚拟层,以提供统一的数据访问接口。虚拟式数据整合通常使用中间件技术,在中间件提供的虚拟数据层之上定义数据映射关系。同时,虚拟层还负责将不同数据源的数据在语义上进行融合,即在查询时做到语义一致。例如,不同公司的销售数据中“利润”的表达各有不同,在虚拟层中需要提供处理机制,将不同的“利润”数据转化为同一种含义,供用户进行查询使用。
图6-3左:物化式整合;右:虚拟式整合
数据整合的需求来源于多个方面,从数据获取的角度看,数据获取的不精确、大范围的不协调数据采集策略、商业竞争和存储空间限制等都是进行多数据源数据整合的原因。在实际的数据可视化应用中,来自不同数据源的数据可能具有不同的质量,这也是面向不同质量数据的整合方法的动机。交互分析和可视数据要求数据整合采用集中式、虚拟式的模式。基本解决方案是采用工具或中间件进行数据源包装和数据库联合,提供通用模型用于交换异构数据和实现物理层透明,同时处理异构性,保存数据源的自主性及保证可扩展性。更好的方式是基于计算查询理念的语义整合,利用应用领域的概念视图而不是数据源的普通描述以提供概念数据的透明性。
6.5.3数据库
在当今以数据为基础的服务中,数据库作为信息存储应用已经成为其基础部分。对于能够获取到的信息,需要一种强大的、灵活的管理系统和理论有效地组织、存储和管理大量的数据,以进一步发挥这些数据的价值。在这样的背景下,数据库和数据库管理系统应运而生,担当起数据组织和存储的角色。数据库是数据的集合,并且同时包含对数据的相关组织和操作。数据库管理系统是用来帮助维护大量数据集合的软件系统,用来满足对数据库进行存储、管理、维护以及提供查询、分析等服务的需要。
(1)关系型数据库
关系型数据库(RelationalDatabase,RDBMS)是一种基于关系模型的数据库管理系统。关系型数据库在结构上将数据组织成表,表与表之间通过关系(关联)相互关联。关系型数据库的特点包括:数据完整性(实体完整性、参照完整性和用户定义的完整性)、ACID事务特性(原子性、一致性、隔离性和持久性)、多级索引和查询优化等。
关系型数据库通常采用SQL(StructuredQueryLanguage)作为其标准查询语言,使得操作和查询数据更加方便和直观。此外,关系型数据库还提供了丰富的数据类型和数据完整性约束,例如主键、外键、索引等,以确保数据的完整性和一致性。
关系型数据库的一个典型例子是MySQL。MySQL是一种流行的开源关系型数据库管理系统,广泛应用于各种业务场景。它支持大量的并发用户连接,提供了灵活的数据类型和索引支持,并且具有强大的事务处理能力。MySQL还提供了各种高级功能,如复制、分区、集群等,以应对不同规模和不同需求的数据处理。
(2)非关系型数据库
非关系型数据库(Non-RelationalDatabase,NoSQL)是相对于关系型数据库的一种新型数据库管理系统。非关系型数据库在结构上更加灵活,不需要遵循固定的表结构,可以存储半结构化或非结构化的数据。常见的非关系型数据库包括键值存储、列存储、文档存储等。
非关系型数据库通常采用键值对的方式进行数据的存储和查询,具有高性能、高可用性和高可扩展性等特点。非关系型数据库通常采用分布式架构,可以存储海量数据并支持水平扩展。此外,非关系型数据库还具有简单的数据模型和灵活的数据格式,可以轻松应对不同类型的数据处理需求。
时至今日,形形色色的NoSQL数据库系统已能够提供多种不同的服务,包括文档存储(如CouchDB,MongoDB)、面向网络的存储(如Neo4j)、键-值存储(如Redis,Memcached)和混合存储等。例如MongoDB是一种流行的开源文档存储数据库,适用于高并发、海量数据的应用场景。MongoDB将数据存储在类似JSON的文档中,支持丰富的数据类型和灵活的查询语法。它还提供了丰富的索引支持和分片功能,以应对大规模数据的处理需求。MongoDB还提供了自动分片、复制和故障恢复等功能,以确保系统的可用性和可扩展性。
现有一些数据可视化应用开始直接针对关系型数据库进行可视化,并且拥有简单的统计、分析功能。例如,基于表格数据的可视分析系统方案将表格数据映射为以节点-连接布局表示的网络结构(见图6-4),并支持表格上的各关系代数运算,将关系代数运算结果以可视化方式展现出来。在NoSQL数据库方面,尚无专门提供给可视化应用的NoSQL数据库产品,在数据可视化方面也暂时没有针对NoSQL进行可视化的方案。
图6-4美国自然科学基金数据库可视化效果(部分)。其中黄色节点代表基金项目,红色节点代表科研人员,灰色节点代表研究机构。该图结构展示了“研究人员所属机构”和“项目参与人员”两张表结构进行合并后的结果
6.5.4数据仓库
数据仓库指“面向主题的、集成的、与时间相关的、主要用于存储的数据集合,支持管理部门的决策过程”,其目的是构建面向分析的集成化数据环境,为分析人员提供决策支持。区别于其他类型的数据存储系统,数据仓库通常有特定的应用方向,并且能够集成多个异构数据源的数据。同时,数据仓库中的数据还具有时变性、非易失性等特点。数据仓库中的数据来源于外部,开放给外部应用,其基本架构是数据流入/流出的过程,该过程可以分为三层——源数据、数据仓库和数据应用。其流水线简称为ETL(抽取Extract、转化Transform、装载Load,见图6-5)。
图6-5ETL模型。
①抽取阶段从一个或多个数据源中抽取原始数据。
②转化阶段主要进行数据变换操作,主要有清理、重构、标准化等。
③装载阶段将转化过的数据按一定的存储格式进行存储。
同时,在ETL过程中的每个组件都要求可重用,以持续地进行数据获取、变换和存储工作,并且能够支持并行操作,提高处理效率。数据仓库作为利于使用者理解和分析的综合数据资源库,具有一些不同于一般数据库的特点:
④数据仓库通常围绕某个应用目标、应用领域或使用者所感兴趣的内容制定,包含了一些相关的、由外部产生的数据。
⑤数据仓库可以不断更新和增长,这意味着数据可以被源源不断地积累起来,从而允许用户分析数据的趋势变化、模式和相互关系。
⑥数据仓库为复杂的决策支持查询进行了大量优化。数据仓库的不同目标和数据模型也同时引发了不同于传统数据库的技术、方法论和方法的各种研究。
⑦对于结构化或非结构化数据,数据仓库都能有效地进行处理,并且还能够提供两种数据的整合功能。

