通過SQL查詢功能,您可以對錶格儲存中資料進行複雜的查詢和高效的分析,為多資料引擎提供統一的提供者。

背景資訊

Tablestore是阿里雲自研的多模型結構化資料存放區,提供海量結構化資料存放區以及快速的查詢和分析服務。Tablestore的分布式儲存和強大的索引引擎能夠支援PB級儲存、千萬TPS以及毫秒級延遲的服務能力。使用Tablestore您可以方便的儲存和查詢海量資料。

為了滿足使用者業務平滑遷移到Tablestore以及使用SQL方式訪問Tablestore的需求,Tablestore在傳統的NoSQL結構化儲存之上,提供雲原生的SQL引擎能力,SQL查詢相容MySQL的查詢文法,同時提供基礎的SQL DDL建表能力。對於已有資料表,通過執行CREATE TABLE一鍵自動建立映射關係後,您可以使用SQL方式訪問表中資料。

SQL查詢功能支援通過多元索引來快速查詢滿足查詢條件的資料。使用SQL查詢時,系統會根據SQL語句自動選擇合適的方式來加速SQL訪問。

SQL查詢功能適用於在海量資料中進行線上資料訪問類型的情境,SQL訪問的延時從毫秒、秒到分鐘層級不等,包括基於資料表主鍵的Point Query (GetRow操作)、多元索引的精確查詢(TermQuery )等以及通過多元索引的統計彙總能力進行查詢,例如資料表中滿足某個條件的個數、某列求和等。

基本概念

SQL的使用會涉及到很多傳統資料庫中的概念,此處介紹下相關概念以及與現有Tablestore概念的映射關係。

名詞 描述
資料庫 按照資料結構來組織、儲存和管理資料的倉庫。一個資料庫中可以包含一個或者多個表,映射為Tablestore的執行個體。
由行和列組成,映射為Tablestore的表。
索引 映射為Tablestore的二級索引或者多元索引。

功能特性

注意事項

在使用SQL查詢時,不支援事務功能。

使用限制

更多資訊,請參見SQL使用限制

SQL中大小寫

Tablestore的SQL引擎遵循通用的SQL規範,對列名大小寫不敏感,例如操作SELECT Aa FROM exampletable; 語句與SELECT aa FROM exampletable;語句是等價的。

由於Tablestore中原始表的列名大小寫敏感,當使用SQL時,原始表的列名會統一轉換為小寫字母進行匹配,即如果要動作表格儲存表中的Aa列,在SQL中使用AA、aa、aA、Aa均可,因此Tablestore原始表的列名不能同時為AA、aa、aA和Aa。

保留字與關鍵字

Tablestore將SQL語句中的關鍵字作為保留字。如果在命名表或者列時需要使用關鍵字,則請添加``符號對關鍵字進行轉義。關鍵字不區分大小寫。

關於保留字與關鍵字的更多資訊,請參見保留字與關鍵字

SQL與多元索引功能對比

多元索引功能 SQL函數/語句
精確查詢 等於(=)
範圍查詢 大於(>)、小於(<)、大於等於(>=)、小於等於(<=)、BETWEEN ... AND ...
多條件組合查詢 MustQueries AND
MustNotQueries !=
ShouldQueries OR
排序和翻頁 FieldSort ORDER BY
SetLimit LIMIT
統計彙總 最小值 MIN()
最大值 MAX()
SUM()
平均值 AVG()
統計行數 COUNT()
統計去重行數 COUNT(DISTINCT)
擷取統計彙總分組中的行 ANY_VALUE()
欄位值分組 GROUP BY

計費

更多資訊,請參見SQL查詢計量計費