IQL (项目地址:https://github.com/teeyog/IQL)
基于SparkSQL实现了一套即席查询服务,具有如下特性:
- 优雅的交互方式,支持多种datasource/sink,多数据源混算
- spark常驻服务,基于zookeeper的引擎自动发现
- 负载均衡,多个引擎随机执行
- 多session模式实现并行查询
- 采用spark的FAIR调度,避免资源被大任务独占
- 基于spark的动态资源分配,在无任务的情况下不会占用executor资源
- 支持Cluster和Client模式启动
- 基于Structured Streaming实现SQL动态添加流
- 类似SparkShell交互式数据分析功能
- 高效的script管理,配合import/include语法完成各script的关联
- 对数据源操作的权限验证
支持的数据源:hdfs、hive、hbase、kafka、mysql、es、mongo
支持的文件格式:parquet、csv、orc、json、text、xml
在Structured Streaming支持的Sink之外还增加了对Hbase、MySQL、es的支持
Quickstart
HBase
加载数据
load hbase.t_mbl_user_version_info
where `spark.table.schema`="userid:String,osversion:String,toolversion:String"
and `hbase.table.schema`=":rowkey,info:osversion,info: