如何在 ShardingSphere 中開發自己的 DistSQL
阿新 • • 發佈:2021-12-01
在《DistSQL:像資料庫一樣使用 Apache ShardingSphere》和《SCTL 涅槃重生:投入 RAL 的懷抱》中,已經為大家介紹了 DistSQL 的設計初衷和語法體系,並通過實戰操作展示了 DistSQL 建立分散式資料庫表的強大能力,展現了 Apache ShardingSphere 在新形態下的互動體驗。
為了讓大家對 DistSQL 有更深入的瞭解,同時能根據需要定製自己的 DistSQL 語法,本篇將為大家解析 DistSQL 的設計開發流程,同時通過實際的場景案例,帶領大家實現一個全新的 DistSQL 語法,完成從需求到設計、開發和測試的完整過程。
蘭城翔
SphereEx 中介軟體研發工程師,Apache ShardingSphere contributor,目前專注於 DistSQL 的設計和研發。
何為 DistSQL
DistSQL(Distributed SQL)是 Apache ShardingSphere 特有的操作語言,它與標準 SQL 的使用方式完全一致,用於提供增量功能的 SQL 級別操作能力,以此達到對資源和規則的管理的目的。關於 DistSQL 更多資訊參考《DistSQL:像資料庫一樣使用 Apache ShardingSphere》。DistSQL 的意義
DistSQL 設計的目的是打破中介軟體和資料庫之間的界限,讓開發者像使用資料庫一樣使用 Apache ShardingSphere。開發 DistSQL
準備
* 在開發之前需要對以下工具有所瞭解 1. ANTRL4 作為解析工具是開發 DistSQL 的基礎,關於 ANTLR 4 的使用可以參考 【ANTRL4簡明教程】:https://wizardforcel.gitbooks.io/antlr4-short-course/content/ 2. 在 IntelliJ IDEA 開發時還需要使用到外掛 ANTLR v4, (https://plugins.jetbrains.com/plugin/7358-antlr-v4實戰
在瞭解 DistSQL 執行流程之後,接下來將實戰演示如何開發一條自己的 DistSQL。 在《DistSQL:像資料庫一樣使用 Apache ShardingSphere》一文中實戰演示了使用 DistSQL 建立分片規則,同時使用 show sharding table rules 對分片規則進行了展示。 現在,讓我們提出一個新的需求:通過 DistSQL 快速查詢各個分片表的分片數量。設計語法如下:show sharding tables count [from schema] ;
- 環境準備
- MySQL 服務,包含用於分片的資料庫和表
- Zookeeper 服務,作為註冊中心
- ShardingSphere-Proxy 5.0.0
- 實戰演示