在大数据应用开发的流程中我们将原始大数据经过清洗、抽取、转换之后,需要将转换后的大数据存入大数据管理系统中。为了能够高效地查询和分析转换之后的大数据,应用开发人员需要设计大数据的物理存储结构。大数据库设计与传统的数据库设计步骤相同,大数据库也采用自顶向下、逐步求精的设计原则:
一、顶层设计
大数据管理系统支持多种大数据物理存储结构,需要根据应用需求,为转换之后的大数据选择相应的物理存储结构。选择物理存储结构时需要考虑的因素如下:
(一)数据存储格式∶大数据管理系统通常支持多种文件格式和压缩格式
(二)数据模式设计∶多数大数据管理系统,如Hadoop生态系统具有无模式的特性,在数据存储进分布式系统时,仍然要考虑数据结构,目录结构以及数据处理和分析导出的结果。
(三)元数据管理∶在数据管理系统中,元数据和数据一样重要。
二、数据存储格式
在分布式系统上搭建架构时,最基本的考量是数据如何存储。而在分布式系统中没有标准的数据存储格式,但就像使用标准文件系统一样,分布式系统允许数据以任何格式存储,例如文本、二进制或图像等其他的格式。分布式系统还内置了对数据存储和处理的优化设置,可以选择多种数据存储形式,优化设置不仅可用于原始数据的获取,还可以应用在处理数据时产生的中间值,以及数据处理后的结果数据,主要注意:文件格式、数据压缩。
三、数据模式设计
与统的关系数据库系统采用的写时模式(schema-on-write)即当数据写入大数据管理系统时检查数据模式不同,大数据管理系统普遍采用读时模式(schema-on-read),即数据写入时不进行验证而在数据读取时检查数据模式,数据可以通过许多方法简单地导入大数据管理系统中。由于大数据管理系统经常存储非结构数据和半结构数据,所以普遍以数据文件为核心组织数据。
四、元数据管理
大数据管理系统中常见的元数据类型:
(一)和逻辑数据集相关的元数据∶这类元数据记录数据集存储的位置信息、和数据集关联的模式信息、数据集的分区和排序信息,还有数据集的格式。它通常存储在单独的数据库中。
(二)和分布式文件系统有关的元数据∶这类元数据记录文件和多种数据节点的权限和拥有权,它由分布式系统主节点存储和管理。
(三)和分布式存储系统相关的元数据∶这类元数据记录列表的表名、数据属性等。它通常由分布式存储系统存储和管理。
(四)和数据获取、转换有关的元数据∶这类元数据记录数据使用者产生的数据集、数据集的来源、产生数据集的时间、数据集的规模等信息。
(五)和数据集统计有关的元数据∶这类元数据记录数据集的行数量、列的不同属性值数量、数据分布的直方图、数据最大最小值。这类元数据可以充分加快数据分析性能,优化执行程序。
五、元数据存储
在前面分布式文件系统设计中我们已经讨论过将元数据嵌入到文件路径上,方便管理和数据一致性。对元数据进行存储、维护和管理,可以选择使用类似 Kite的方式存储元数据,Kite 支持提供多份元数据,可以将元数据存储到其他系统中,轻松地将元数据从一个源转换到另一个源。
数据建模在任何系统中都是一项富有挑战性的任务,而在分布式系统中,由于存在着大量可选方式,其挑战性更大。数据处理可选的方式越多,分布式系统灵活性越强。选择合适的数据模型将会给数据处理带来很大改善。例如减少存储空间,改善处理时间,使得权限管理更为便利,提供更简单的元数据管理。