结构化数据加载性能

来源:互联网 发布:剑三捏脸数据截图 编辑:程序博客网 时间:2024/06/08 04:51

影响结构化数据加载的性能,主要包括三个方面:

      其一,数据结构化的开销;

      其二,额外操作(日志、索引等)引入的开销;

      其三,磁盘I/O 的数据量。

       首先,数据结构化对于数据加载性能的影响,主要是体现在写模式(Write Schema)和读模式(Read Schema)方式的差异。写模式是传统数据库所采用的方式,在数据加载阶段将文本方式存储的数据转换成具有严格模式(Schema)定义的结构化数据进行存储。而读模式则是MapReduce 处理文本方式存储的数据所采用的方式:数据并未经过加载阶段,而是以文本文件的方式直接上传到HDFS;MapReduce 在分析处理这些数据时,需要根据用户提供的模式定义对文本数据进行解析。写模式和读模式的最大区别在于数据结构化是发生在数据加载阶段还是查询阶段。在写模式下,数据通常在加载阶段从文本数据解析成指定数据类型的结构化数据,然后将该结构化数据写到内存中的指定数据页(Page),待该数据页写满之后,再写回文件中。相对于读模式,写模式在数据加载阶段引入额外的开销,但是却提高了后续查询访问的性能。
      其次,额外操作引入的开销。这些额外的开销主要包括严格一致性引入的事务操作开销和创建索引这类辅助结构的开销等等。
     最后,数据加载的主要性能瓶颈在于磁盘I/O。尤其在采用多复本存储容错机制的
HDFS 上,多复本同步写存在较大的磁盘I/O 代价,影响数据加载的性能。
原创粉丝点击