Todos os produtos
Search
Central de documentação

AnalyticDB:Consultar e importar dados do Tablestore

Última atualização: Jun 27, 2026

O AnalyticDB for MySQL permite consultar dados do Tablestore diretamente por meio de tabelas externas ou importá-los para tabelas internas para análises recorrentes. Utilize a consulta direta para acessos ad hoc. Opte pela importação em cenários que exigem alta performance ou consultas frequentes, pois a consulta em uma tabela interna é mais rápida do que em uma tabela externa.

Pré-requisitos

Antes de começar, verifique se você possui:

  • Um cluster do AnalyticDB for MySQL nas edições Enterprise, Basic ou Data Lakehouse.

  • Caso sua instância do Tablestore esteja vinculada a uma virtual private cloud (VPC), o cluster do AnalyticDB for MySQL deve estar na mesma VPC.

Contexto

Uma instância do Tablestore gerencia tabelas e dados no serviço, funcionando de forma equivalente a um banco de dados. Cada instância do Tablestore corresponde a um schema ou banco de dados no AnalyticDB for MySQL.

Acesso à rede: Se nenhuma VPC estiver vinculada à instância do Tablestore, o AnalyticDB for MySQL acessa os dados diretamente. Caso haja uma VPC vinculada, o cluster do AnalyticDB for MySQL precisa estar na mesma VPC.

Dados de exemplo

Os exemplos neste tópico utilizam uma tabela do Tablestore chamada person com os dados a seguir. Ignore esta seção caso já possua dados de source.

id (chave primária)

name

age

1

james

10

2

bond

20

3

jack

30

4

lucy

40

Abrir o editor SQL

  1. Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster desejado e clique em seu ID.

  2. No painel de navegação à esquerda, escolha Job Development > SQL Development.

Consultar dados do Tablestore

Etapa 1: Crie um banco de dados externo

CREATE EXTERNAL DATABASE adb_external_db;

Etapa 2: Crie uma tabela externa

A tabela externa deve corresponder à tabela do Tablestore em nomes de campos, quantidade e ordem. Os tipos de dados dos campos também precisam ser compatíveis. Para obter detalhes sobre o mapeamento de tipos de dados, consulte Mapeamentos de tipos de dados.

O exemplo a seguir cria uma tabela chamada person no banco de dados adb_external_db:

CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_db.person (
    id    int,
    name  string,
    age   int
)
ENGINE = 'OTS'
TABLE_PROPERTIES = '{
    "mapped_name": "person",
    "location": "https://w0****la.cn-hangzhou.vpc.tablestore.aliyuncs.com"
}';

Parâmetro

Descrição

ENGINE='OTS'

Mecanismo de armazenamento para leitura e gravação de dados do Tablestore. Defina sempre como OTS.

mapped_name

Nome da tabela na instância do Tablestore. Para localizar o nome da tabela, acesse o console do Tablestore e abra a página All Instances.

location

URL da VPC da instância do Tablestore. Para encontrar a URL, acesse o console do Tablestore e abra a página All Instances.

Etapa 3: Consultar os dados

Após a criação da tabela externa, o AnalyticDB for MySQL mapeia automaticamente os dados da tabela do Tablestore. Execute a instrução SELECT a seguir para consultar os dados:

SELECT * FROM adb_external_db.person;

Saída esperada:

+------+-------+------+
| id   | name  | age  |
+------+-------+------+
|    1 | james |   10 |
|    2 | bond  |   20 |
|    3 | jack  |   30 |
|    4 | lucy  |   40 |
+------+-------+------+
4 rows in set (0.35 sec)

Importar dados do Tablestore para o AnalyticDB for MySQL

A importação de dados do Tablestore para uma tabela interna do AnalyticDB for MySQL possibilita consultas recorrentes mais rápidas. Existem três métodos de gravação disponíveis — escolha aquele que melhor atende aos seus requisitos de deduplicação e desempenho.

Etapa 1: Crie um banco de dados

CREATE DATABASE adb_demo;

Etapa 2: Crie uma tabela de destino

A tabela de destino deve ter a mesma quantidade e ordem de campos da tabela externa. Os tipos de dados dos campos precisam ser compatíveis.

CREATE TABLE IF NOT EXISTS adb_demo.adb_import_test (
    id   int,
    name string,
    age  int
)
DISTRIBUTED BY HASH(id);

Etapa 3: Gravar dados

Selecione um método de gravação conforme a estratégia desejada para tratar chaves primárias duplicadas:

Método

Tratamento de duplicatas

Sintaxe

INSERT INTO

Ignora duplicatas (equivalente a INSERT IGNORE INTO)

INSERT INTO ... SELECT ...

INSERT OVERWRITE

Substitui duplicatas

INSERT OVERWRITE ... SELECT ...

SUBMIT JOB

Substituição assíncrona

SUBMIT JOB INSERT OVERWRITE ... SELECT ...

Método 1: INSERT INTO (ignorar duplicatas)

Caso já exista uma linha com chave primária duplicada, essa linha será ignorada.

INSERT INTO adb_demo.adb_import_test
SELECT * FROM adb_external_db.person;

Verifique o resultado:

SELECT * FROM adb_demo.adb_import_test;

Saída esperada:

+------+-------+------+
| id   | name  | age  |
+------+-------+------+
|    1 | james |   10 |
|    2 | bond  |   20 |
|    3 | jack  |   30 |
|    4 | lucy  |   40 |
+------+-------+------+

Método 2: INSERT OVERWRITE (substituir duplicatas)

Se houver uma linha com chave primária duplicada, a linha existente será sobrescrita.

INSERT OVERWRITE adb_demo.adb_import_test
SELECT * FROM adb_external_db.person;

Método 3: SUBMIT JOB (importação assíncrona)

Na maioria dos casos, utilize SUBMIT JOB para executar a importação de forma assíncrona. É possível adicionar a dica /*+ direct_batch_load=true*/ para acelerar o job.

SUBMIT JOB
INSERT OVERWRITE adb_demo.adb_import_test
SELECT * FROM adb_external_db.person;

A instrução retorna um ID de job:

+---------------------------------------+
| job_id                                |
+---------------------------------------+
| 2020112122202917203100908203303****** |

Para monitorar o job assíncrono, consulte Enviar um job de importação assincronamente.

Mapeamentos de tipos de dados

A tabela a seguir descreve os mapeamentos de tipos de dados entre o Tablestore e o AnalyticDB for MySQL.

Tablestore

AnalyticDB for MySQL

INTEGER (8 bytes)

BIGINT (8 bytes)

STRING

VARCHAR

BINARY

BINARY

DOUBLE

DOUBLE

BOOLEAN

BOOLEAN

Próximos passos

  • Para entender como a instrução INSERT INTO trata duplicatas, consulte INSERT INTO.

  • Para saber mais sobre opções de importação assíncrona e a sintaxe INSERT OVERWRITE SELECT, consulte INSERT OVERWRITE SELECT.