技术开发 频道

MySQL的大数据改进:支持NoSQL和Hadoop

  二、MySQL针对大数据的改进

  1、NoSQL功能

  在甲骨文最新发布的MySQL 5.6正式版中,增加了一些NoSQL特性,即通过Memcached API对InnoDB的灵活NoSQL访问,提供了InnoDB数据的简单、关键值查找。从此可以看出NoSQL对关系数据库的确产生了巨大的影响,MySQL的这一举动可以让开发人员更加方便的使用NoSQL和关系数据库。

  但有很多技术人员认为MySQL的这一功能略显鸡肋,并不能真正发挥NoSQL的作用。以扩展性为例,NoSQL的一个主要优势就是横向扩展(Scale Out)。例如Cassandra能够简单透明地在多个机器上进行扩展,它们可以是廉价的硬件组成的集群,而无需购买昂贵的服务器或者SAN存储。这一点MySQL 5.6是做不到的。

  2、支持Hadoop

  MySQL团队最新推出了MySQL Applier for Hadoop(以下简称Hadoop Applier),希望解决从非MySQL服务器复制数据的问题。

  例如,复制事件中的从服务器可能是一个数据仓库系统,如Apache Hive,它使用Hadoop分布式文件系统(HDFS)作为数据存储区。如果你有一个与HDFS相关的Hive元存储,Hadoop Applier就可以实时填充Hive数据表。数据是从MySQL中以文本文件形式导出到HDFS,然后再填充到Hive。

  操作很简单,只需在Hive运行HiveQL语句'CREATE TABLE',定义表的结构与MySQL相似,然后运行Hadoop Applier即可开始实时复制数据。

  在Hadoop Applier之前,还没有任何工具可以执行实时传输。之前的解决方案是通过Apache Sqoop导出数据到HDFS,尽管可以批量传输,但是需要经常将结果重复导入以保持数据更新。在进行大量数据传输时,其他查询会变得很慢。且在数据库较大的情况下,如果只进行了一点更改,Sqoop可能也需要较长时间来加载。

  而Hadoop Applier则会读取二进制日志,只应用MySQL服务器上发生的事件,并插入数据,不需要批量传输,操作更快,因此并不影响其他查询的执行速度。

  小结

  MySQL是业界最优秀的一款开源关系型数据库软件,拥有大批追随者,他们不仅使用MySQL,也为MySQL社区做贡献,形成一个良好的生态系统。对于MySQL而言,对NoSQL和Hadoop的支持只能是对大数据时代的一种迎合,对于技术人员的作用不置可否。

MySQL针对大数据的改进

 

0
相关文章