帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 操作指南
  5. SQL查询

SQL查询

  • 操作指南
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

SQL查询为表格存储的多数据引擎提供统一的访问接口,兼容MySQL的查询语法,适用于在海量数据中进行在线数据访问类型的场景。您可以通过SQL查询功能对表格存储中的数据进行复杂的查询和高效的分析。

背景信息

为了满足用户业务平滑迁移到表格存储以及使用SQL方式访问表格存储的需求,表格存储在传统的NoSQL结构化存储之上,提供云原生的SQL引擎能力。SQL查询兼容MySQL的查询语法,同时提供基础的SQL DDL建表能力。对于已有数据表,通过执行CREATE TABLE一键自动建立映射关系后,您可以使用SQL方式访问表中数据。

SQL查询功能支持通过多元索引来快速查询满足查询条件的数据。使用SQL查询时,系统会根据SQL语句自动选择合适的方式来加速SQL访问。

SQL查询功能适用于在海量数据中进行在线数据访问类型的场景,SQL访问的延时从毫秒、秒到分钟级别不等,包括基于数据表主键的Point Query (GetRow操作)、多元索引的精确查询(TermQuery )等以及通过多元索引的统计聚合能力进行查询,例如数据表中满足某个条件的个数、某列求和等。

基本概念

SQL的使用会涉及到很多传统数据库中的概念,此处介绍下相关概念以及与现有表格存储概念的映射关系。

数据库概念

表格存储概念

描述

数据库

实例

按照数据结构来组织、存储和管理数据的仓库。一个数据库中可以包含一个或者多个表。

表

表

由行和列组成。

索引

二级索引、多元索引

为加速数据查询而创建的一种存储结构。

功能特性

  • SQL功能

    • 支持单次请求单条SQL。

    • 支持基础的DDL语句,主要包括创建表的映射关系、创建多元索引的映射关系、更新映射表属性列、删除映射关系和查询表的描述信息。

    • 支持DQL操作,主要包括查询数据,可实现基础数据查询、统计聚合、条件过滤、分页查询等功能。

    • 支持基础的Database Administration功能,主要包括列出映射表名称列表和查询索引描述信息。

    • 支持通过多元索引实现全文检索、多元索引数组类型、多元索引嵌套类型、多元索引虚拟列等查询功能。

    • 支持使用JOIN功能将两个表或多个表进行连接,并返回符合连接条件和查询条件的数据。更多信息,请参见Join。

    • 支持JSON函数->>、JSON_UNQUOTE和JSON_EXTRACT。更多信息,请参见JSON函数。

  • 字符集和排序规则

    • 字符集:UTF-8

    • 排序规则:二进制排序规则

  • 操作符

    支持算术运算符、关系运算符、逻辑运算符等SQL操作符。更多信息,请参见SQL操作符。

  • 存量表绑定

    通过CREATE TABLE语句,您可以为存量表创建映射关系。创建映射关系时,请确保主键和存量表的主键一致,属性列和存量表的属性列类型以及预定义列类型一致。关于数据类型映射关系的更多信息,请参见SQL数据类型映射。

注意事项

  • SQL查询适用于宽表模型和时序模型。

  • 在使用SQL查询时,不支持事务功能。

  • 表格存储将SQL语句中的关键字作为保留字。如果在命名表或者列时需要使用关键字,则请添加``符号对关键字进行转义。关键字不区分大小写。 更多信息,请参见保留字与关键字。

  • 表格存储的SQL引擎遵循通用的SQL规范,对列名大小写不敏感,例如操作SELECT Aa FROM exampletable; 语句与SELECT aa FROM exampletable;语句是等价的。

    由于表格存储中原始表的列名大小写敏感,当使用SQL时,原始表的列名会统一转换为小写字母进行匹配,即如果要操作表格存储表中的Aa列,在SQL中使用AA、aa、aA、Aa均可,因此表格存储原始表的列名不能同时为AA、aa、aA和Aa。

  • 目前支持SQL查询功能的地域包括华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华北6(乌兰察布)、华南1(深圳)、西南1(成都)、中国香港、日本(东京)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、德国(法兰克福)、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚)。

使用限制

更多信息,请参见SQL使用限制。

使用流程

image

宽表模型与时序模型的使用步骤的实现存在差异,请根据实际情况查询相应步骤信息。

宽表模型使用步骤说明

步骤

操作

说明

1

为表创建映射关系

使用SQL查询数据前,您需要手动创建表的映射关系。具体操作,请参见创建表的映射关系,

如果已为数据表创建多元索引,您还可以选择为多元索引创建映射关系来实现通过指定多元索引查询数据。具体操作,请参见创建多元索引的映射关系。

2

使用SQL查询数据

通过表的映射关系查询表中数据。您可以通过SQL查询实现如下功能:

  • 查询符合指定条件的数据。

  • 通过Join功能实现关联数据查询,支持将两个表或多个表进行连接,并返回符合连接条件和查询条件的数据。更多信息,请参见Join。

  • 通过JSON函数查询JSON对象。更多信息,请参见JSON函数。

  • 通过匹配查询或者短语匹配查询条件实现全文检索。更多信息,请参见全文检索。

  • 通过ARRAY_EXTRACT(col_name)函数实现多元索引数组类型的数据查询。更多信息,请参见多元索引数组类型。

  • 通过运算符或使用NESTED_QUERY(subcol_column_condition)函数实现多元索引嵌套类型的数据查询。更多信息,请参见多元索引嵌套类型。

  • 通过虚拟列查询满足条件的数据。更多信息,请参见多元索引虚拟列。

3

使用SQL分析数据

通过表的映射关系分析表中的数据。您可以通过GROUP BY语句对结果集按照指定条件进行分组,并且可以使用聚合函数进行数据的统计与计算。更多信息,请参见GROUP BY分组查询和聚合函数。

时序模型使用步骤说明

步骤

操作

说明

1

为表创建映射关系

使用SQL查询数据前,您需要为表创建映射关系。

您可以为时序表建立单值模型映射关系、多值模型映射关系或时间线元数据映射关系三种映射关系进行数据查询。

创建时序表后,系统会自动为表创建单值模型映射关系和时间线元数据映射关系,无需手动创建。如果要以多值模型查询时序数据,您需要手动创建多值模型映射关系。具体操作,请参见时序表的SQL映射关系。

2

使用SQL查询数据

通过表的映射关系查询表中数据。您可以使用单值模型或者多值模型查询时序数据以及使用时间线元数据映射关系查询时间线元数据。更多信息,请参见时序模型SQL查询与分析示例。

3

使用SQL分析数据

通过表的映射关系分析表中数据。您可以使用tag_value_at扩展函数提取时间线标签(_tags)中的某个标签(tag)的值以及时间线属性(_attributes)中的某个属性值。更多信息,请参见时序模型SQL查询与分析示例。

使用方式

您可以通过表格存储控制台、命令行工具、表格存储SDK、JDBC、Go语言驱动使用SQL查询。

  • 控制台

  • 通过命令行工具使用SQL查询

  • SDK

  • 通过JDBC使用SQL查询

    • 通过JDBC直连使用SQL查询

    • 通过Hibernate使用SQL查询

    • 通过MyBatis使用SQL查询

  • Go语言驱动

计费说明

SQL本身不会有额外的费用,但是使用SQL查询数据过程中涉及到的表扫描、索引查询等操作会产生费用。更多信息,请参见SQL查询计量计费。

常见问题

  • 使用SQL查询数据时如何选择查询方式

  • SQL查询常见错误排查

  • 使用SQL查询数据时报错The sql scanned rows of main table exceeds the quota, main table rows quota is 100000

相关文档

  • 如果要加速SQL数据查询和计算,您可以通过创建二级索引或者多元索引实现。更多信息,请参见索引选择策略和计算下推。

  • 您还可以通过MaxCompute、Spark、Hive或者HadoopMR、函数计算、Flink、PrestoDB等计算引擎实现表中数据的计算与分析。具体操作,请参见计算与分析。

  • 您还可以将Tablestore实例接入到DataWorks或DMS,然后使用SQL查询与分析Tablestore数据。更多信息,请参见接入到DataWorks和接入到DMS。

  • 如果要以图表等形式可视化展示数据,您可以通过对接Grafana实现。更多信息,请参见对接Grafana。

  • 使用宽表模型可以实现元数据、大数据等多种场景的解决方案,例如搭建海量智能元数据管理系统、亿量级订单管理方案、基于多元索引搭建亿量级店铺搜索系统、表格存储结合Spark流批处理实现一体化存储和计算、表格存储结合实时计算Flink进行大数据分析。更多方案介绍,请参见快速玩转Tablestore入门与实战。

  • 使用时序模型可以实现设备时序数据开发等方案。更多方案介绍,请参见快速玩转Tablestore入门与实战。

  • SQL查询可应用在表格存储物联网存储IoTstore解决方案中作为不同类型数据的统一查询接口。更多信息,请参见物联网存储简介。

    物联网存储IoTstore是表格存储基于物联网场景中多源异构数据存储、高并发吞吐、海量数据高性价比存储、多维度数据处理与分析等需求推出的一站式物联网解决方案,可为物联网设备元数据、消息数据、时序轨迹等海量数据提供存储、查询、检索、分析、同步等能力。

附录: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

相关文章

功能概述 2025-04-22 14:44

表格存储面向海量结构化数据提供Serverless表存储服务,适用于海量账单、IM消息、物联网、车联网、风控、推荐等场景中的结构化数据存储,提供海量数据低成本存储、毫秒级的在线数据查

功能和地域支持列表 2025-04-22 14:44

本文介绍表格存储正在邀测和非全地域支持的功能。

基础概念 2025-04-22 14:44

本文介绍表格存储的基本概念。 实例 实例(Instance)是您使用和管理

使用限制 2025-04-22 14:44

通过本文您可以了解表格存储的使用限制。

实例管理 2025-04-22 14:44

本文为您介绍实例管理的相关操作及说明。您可以通过本文了解创建实例、查看实例、实例监控、网络管理、安全策略、数据湖投递、SQL查询、释放实例和管理实例资源等内容。 创建实例 实例是

宽表模型 2025-04-22 14:44

宽表模型(WideColumn)是类Bigtable/HBase模型,可应用于元数据、大数据等多种场景。宽表模型通过数据表存储数据,单表支持PB级数据存储和千万QPS。数据表具有Schema-Free、宽行、多版本数据以及生命周期管理特点,支持主键列自增、局部事务、原子计数器、过滤器、条件更新等功能

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1