O Tablestore oferece uma interface SQL compatível com MySQL para tabelas largas e dados de séries temporais, com suporte a instruções DDL, DQL e DML. Os índices de busca permitem pesquisas de texto completo, buscas vetoriais, consultas em arrays, consultas aninhadas e consultas JSON.
Funcionamento
O Tablestore executa um mecanismo SQL sobre seu armazenamento NoSQL. Use CREATE TABLE para criar uma tabela de mapeamento referente a uma tabela de dados existente e consulte os dados com SQL. O mecanismo SQL seleciona automaticamente o índice ideal para acelerar as consultas.
Diferentemente dos bancos de dados relacionais tradicionais, o comando CREATE TABLE no Tablestore não cria uma tabela física. Ele estabelece um mapeamento de acesso SQL para uma tabela de dados ou índice de busca existente. O comando DROP MAPPING TABLE remove apenas o mapeamento, sem afetar os dados subjacentes.
Os conceitos do mecanismo SQL correspondem aos conceitos do Tablestore da seguinte forma.
|
Conceito de banco de dados |
Conceito do Tablestore |
Descrição |
|
Banco de dados |
Instância |
Repositório que organiza, armazena e gerencia dados. Uma instância pode conter uma ou mais tabelas. |
|
Tabela |
Tabela de mapeamento |
Mapeamento de acesso SQL para uma tabela de dados existente. Criada com CREATE TABLE. Composta por linhas e colunas. |
|
Índice |
Índice secundário, índice de busca |
Estrutura de armazenamento criada para acelerar consultas. O mecanismo SQL seleciona automaticamente o índice ideal. |
A consulta SQL está disponível nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Pequim), China (Zhangjiakou), China (Ulanqab), China (Shenzhen), China (Chengdu), China (Hong Kong), Japão (Tóquio), Singapura, Malásia (Kuala Lumpur), Indonésia (Jacarta), Alemanha (Frankfurt), Reino Unido (Londres), EUA (Vale do Silício), EUA (Virgínia), Arábia Saudita (Riade).
Métodos de acesso
Execute consultas SQL pelos métodos abaixo.
|
Método |
Caso de uso |
Referência |
|
Console |
Consultas e validação de dados em pequena escala, sem necessidade de código. |
|
|
CLI |
Desenvolvimento, depuração e scripts de automação. |
|
|
JDBC |
Aplicações Java que acessam o Tablestore pela interface JDBC padrão. |
|
|
Hibernate |
Integração ORM Java para projetos Hibernate existentes. |
|
|
MyBatis |
Integração com framework de persistência Java para projetos MyBatis existentes. |
|
|
Driver Go |
Aplicações Go que acessam o Tablestore pela interface database/sql padrão. |
|
|
SDK |
Execução programática de SQL em aplicações. |
|
Instruções SQL suportadas
O mecanismo SQL suporta as seguintes instruções.
|
Categoria |
Instrução |
Descrição |
|
CREATE TABLE |
Cria um mapeamento SQL para uma tabela de dados ou índice de busca. |
|
|
ALTER TABLE |
Adiciona ou remove colunas de atributo. |
|
|
DROP MAPPING TABLE |
Remove o mapeamento. Os dados subjacentes não são afetados. |
|
|
SHOW TABLES |
Lista todas as tabelas de mapeamento na instância atual. |
|
|
SHOW INDEX |
Exibe informações do índice. |
|
|
DESCRIBE |
Mostra o esquema da tabela. |
|
|
DROP TABLE |
Exclui uma tabela de dados. Não suportado. |
|
|
SELECT |
Consulta dados com filtragem, funções de agregação (MIN, MAX, SUM, AVG, COUNT), GROUP BY, ORDER BY e LIMIT. |
|
|
SELECT JOIN |
Une dados entre tabelas. Suporta INNER, LEFT, RIGHT e CROSS JOIN. |
|
|
INSERT / UPDATE / DELETE |
Grava, atualiza e exclui dados. |
|
|
Busca de texto completo / Array / Aninhado / Vetor / JSON |
Utiliza índices de busca para pesquisa de texto completo, consultas em arrays, consultas aninhadas, busca vetorial e consultas JSON. |
|
|
Outros |
CREATE INDEX |
Cria um índice. Não suportado. |
Outros recursos:
O conjunto de caracteres é UTF-8, com intercalação binária.
Há suporte para operadores aritméticos, de comparação, lógicos e bit a bit (Operadores SQL).
Os tipos de dados SQL correspondem aos tipos de dados do Tablestore (Mapeamento de tipos de dados).
Há suporte para otimização de seleção de índice e pushdown de computação (Otimização de consulta).
Para obter a lista completa de palavras reservadas e palavras-chave, consulte Palavras reservadas e palavras-chave SQL.
Operadores SQL
O SQL do Tablestore suporta quatro categorias de operadores.
Operadores aritméticos
Use operadores aritméticos nas cláusulas SELECT ou WHERE para cálculos numéricos.
|
Operador |
Nome |
Descrição |
|
A+B |
Adição |
Retorna o resultado de A+B. |
|
A-B |
Subtração |
Retorna o resultado de A-B. |
|
A*B |
Multiplicação |
Retorna o resultado de A*B. |
|
A/B ou A DIV B |
Divisão |
Retorna o resultado de A/B. |
|
A%B ou A MOD B |
Módulo |
Retorna o resto da divisão de A/B. |
Operadores de comparação
Os operadores de comparação avaliam se uma condição é atendida e retornam 1 para VERDADEIRO ou 0 para FALSO. Use-os nas cláusulas WHERE.
|
Operador |
Nome |
Descrição |
|
A:=B |
Atribuição |
Atribui o valor de B a A. |
|
A=B |
Igual a |
Retorna 1 se A for igual a B; caso contrário, 0. |
|
A!=B ou A<>B |
Diferente de |
Retorna 1 se A não for igual a B; caso contrário, 0. |
|
A>B |
Maior que |
Retorna 1 se A for maior que B; caso contrário, 0. |
|
A<B |
Menor que |
Retorna 1 se A for menor que B; caso contrário, 0. |
|
A>=B |
Maior ou igual a |
Retorna 1 se A for maior ou igual a B; caso contrário, 0. |
|
A<=B |
Menor ou igual a |
Retorna 1 se A for menor ou igual a B; caso contrário, 0. |
|
IN (A,B...) |
No conjunto |
Retorna 1 se o valor da coluna corresponder a qualquer valor no conjunto; caso contrário, 0. |
|
BETWEEN A AND B |
No intervalo |
Retorna 1 se o valor for >= A e <= B; caso contrário, 0. |
|
NOT BETWEEN A AND B |
Fora do intervalo |
Retorna 1 se o valor for > B ou < A; caso contrário, 0. |
|
A LIKE B |
Correspondência de padrão |
Corresponde a strings. |
|
A NOT LIKE B |
Sem correspondência de padrão |
Retorna strings sem correspondência. |
Operadores lógicos
Os operadores lógicos avaliam se as expressões são verdadeiras ou falsas e retornam 1 para VERDADEIRO ou 0 para FALSO. Use-os nas cláusulas WHERE para construir condições compostas.
|
Operador |
Nome |
Descrição |
|
A AND B ou A&&B |
E lógico |
Retorna 1 se tanto A quanto B forem VERDADEIROS; caso contrário, 0. |
|
A OR B |
OU lógico |
Retorna 1 se pelo menos um entre A ou B for VERDADEIRO; caso contrário, 0. |
|
A XOR B |
OU EXCLUSIVO lógico |
Retorna 1 se A e B forem diferentes; caso contrário, 0. |
|
NOT A ou !A |
NÃO lógico |
Retorna 1 se A for FALSO; caso contrário, 0. |
Operadores bit a bit
Os operadores bit a bit realizam cálculos em números binários. Os operandos são convertidos para binário durante a operação e o resultado é convertido novamente para decimal.
|
Operador |
Nome |
Descrição |
|
|
A&B |
E bit a bit |
Retorna o E bit a bit de A e B. |
|
|
A |
B |
OU bit a bit |
Retorna o OU bit a bit de A e B. |
|
A^B |
OU EXCLUSIVO bit a bit |
Retorna o OU EXCLUSIVO bit a bit de A e B. |
|
|
~A |
NÃO bit a bit |
Retorna o complemento bit a bit de A. |
Mapeamento de tipos de dados
As colunas SQL correspondem às colunas da tabela com o mesmo nome. Os tipos de dados devem ser compatíveis.
Para colunas de chave primária que usam VARBINARY ou VARCHAR, defina o comprimento máximo como 1024.
BIGINT no SQL e Integer no Tablestore são ambos tipos inteiros de 64 bits.
Apenas BIGINT, VARBINARY e VARCHAR são suportados como tipos de dados de coluna de chave primária.
|
Tipo de dados SQL |
Tipo da tabela de dados |
Tipo do índice de busca |
|
BIGINT |
Integer |
Integer |
|
VARBINARY (chave primária) / MEDIUMBLOB (coluna de atributo) |
Binary |
Binary |
|
VARCHAR (chave primária) / MEDIUMTEXT (coluna de atributo) |
String |
Keyword |
|
Text |
||
|
DOUBLE |
Double |
Double |
|
BOOL |
Boolean |
Boolean |
Limites
A consulta SQL aplica-se ao Modelo de Coluna Larga e ao Modelo TimeSeries.
Não há suporte para transações.
As palavras-chave SQL são palavras reservadas e não diferenciam maiúsculas de minúsculas. Para usar uma palavra-chave como nome de tabela ou coluna, escape-a com
. Para a lista completa, consulte Palavras reservadas e palavras-chave SQL.O mecanismo SQL não diferencia maiúsculas de minúsculas para nomes de colunas.
SELECT Aa FROM tequivale aSELECT aa FROM t. Como a tabela subjacente do Tablestore diferencia maiúsculas de minúsculas, o mecanismo SQL converte todos os nomes de colunas para letras minúsculas para fins de correspondência. A tabela original não deve conter colunas que difiram apenas quanto à caixa.
Para outros limites, consulte Limites em consultas SQL.
Faturamento
As consultas SQL não geram taxas adicionais. A precificação padrão aplica-se a varreduras de tabelas, consultas de índice e operações de leitura/gravação de dados durante a execução da consulta. Para mais detalhes, consulte Itens faturáveis da consulta SQL.