首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DistSQL:像数据库一样使用 Apache ShardingSphere

DistSQL:像数据库一样使用 Apache ShardingSphere

原创
作者头像
SphereEx
修改于 2021-07-20 09:46:15
修改于 2021-07-20 09:46:15
7430
举报

Apache ShardingSphere 5.0.0-beta 深度解析的第一篇文章和大家一起重温了 ShardingSphere 的内核原理,并详细阐述了此版本在内核层面,特别是 SQL 能力方面的优化和提升。强大稳定的内核是 ShardingSphere 持续发展的基础,与此同时,ShardingSphere 在研发分布式数据库生态特性上也在努力摸索。本次 5.0.0-beta 版本发布的 DistSQL,用于搭配整个 ShardingSphere 分布式数据库体系,在提供更标准化的分布式数据库管理方式的同时,兼具灵活、便捷和优雅的特性。 本文将带领大家全面认识 DistSQL,并结合实战案例展示如何使用 DistSQL 一键管理 ShardingSphere 分布式数据库服务

孟浩然

SphereEx 高级 Java 工程师

Apache ShardingSphere Committer

曾就职于京东科技,负责数据库产品研发,热爱开源,关注数据库生态,目前专注于 ShardingSphere 数据库中间件开发以及开源社区建设。

初识 DistSQL

相信大家对 SQL(Structured Query Language)都不陌生,SQL 是一种数据查询和程序设计语言,同时作为关系数据库管理系统的标准语言,用于存取数据以及查询、更新和管理关系数据库系统。

和标准 SQL 类似,DistSQL(Distributed SQL),即分布式 SQL,是 ShardingSphere 特有的一种内置 SQL 语言,能够提供标准 SQL 之外的增量功能操作能力。借助于 ShardingSphere 强大的 SQL 解析引擎,DistSQL 提供了类似于标准 SQL 的语法结构和语法校验体系,在保证规范化的同时,也让 DistSQL 更加灵活。

ShardingSphere 提出的 Database Plus 理念,旨在打造兼具数据库且贴合实际业务需求的开源分布式数据库体系,而 DistSQL 正是在传统数据库上层构建,提供既贴合标准又拥有 ShardingSphere 功能特色的 SQL 能力,能更好的为传统数据库赋能。

DistSQL 设计初衷

ShardingSphere 快速发展的几年来,随着内核的逐步稳定,以及对核心功能的持续打磨,在数据库中间件领域,已然独树一帜。作为国内开源的佼佼者, ShardingSphere 在分布式数据库生态的探索中并没有停止脚步,打破中间件和数据库之间的界限,让开发者像使用数据库一样使用 Apache ShardingSphere,是 DistSQL 的设计目标,也是 ShardingSphere 从面向开发人员的框架和中间件转变为面向运维人员的基础设施产品不可或缺的能力。

DistSQL 语法体系

DistSQL 在设计之初,就以面向标准为目标,充分考虑数据库开发和运维人员的使用习惯,所以 DistSQL 的语法全面借鉴标准 SQL 语言,兼顾可读性和易用性的同时,最大程度保留 ShardingSphere 自身的特性,并为使用者提供最宽泛的自定义边界,以应对不同的业务场景。对于熟悉 SQL 和 ShardingSphere 的开发者,可以快速入手。

标准的 SQL 提供了如 DQL、DDL、DML、DCL 等不同类型的语法,用于定义不同功能的 SQL 语句,DistSQL 也定义了一套自己的语法体系。

在 ShardingSphere 中, DistSQL 的语法目前主要划分为 RDL、RQL 和 RAL 三种类型:

  • RDL(Resource & Rule Definition Language):资源规则定义语言,用于资源和规则的创建、修改和删除;
  • RQL(Resource & Rule Query Language):资源规则查询语言,用于资源和规则的查询和展现;
  • RAL(Resource & Rule Administrate Language):资源规则管理语言,用于 Hint、事务类型切换、分片执行计划查询等增量功能操作。

DistSQL 的语法体系为 ShardingSphere 迈向分布式数据库搭起了桥梁,目前还在持续完善中,随着更多的想法被实现,DistSQL 势必会越来越强大。也欢迎对此感兴趣的开发者加入 ShardingSphere,为 DistSQL 提供想法,贡献代码。

了解更详细的语法规则,可参考官方文档:https://shardingsphere.apache.org/document/current/cn/features/dist-sql/syntax/

DistSQL 实战

在了解了 DistSQL 的设计理念和语法体系后,接下来本文以数据分片为例,实战演示如何通过 DistSQL 来搭建一套基于 ShardingSphere 的数据分片服务。

环境准备

  • 启动 MySQL 服务
  • 创建用于分片的 MySQL 数据库
  • 启动 Zookeeper 服务

打开分布式治理配置并启动 ShardingSphere-Proxy (https://shardingsphere.apache.org/document/current/cn/quick-start/shardingsphere-proxy-quick-start/)

实战演示

  • 使用 MySQL 命令行连接到启动的 ShardingSphere-Proxy
  • 创建并查询分布式数据库 sharding_db
  • 使用新创建的数据库
  • 执行 RDL 配置 2 个用于分片的数据源资源 ds_1 和 ds_2
  • 执行 RQL 查询新增加的数据源资源
  • 执行 RDL 创建 t_order 表的分片规则
  • 执行 RQL 查询分片规则

RQL 除了支持查询当前数据库下的所有分片规则,也可以通过下面的语句查询单个表的分片规则

代码语言:txt
AI代码解释
复制
SHOW SHARDING TABLE RULE t_order FROM sharding_db
  • 创建并查询 t_order 分片表
  • 在 ShardingSphere-Proxy 端成功创建分片表 t_order 后,通过客户端连接到底层数据库 ds_1 和 ds_2,ShardingSphere 已经根据 t_order 表的分片规则自动创建了分片表
  • 分片表创建完成后,继续在 ShardingSphere-Proxy 端执行 SQL 语句插入数据
  • 通过 RAL 查询执行计划

至此,使用 DistSQL 搭建 ShardingSphere 数据分片服务已经完成,对比之前版本以配置文件驱动的 ShardingSphere 代理端相比,DistSQL 对开发者更友好,对资源和规则的管理更加灵活,以 SQL 驱动的方式,更是实现了 DistSQL 和标准 SQL 的无缝对接。

以上的示例中,仅演示了小部分 DistSQL 语法的使用,除了通过 CREATE 和 SHOW 语句创建和查询资源、规则,DistSQL 同样提供了 ALTRE DROP 等更多的操作,且同时支持对数据分片、读写分离、数据加密、数据库发现核心功能的配置管控。

结语

作为 5.0.0-beta 版本发布的新特性之一,DistSQL 也将从此版本开始持续发力,构建更完善的语法体系,提供更强大的功能。

DistSQL 为 ShardingSphere 在分布式数据库领域的探索提供了无限可能,在后续的规划中,DistSQL 将作为纽带串联起更多的功能,提供一键式操作。如一键分析数据库整体状态,和弹性迁移对接,提供一键数据扩容、缩容;和管控对接,实现一键切换主从、改变数据库状态等等。

最后,欢迎大家多多关注社区,了解 ShardingSphere 项目最新进展。

欢迎关注我们

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
这款功能强大的视频压制工具,用了就爱不释手了
为什么今天给大家推荐这个软件呢?因为最近工作需要,每天要处理一百多篇视频加水印的工作,主任老王给我们推荐狸窝全能视频转换器,相信用过的人都知道,软件界面上并不能给我们更好的体验,再就是加水印处理视频的时候出错率较高,水印的大小也不能等比例缩放,确实是在网上找了很多类似软件,才决定给大家推荐这款软件。
半夜喝可乐
2018/10/22
5.3K0
这款功能强大的视频压制工具,用了就爱不释手了
视频压缩工具ffmpeg的使用
这篇文章中的视频压缩非常适用于教学视频的压缩,因为教学视频中很多帧数的内容都是相同的。 本文作者的CPU是E5-2670,8核16线程。视频压缩工具ffmpeg可以充分利用多线程性能。 原文件大小:1.45GB 与视频压缩软件格式工厂对比,对比情况如下表所示:
潇洒坤
2018/09/10
5.5K0
视频压缩工具ffmpeg的使用
开源免费视频压缩软件CompressO,怎么把视频压缩小一点的轻量工具
CompressO 是一个基于 FFmpeg 的视频压缩工具,可以大幅度减少视频体积。它支持 Windows、Linux 和 macOS 系统,完全离线运行,简单易用。CompressO 具有以下特点:
小焱
2025/07/02
6820
开源免费视频压缩软件CompressO,怎么把视频压缩小一点的轻量工具
音视频知识体系(基础篇1)----媒体格式
2020年,直播带货又把直播的技术重燃了一把火。回望一下几年前,我们在手机上阅读方式,还只是图文;如看小说、读新闻,学习还是书本(包括电子书)。再看一下现在,大家的阅读方式,早已经变成了视频或者音频;看动画、听小说、看视频教程。音视频、流媒体,我们需要打好这门功课的基础。因为从前人的经验看,越到后面,越会发现,这些真是太重要,都是提升高度越不过的东西。
jerrypxiao
2021/01/09
2.7K0
音视频知识体系(基础篇1)----媒体格式
腾讯多媒体专家赵帅:只有5G而没有视频压缩,那么多媒体传输一切都是0
导语 | 2019年9月7日,腾讯技术开放日·5G多媒体专场在腾讯滨海大厦完美落幕。来自腾讯多媒体实验室的专家们给大家带来了关于5G技术和标准的精彩分享,揭开了许多关于5G的谜团。本文重点给大家讲解5G时代下多媒体标准、多媒体压缩前沿技术的标准化,以及面向未来的多媒体系统架构。
腾讯技术开放日
2019/10/16
2.9K0
视频压缩原理入门
图像画面由一个数字序列表示的图像中的一个最小单位色块,被称之像素(pixel/px)
公众号@魔术师卡颂
2020/08/26
4.4K0
视频压缩原理入门
菜鸟也能懂的 - 音视频基础知识
1,光和颜色光是一种肉眼可以看见(接受)的电磁波(可见光谱)。在科学上的定义,光有时候是指所有的电磁波。光是由一种称为光子的基本粒子组成。具有粒子性与波动性,或称为波粒二象性。人类肉眼所能看到的可见光只是整个电磁波谱的一部分。电磁波之可见光谱范围大约为 390~760nm(1nm=10-9m=0.000000001m)。
入门笔记
2023/03/08
1.1K0
菜鸟也能懂的 - 音视频基础知识
音视频编解码格式扫盲学习
Video \Audio Container是什么? 视频、音频和容器是多媒体文件的三个主要组成部分:
天天Lotay
2023/10/15
5280
音视频八股文(1)--音视频基础
语单词“元素element”,就得到了“pixel”,简称px,所以“像素”有“图像元素”
福大大架构师每日一题
2023/06/08
1.1K0
音视频八股文(1)--音视频基础
FFmpeg 视频压缩与 Python 调用方法
下载链接:https://ffmpeg.org/download.html#build-linux
为为为什么
2023/02/21
1.4K0
音视频八股文(1)--音视频基础
语单词“元素element”,就得到了“pixel”,简称px,所以“像素”有“图像元素”
福大大架构师每日一题
2023/04/16
1.1K0
音视频八股文(1)--音视频基础
(强烈推荐)移动端音视频从零到上手(上)
音视频的发展正在向各个行业不断扩展,从教育的远程授课,交通的人脸识别,医疗的远程就医等等,音视频方向已经占据一个相当重要的位置,而音视频真正入门的文章又少之甚少,一个刚毕业小白可能很难切入理解,因为音视频中涉及大量理论知识,而代码的书写需要结合这些理论,所以搞懂音视频,编解码等理论知识至关重要.本人也是从实习开始接触音视频项目,看过很多人的文章,在这里总结一个通俗易懂的文章,让更多准备学习音视频的同学更快入门。
音视频开发进阶
2019/07/31
1.1K0
(强烈推荐)移动端音视频从零到上手(上)
嵌入式音视频疑惑汇总(持续更新)
“Bypass HDR” 是指绕过高动态范围(HDR)功能的一种设置。HDR 是指一种显示技术,它可以提供更高的色彩深度和亮度范围,从而产生更加真实、明亮和有层次感的图像。在某些情况下,用户可能会选择禁用 HDR 功能,例如当他们观看不支持 HDR 的内容时,或者在使用某些应用程序时需要禁用 HDR 以获得更好的性能。因此,“Bypass HDR”是一种设置选项,允许用户启用或禁用HDR功能。
天天Lotay
2023/10/15
7900
嵌入式音视频疑惑汇总(持续更新)
码流 / 码率 / 比特率 / 帧速率 / 分辨率的区别[通俗易懂]
关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用 1 个关键帧。增加关键帧个数可改善质量,但是同时增加带宽和网络负载。
全栈程序员站长
2022/09/01
4.8K0
手机常用压缩工具下载,RAR,ZIP,7Z解压缩,zip解压缩,Bandizip,ZArchiver等解压工具
手机搜索一些软件,文件,文档等,但又都压缩了,这个时候确实需要一款解压工具,而且不同的压缩包还存在格式不一样,所以我介绍了几款,针对一些常见的压缩格式如RAR,ZIP,7Z等进行解压。
小焱
2025/07/12
1790
(强烈推荐)移动端音视频从零到上手
音视频的发展正在向各个行业不断扩展,从教育的远程授课,交通的人脸识别,医疗的远程就医等等,音视频方向已经占据一个相当重要的位置,而音视频真正入门的文章又少之甚少,一个刚毕业小白可能很难切入理解,因为音视频中涉及大量理论知识,而代码的书写需要结合这些理论,所以搞懂音视频,编解码等理论知识至关重要.本人也是从实习开始接触音视频项目,看过很多人的文章,在这里总结一个通俗易懂的文章,让更多准备学习音视频的同学更快入门。
做个快乐的码农
2021/12/12
1.3K0
(强烈推荐)移动端音视频从零到上手
音视频开发常用工具
我们在进行音视频开发过程中不可避免的需要使用一些工具进行协助开发,本文重点讲解音视频开发过程中常用工具以及常用功能。
Gnep@97
2023/09/03
1.4K0
音视频开发常用工具
FFmpeg从入门到精通-云享读书会
FFmpeg是一款开源软件,用于生成处理多媒体数据的各类库和程序。FFmpeg可以转码、处理视频和图片(调整视频、图片大小,去噪等)、打包、传输及播放视频。作为最受欢迎的视频和图像处理软件,它被来自各行各业的不同公司所广泛使用。
DS小龙哥
2022/10/06
5.6K0
FFmpeg从入门到精通-云享读书会
5G时代来临,前端开发工程师必须了解的音视频入门基础知识
本文将给大家进行音视频基础的常规知识点的梳理。当然,短短的一篇文章并不能让大家立即变成音视频领域的专家,但这些知识点已经基本涵盖了音视频的入门知识。我们将按照下面的内容给大家
IMWeb前端团队
2019/12/06
1.8K0
计算机三级嵌入式学习笔记(一)
波形声音的码率=取样频率 x 量化位数 x 声道数(单位:b/s) 注意: 压缩编码后的码率则为压缩前的码率除以压缩倍数(压缩比)。
全栈程序员站长
2022/09/02
9870
推荐阅读
相关推荐
这款功能强大的视频压制工具,用了就爱不释手了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档