OneProxy :: Spark + OneProxy + OneSQL组合解决OLTP和OLAP综合需求

Spark是当下炙手可热的大数据计算框架,并且具备丰富的ML支持;而OneProxy是一款面向OLTP的分布式中间件,可以轻松地将多台MySQL/OneSQL机器组成一个数据库集群,以支持高并发量的业务和存放大量的业务数据。看起来Spark和OneProxy/OneSQL两者毫无关系,事实上Spark在做分析时,都是从外部获取数据,从Hadoop/HBase中获取数据和从MySQL/OneSQL中获取数据本质上没有区别。

Spark对接单个MySQL实例并没有多少意义,但对接OneProxy就有不同的意义了,相当于是对接了分布式的数据存贮层,解决了数据层的访问速度问题,使得在同一份数据上既可以做OLTP业务,也可以做OLAP业务,是一个极具实用性的数据层解决方案。整个结构如下图所示:

spark-sql-oneproxy-arch

下载Spark解压后(这里先用单机做演示),将MySQL JDBC驱动拷到jars目录下,接下来起动spark-sql就可以做测试了,如下图所示:

spark-sql-oneproxy-sample

从第一次测试来看,Spark的稳定性需要观测,Spark-SQL支持的SQL需要验证,MySQL的JDBC需要做一些改进以支持连接多个OneProxy(好象Load Balance功能已具备),Spark-SQL里的分区键类型好象只能是数字类型的,没有OneProxy里那样丰富,也将是一个重要的问题,看来得投入人研究一下Spark的源代码了!

不管如何第一步算是走通了,Spark + OneProxy + OneSQL可以成为一个集OLTP和OLAP于一身的数据层解决方案,相当于对目前在用OneProxy做大数据解决方案的用户做了一个升级的大数据方案。