【360开源】Quicksql——更简单,更安全,更快速的跨数据源统一SQL查询引擎
|
前言
SQL,全称Structured Query Language,是当今使用最广泛的数据查询语言。最初的设计仅仅是适用于RDBMS,可是随着数据底层存储结构设计的大爆发,越来越多的数据存储引擎支持SQL查询。甚至于支持SQL查询几乎可以定义为这个数据存储引擎能否广泛应用于生产环境的一种标准,最典型的案例就是Hive。Elasticsearch和Druid虽然原生不支持,但从官网发布的消息来看,SQL支持正在计划中。
只可惜ANSI针对SQL仅仅是提供了一种标准,数据存储引擎均在此基础上做了不同的发展演化。发展至今,不同引擎的SQL差异化愈发明显,数据分析人员必须学习使用不同的SQL语言来适应不同的数据存储生产环境,这本身就违背了SQL设计的初衷。另一方面来说,不同数据存储引擎间因数据结构的差异,不能将数据放在一起进行计算探索,这也极大的限制了数据分析人员的分析成果可能性。
于是,Quicksql(简称QSQL)诞生啦!
简介
Quicksql旨在成为简单,更安全,更快速的跨数据源统一SQL查询引擎。
它帮助用户减少在使用不同数据引擎时需要的学习成本和切换成本,忽略不同数据引擎底层存储和数据查询方式的差异,使用户仅需要关注查询的业务逻辑和数据本身。对于组织而言,这样的设计可以大幅度提高整体数据分析的效率,降低新员工的培训成本,更快速更高效的帮助组织使用数据促进发展。
实现
Quicksql基于Apache Calcite提供的多数据引擎SQL语义适配功能,基于ANSI发布的SQL 2003标准和用户的使用习惯上,重新定义并扩展部分SQL语义,对用户提供了统一的SQL语言。在内部,Quicksql会根据用户所查询的SQL语句,在原语义的基础上,进行解析转化等操作,最终根据数据引擎特性将用户的查询语义完整地转化为数据引擎可执行的SQL语句。Quicksql还拥有智能选择功能,可以根据该SQL的引擎特性决定最快速最高效的数据查询方式,例如,当Quicksql分析得出查询语句是一个混合查询,它就会自动选择启动集群模式(默认是Spark)进行数据处理。
特点
统一SQL语义
提供统一SQL语言,方便用户学习使用。
混合SQL的支持
在日常工作中,我们发现有很多业务线同事面临需要将Hive的数据连接MySQL的操作等需要,这在传统的SQL查询中是无法实现的。但是Quicksql做到了。用户可以完全忽略掉不同数据引擎的底层存储,对两种或两种以上的引擎进行连接(JOIN)、合并(UNION)等操作,更快速的达到数据分析的结果。
易扩展
Quicksql拥有数据底层存储无关,数据计算引擎无关的特性。也就是说,它可以很方便地扩展多种数据源(Druid、Mongo等),扩展多种计算引擎(Spark、Flink等)。在0.5-release版中,Quicksql重点实现了Hive、MySQL、Elasticsearch的混查,引擎支持JDBC和Spark,后面我们会添加常用的数据存储引擎和计算引擎,也欢迎大家来和我们一起完善构建统一SQL的世界。
架构图
使用
Quicksql现在提供三种对外服务方式:命令行,API和JDBC连接。
命令行
根据Quicksql的Github主页相关说明,用户可以很容易的进行Quicksql的部署。部署完成后,Quicksql提供了脚本模式,支持使用类似 “qsql -e [SQL]” 这样的命令进行数据查询。
API
为方便开发者用户使用,Quicksql提供了一套API方便开发程序调用。与Spark、Storm等现有的引擎类似,Quicksql API在使用中需要先定义环境参数(任务名,执行引擎,查询最大返回条数等),然后进行SQL的查询和任务的提交。关于API的用法详情可以参考Quicksql example。
JDBC
Quicksql还实现了JDBC的接口,用户可以像连接MySQL一样通过JDBC方式连接Quicksql进行数据查询。
联系我们
这里就是开源主页啦(可点击阅读原文查看):
https://github.com/Qihoo360/Quicksql
也非常欢迎大家可以一起参与到开发过程中~
QQ交流群
微信交流群
更多开源信息,请关注“360技术”公众号~
界世的你当不
只作你的肩膀
无
360官方技术公众号
技术干货|一手资讯|精彩活动
空·
点这里查看详情,欢迎加star呦~
【360开源】Quicksql——更简单,更安全,更快速的跨数据源统一SQL查询引擎相关推荐
- KubeVela 1.4:让应用交付更安全、上手更简单、过程更透明
作者:孙健波,曾庆国 KubeVela 是一个现代化的软件交付控制平面,目标是让应用的部署和运维在如今的混合多云环境下更简单.敏捷.可靠.自 1.1 版本发布以来,KubeVela 架构上天然打通了企 ...
- 刚转行的运营人做哪些副业更简单,并且更赚钱?
分享两个零基础转行的运营人,一位通过副业和积累成了公司高管,年薪45w,一位成了创业的小老板,带领6人团队总收入年薪230w左右 先来一个大纲,方便大家浏览和直接学习到自己想看的那部分 1.他们怎么从 ...
- 可恶的.NET FRAME,将一切变得更简单,还是更复杂?
方是方便了程序员快速开发布置, 那性能问题追查不是更复杂了? .NET FRAMEWORK 和JVM之间,我是趋向于JVM的. 微软有自己的OS,还要作.NET FREAMEWORK,可以绑定更多的程 ...
- PPT丑哭了?这个工具做报表上手更简单,效果更酷炫,送40套模板
如果2023年你还做着万年不变的饼图.折线图,你将会再次错失涨薪的机会! 数据有多重要,已经不言而喻,随之而来的是职场对数据分析与展示能力的要求也越来越高. 但是你是不是这种情况?一用图表就只会用饼图 ...
- 【360开源】2018开源项目汇总
开源报告 2018年,360一共开源了6个项目,包括前端.大数据.移动端.机器学习.云计算多个领域. 开源项目地址: https://github.com/Qihoo360 ◆ ◆ ◆ ◆ Sprit ...
- 360多数据源混合查询引擎的前世今生
女主宣言 随着业务的不断增多,为满足不同场景下对计算时延和吞吐的需求,各式各样的数据源大显身手.然而,由于不同数据源的发展历程不同,迭代速度不一,无法向用户提供统一的数据处理范式.且数据源所处介质天然 ...
- 科技创新让互联更简单:荣耀多款新品助力智慧生活全面进阶
9月26日,2021荣耀智慧生活新品发布会正式举行.发布会以"智慧科技 至美生活"为主题,推出包括笔记本.智慧屏.平板等在内的多款全场景智能终端设备. 此次发布会荣耀带来了惊艳的融 ...
- “互联网+”农技推广让种地更简单
"轻轻一按,各种关于种地的专业信息信手拈来,还可以在线与农业专家交流学习,实时掌握疫病灾情--"这种简单.快捷的种地模式不再是梦.近年来,互联网日益成为创新驱动发展的先导力量,深刻 ...
- 查询引擎怎么选?7000字解析所有开源引擎的秘密
怎么理解即席查询 即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表.即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询 ...
最新文章
- 程序员如何用Java排序
- android获取毫秒,Android 日期转为为毫秒,毫秒转化为日期,获取当期日期年、月、日...
- 基于Zookeeper实现简易版服务的注册与发现机制
- oracle显示linesize,SQL Plus输出结果的格式化(linesize、pagesize)
- opencv-api matchShapes
- 8051单片机Proteus仿真与开发实例-RS485协议通信仿真
- clearcase、Git之我见
- Excel日期运算单,多条件求和与计数
- springboot2学习笔记:mvnw相关文件生成
- 真正的手机密码大全!
- 从0开始学SLAM的各种问题
- X线DR医学图像 --- DR医用滤线栅及摩尔纹详解 (五) 消除摩尔纹
- os.environ[‘CUDA_VISIBLE_DEVICES‘]指定GPU后,还是用的“0“卡
- 【智能驾驶安全专题】功能安全与SOTIF如何融合实施?
- 进阿里了——分享一波进大厂经验
- spider pi 智能视觉六足机器人 巡路功能 0603
- 实习笔记Day14(2022.8.23)
- 水质模型发展历程以及水质模拟软件介绍
- java修改ppt格式_Java 加密、解密PPT文档
- Module not found: Error: Can‘t resolve ‘less-loader‘ in ‘文件位置‘报错解决