XSQL是一款低门槛、更稳定的跨数据源查询引擎。1)XSQL提供了使用标准SQL读写NoSQL数据库的解决方案,能够大幅降低学习曲线,节省人力成本。 2)XSQL通过对SQL的优化以及一系列监控插件,为用户任务的稳定运行保驾护航。
https://qihoo360.github.io/XSQL/
- 内置8种数据源,包括:Hive、Mysql、EleasticSearch、Mongo、Kafka、Hbase、Redis、Druid等。
- XSQL采用数据源(DataSource)、数据库(Database)、数据表(Table)的三层元信息,为异构数据源提供了统一视图,进而实现了跨数据源的数据关联
- SQL Everything,将程序与数据源具体版本解耦,程序迁移能力得到加强
- 对DDL、DML、可下推查询,延迟与Yarn的交互及资源申请,进而提升效率并节省资源。
- 相比很多开源分布式查询引擎,XSQL替换了Spark SQL,因而只需要一次SQL解析,避免多次解析带来的时延。
- XSQL允许用户将聚合、过滤、投影等操作下推至数据源计算引擎,相比DataSet API更容易实现毫秒级响应。
- XSQL借鉴了业内优秀的开源项目,放弃元数据的中心化,因此避免了数据同步、数据不一致,数据延迟等不利因素。XSQL也因此在部署上更加轻量、简便。
- XSQL对元数据的缓存有两种级别,既能减少对底层数据源的压力,也提升了XSQL的执行效率。
- XSQL可以按照用户需要,设置元数据白名单来避免缓存多余的元信息,进一步提升执行效率。
- 可适配到Spark 2.x任意版本,解压即可运行,不需要引入额外依赖。且与原生SparkSQL隔离运行,不影响现有程序运行
- jdk 1.8+
-
源码下载
git clone https://github.com/Qihoo360/XSQL
-
执行编译命令
如果你已经有现成的Spark,可以将XSQL编译为Spark插件:
XSQL/build-plugin.sh
编译成功后源码根目录将出现xsql-0.6.0-plugin-spark-2.4.3.tgz
如果你没有现成的Spark,那么你可以编译完整版的XSQL(内置Spark):
XSQL/build.sh
编译成功后源码根目录将出现xsql-0.6.0-bin-spark-2.4.3.tgz
-
jdk 1.8+
-
hadoop 2.7.2+
-
spark 2.4.x
-
解压到客户端
完整版解压:
tar xvf xsql-0.6.0-bin-spark-2.4.3.tgz -C "软件目录"
插件版解压:
tar xvf xsql-0.6.0-plugin-spark-2.4.3.tgz -C "已存在的SPARK_HOME"
-
配置数据源
这里给出一个简单的例子:
spark.xsql.datasources default spark.xsql.default.database real_database spark.xsql.datasource.default.type mysql spark.xsql.datasource.default.url jdbc:mysql://127.0.0.1:2336 spark.xsql.datasource.default.user real_username spark.xsql.datasource.default.password real_password spark.xsql.datasource.default.version 5.6.19
-
从命令行工具开始
$SPARK_HOME/bin/spark-xsql spark-xsql> show datasources;
-
从Scala API开始
var spark = SparkSession .builder() .enableXSQLSupport() .getOrCreate() spark.sql("show datasources")
Mail: XSQL开发者组([email protected])、XSQL用户组([email protected])
QQ群: XSQL用户群(838910008)