写点什么

360 开源 Quicksql:更简单,更安全,更快速的跨数据源统一 SQL 查询引擎

  • 2019-01-09
  • 本文字数:1455 字

    阅读完需:约 5 分钟

360开源 Quicksql:更简单,更安全,更快速的跨数据源统一SQL查询引擎

引言

话说天下大势,合久必分, 分久必合。 ——罗贯中大大


SQL 的世界也是如此。最初 ANSI 仅仅对 SQL 提出了一种标准,于是各个数据存储厂商都自己定制了专门的 SQL 语法。也因为此,在工作中,我们常常会遇到这样的场景:


小明,刚刚参加工作,第一个任务便是查询从没接触过的 Hive 中的数据。前辈说,不要担心,你直接用查 MySQL 的 SQL 语句查询就好。小明颤颤巍巍写下了第一个 SQL 查询语句,确实能跑。但是随着业务复杂度增加,SQL 的复杂度也随之提升,他渐渐发现 Hive 和 MySQL 的 SQL 语法并不完全一样,平时查询需要区别对待,不停切换。他想知道,有没有一种 SQL 可以支持业内主流的数据存储引擎?


小红,参加工作 2 年。已经学会使用 MySQL、Hive、Oracle 等不同存储引擎的 SQL 语句查询数据。这时,上司说要引入 Elasticsearch。她发现这个数据存储引擎并不能通过 SQL 查询,而是需要编写复杂的 json 查询。渐渐地,她发现类似的存储引擎越来越多,Druid、Redis、Mongo、HBase 等,并且每一种都需要采取不同的方式查询数据,分析一个业务场景所需要切换的查询方式也越来越多。她想知道,可不可以使用 SQL 语言查询 No-SQL 乃至 New-SQL 的数据存储?


所以嘞,Quicksql(简称 QSQL)诞生啦!

Quicksql 是什么

Quicksql 是一个更简单,更安全,更快速的跨数据源统一 SQL 查询引擎。它帮助用户减少在使用不同数据引擎时需要的学习成本和切换成本,忽略不同数据引擎底层存储和数据查询方式的差异,使用户仅需要关注查询的业务逻辑和数据本身。

Quicksql 能做什么?

  1. 统一 SQL 语法:提供统一 SQL 语言,支持不同结构化数据存储查询,方便用户学习。

  2. 多数据存储引擎查询:提供 SQL 查询 No-SQL\New-SQL 等数据存储引擎,方便使用。

  3. 数据联邦:支持跨数据源查询,例如 MySQL join Elasticsearch union Hive。

  4. 方便扩展:分层灵活,Quicksql 可以很方便的扩展多种数据源(Druid、Mongo 等),扩展多种计算引擎(Spark、Flink 等)。

如何使用 Quicksql?

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 进行数据查询。

Quicksql 是怎么实现的?

Quicksql 基于 Apache Calcite 提供的多数据引擎 SQL 语义适配功能,基于 ANSI 发布的 SQL 2003 标准和用户的使用习惯上,重新定义并扩展部分 SQL 语义,对用户提供了统一的 SQL 语言。在内部,Quicksql 会根据用户所查询的 SQL 语句,在原语义的基础上,进行解析转化等操作,最终根据数据引擎特性将用户的查询语义完整的转化为数据引擎可执行的 SQL 语句。Quicksql 还拥有智能选择功能,可以根据该 SQL 的引擎特性决定最快速最高效的数据查询方式,例如,当 Quicksql 分析得出查询语句是一个混合查询,它就会自动选择启动集群模式(默认是 Spark)进行数据处理。



想知道更多?这里就是开源主页啦: https://github.com/Qihoo360/Quicksql


有问题还可加入 QQ 群和 360 的技术人员一起交流。QQ 群号:932439028


2019-01-09 08:4512551
用户头像

发布了 1534 篇内容, 共 713.0 次阅读, 收获喜欢 2511 次。

关注

评论 2 条评论

发布
用户头像
q请问,这个可以用来做多租户吗?
2020-12-16 14:56
回复
用户头像
不错的项目,试试ES查询
2019-01-09 09:30
回复
没有更多了
发现更多内容

Parrot和DJI系列无人机操作系统内核崩溃漏洞利用分析

qife122

漏洞利用 无人机安全

大数据-47 Redis 内存控制、Key 过期与数据淘汰策略详解

武子康

Java redis 大数据 分布式 后端

MyEMS开源能源管理系统核心代码解读015

开源能源管理系统

开源 代码解读 能源管理系统

误操作后快速恢复数据 binlog 解析为反向 SQL

GreatSQL

电力行业新助力:RFID智能工具车助力电力设备盘点与维护

斯科信息

RFID解决方案 斯科信息 RFID技术

爆款预测模型:如何用淘宝店铺API数据识别潜力商品?

tbapi

淘宝API 天猫API 淘宝店铺所有商品API 天猫店铺所有商品API

彩讯做客InfoQ直播间:AI原生思想驱动Agent平台开发

彩讯股份300634

待办事项列表:团队组织有序的秘密

俞凡

生产力

看板管理解析,给生产一点小小震撼!

积木链小链

数字化 智能制造 生产管理 生产看板

破局传统采购!采购文件编制审核系统为烟草行业数智化加速

中烟创新

黑龙江地区等保测评中常用的安全产品

等保测评

除了企微钉钉,有什么企业 IM 性价比高一点的吗?

BeeWorks

即时通讯 IM 私有化部署

烟草行业专卖人员画像与队伍考评系统(信创版)上线运行

中烟创新

区块链 Web3 项目的开发方案

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

OPPO大数据混合云之路

科技热闻

AI口语App的开发方案

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

客户为纲,万目皆张——中烟创新致烟草客户的一封信

中烟创新

暑热能耗管理成难题?这套智慧方案高效破局!

极客天地

WebGL开发3D展览馆

北京木奇移动技术有限公司

软件外包公司 webgl开发 webgl外包

WebGL开发数字孪生项目

北京木奇移动技术有限公司

软件外包公司 webgl开发 webgl外包

MIAOYUN | 每周AI新鲜事儿(07.11-07.18)

MIAOYUN

云计算 AI AI 大模型 AI Agent,

[大厂实践] Netflix 键值数据抽象层实践

俞凡

架构 大厂实践

分享一个 ProHub 风格 logo 生成器

Immerse

【跨国数仓迁移最佳实践2】MaxCompute SQL执行引擎对复杂类型处理全面重构,保障客户从BigQuery平滑迁移

阿里云大数据AI技术

人工智能 大数据 数据处理 数据迁移

等保测评对互联网企业的重要作用和影响

等保测评

如何打造 App 的差异化竞争优势?别再卷功能了!

Speedoooo

APP开发 小程序容器 小程序技术 app生态共建

淘宝商品图片搜索API响应数据解析

tbapi

淘宝API接口 天猫API接口 淘宝图片搜索接口 淘宝拍立淘接口 天猫拍立淘接口

阿里巴巴为什么禁止超过3张表join?

量贩潮汐·WholesaleTide

前端

类似腾讯会议的私有化音视频会议软件,BeeWorks Meet

BeeWorks

即时通讯 IM 私有化部署

漏洞赏金猎手入门指南:从零开始赚取高额奖金的核心方法论

qife122

渗透测试 漏洞挖掘

​​从数据到决策:低代码+AI如何简化并加速可视化工作流?

不在线第一只蜗牛

360开源 Quicksql:更简单,更安全,更快速的跨数据源统一SQL查询引擎
_数据库_InfoQ 中文站_InfoQ精选文章