通過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查詢計量計費。