Todos os produtos
Search
Central de documentação

Tablestore:Acessar o Tablestore a partir do MaxCompute

Última atualização: Jul 03, 2026

As tabelas externas do MaxCompute permitem executar análises SQL diretamente nos dados do Tablestore, sem necessidade de migração. Este guia orienta você na criação de uma tabela externa no MaxCompute mapeada para uma tabela de dados do Tablestore na mesma conta Alibaba Cloud.

Contexto

O MaxCompute é um serviço de computação de big data totalmente gerenciado que oferece data warehousing e análise em escala de petabytes. Com uma única instrução DDL, crie uma tabela externa no MaxCompute para se conectar a uma fonte de dados externa e permitir a ingestão e a exportação de dados. Diferentemente das tabelas nativas do MaxCompute, que armazenam apenas dados estruturados, as tabelas externas suportam dados estruturados e não estruturados.

O Tablestore e o MaxCompute utilizam sistemas de tipos diferentes. A tabela a seguir apresenta o mapeamento de tipos de dados entre os dois serviços.

Tablestore

MaxCompute

STRING

STRING

INTEGER

BIGINT

DOUBLE

DOUBLE

BOOLEAN

BOOLEAN

BINARY

BINARY

Pré-requisitos

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

  1. Ative o MaxCompute.

  2. Um workspace do MaxCompute. Para mais informações, consulte Criar um workspace.

  3. Um par de AccessKey para autenticação.

  4. Autorização do MaxCompute para acessar o Tablestore no console RAM. Para mais informações, consulte Autorização entre contas.

  5. Uma instância e uma tabela de dados do Tablestore criadas no console do Tablestore. Para mais informações, consulte criar uma instância e criar uma tabela de dados.

    Este guia utiliza os seguintes recursos de exemplo:

    • Nome da instância: cap1

    • Nome da tabela de dados: vehicle_track

    • Chaves primárias: vid (INTEGER), gt (INTEGER)

    • Endpoint: https://cap1.cn-hangzhou.ots-internal.aliyuncs.com

      Nota

      Use o endpoint privado da instância do Tablestore ao acessá-la a partir do MaxCompute.

    • Controle de acesso à rede configurado para a instância. Por padrão, o Tablestore permite acesso de qualquer rede. Mantenha a configuração padrão conforme descrito abaixo:

      A configuração é a seguinte: O Access Type padrão é Custom. Em Allowed Network Types, as opções VPC, classic network e public network estão selecionadas. Em Allowed Source Types, a opção Trusted Gateway (Console) está selecionada. Clique em Set para salvar as configurações.

Etapa 1: Instalar e configurar o cliente MaxCompute

  1. Baixe e descompacte o cliente MaxCompute.

    Nota

    Verifique se o Java Runtime Environment (JRE) 1.7 ou superior está instalado em sua máquina.

  2. Edite o arquivo conf/odps_config.ini com a seguinte configuração:

    # The AccessKey pair of your Alibaba Cloud account, which consists of an AccessKey ID and an AccessKey secret. To view the AccessKey pair, log on to the Alibaba Cloud Management Console, hover over your profile picture in the top-right corner, and click AccessKey Management.
    access_id=*******************
    access_key=*********************
    # The project you want to access.
    project_name=my_project
    # The endpoint for the MaxCompute service.
    end_point=https://service.odps.aliyun.com/api
    # The endpoint for the MaxCompute Tunnel service.
    tunnel_endpoint=https://dt.odps.aliyun.com
    # The Logview URL that the client returns after a job is run. Open this URL to view detailed job execution information.
    log_view_host=http://logview.odps.aliyun.com
    # Specifies whether to enable access over HTTPS.
    https_check=true
    Nota

    No arquivo odps_config.ini, o sinal de cerquilha (#) indica um comentário, enquanto no cliente MaxCompute, dois hífens (--) indicam um comentário.

  3. Execute bin/odpscmd.bat e insira show tables;.

    Se as tabelas do projeto atual do MaxCompute forem exibidas, a configuração estará correta.

    odps@ MCOTStest>show tables;
    ALIYUN$document@aliyun-test.com:bank_data
    ALIYUN$document@aliyun-test.com:result_table
    OK

Etapa 2: Criar uma tabela externa

Crie uma tabela externa do MaxCompute chamada ots_vehicle_track mapeada para a tabela de dados vehicle_track do Tablestore.

A tabela de dados de destino possui as seguintes propriedades:

  • Nome da instância: cap1

  • Nome da tabela de dados: vehicle_track

  • Chaves primárias: vid (INTEGER), gt (INTEGER)

  • Endpoint: https://cap1.cn-hangzhou.ots-internal.aliyuncs.com

CREATE EXTERNAL TABLE IF NOT EXISTS ots_vehicle_track
(
vid bigint,
gt bigint,
longitude double,
latitude double,
distance double ,
speed double,
oil_consumption double
)
STORED BY 'com.aliyun.odps.TableStoreStorageHandler' -- (1)
WITH SERDEPROPERTIES ( -- (2)
'tablestore.columns.mapping'=':vid, :gt, longitude, latitude, distance, speed, oil_consumption', -- (3)
'tablestore.table.name'='vehicle_track' -- (4)
)
LOCATION 'tablestore://cap1.cn-hangzhou.ots-internal.aliyuncs.com'; -- (5)

A tabela a seguir descreve os parâmetros da instrução DDL.

Número

Parâmetro

Descrição

(1)

com.aliyun.odps.TableStoreStorageHandler

Handler de armazenamento integrado do MaxCompute para o Tablestore. Define como o MaxCompute lê e grava dados no Tablestore.

(2)

SERDEPROPERITES

Interface de propriedades de serialização e desserialização. Duas propriedades são obrigatórias ao usar o TableStoreStorageHandler: tablestore.columns.mapping e tablestore.table.name.

(3)

tablestore.columns.mapping

Obrigatório. Especifica quais colunas do Tablestore o MaxCompute acessará, incluindo colunas de chave primária e colunas de atributo. Um nome de coluna prefixado com dois pontos (:) indica uma coluna de chave primária. Neste exemplo, :vid e :gt são chaves primárias; as demais colunas são de atributo. Forneça todas as colunas de chave primária da tabela do Tablestore. Para colunas de atributo, liste apenas aquelas que o MaxCompute precisa acessar.

(4)

tablestore.table.name

Nome da tabela do Tablestore a ser acessada. Se a tabela especificada não existir, o MaxCompute retornará um erro. O MaxCompute não cria tabelas do Tablestore automaticamente.

(5)

LOCATION

Informações da instância do Tablestore, incluindo o nome da instância e o endpoint.

Etapa 3: Consultar dados do Tablestore por meio da tabela externa

Importante

Alta concorrência aumenta a carga na instância do Tablestore e pode causar maior latência ou falhas em requisições de workloads online. Para controlar o paralelismo, execute set odps.sql.mapper.split.size=256;. Um valor maior reduz a concorrência; um valor menor a aumenta. Para mais informações, consulte SQL Tuning.

Após criar a tabela externa, os dados do Tablestore ficam disponíveis no ecossistema do MaxCompute. Use o SQL do MaxCompute para consultar esses dados.

-- Calculate the average speed and fuel consumption of vehicles with a VID less than 4 before timestamp 1469171387.
select vid,count(*),avg(speed),avg(oil_consumption) from ots_vehicle_track where vid <4 and gt<1469171387  group by vid;

Resultado de exemplo:

odps@ analysis_vehicle>select vid,count(*), avg(speed),avg(oil_consumption) from ots_vehicle_track where vid <4 and gt<1469171387  group by vid;
ID = 20170306160538185gsvlupk2
Log view:
http://logview.odps.aliyun.com/logview/?h=http://service.odps.aliyun.com/api&p=analysis_vehicle&i=20170306160538185gsvlupk2&token=ajhxdXZNWWVPcTNrWkFOS0xpSGtoM2tFWGEwPSxPRFBT
09CTzoxNjA0MzM3MzgzMTc0NjE5LDE0ODk0MjExMzgseyJTdGF0ZW1lbnQiOlt7IkFjdGlvbiI6WyJvZHBzOlJlYWQiXSwiRWZmZWN0IjoiQWxsb3ciLCJSZXNvdXJjZSI6WyJhY3M6b2RwczoqOnByb2plY3RzL2NJSZXNvdXJjZSI6WyJhY3M6b2RwczoqOnByb2plY3RzL2
aGljbGUvaW5zdGFuY2VzLzIwMTcwMzA2MTYwNTM4MTg1Z3N2bHVwazIiXX1dLCJWZXJzaW9uIjoiMSJ9
aGljbGUvaW5zdGFuY2VzLzIwMTcwMzA2MTYwNTM4MTg1Z3N2bHVwazIiXX1dLCJWZXJzaW9uIjoiMSJ9
Job Queueing.
         STAGES      STATUS   TOTAL  COMPLETED  RUNNING  PENDING  BACKUP
M1_job_0 ..............   TERMINATED      1        1        0        0       0
R2_1_job_0 .............   TERMINATED      1        1        0        0       0
STAGES: 02/02    [==========================>>] 100%  ELAPSED TIME: 51.18 s
Summary:
+------------+------------+----------------------+----------------------+
| vid        | _c1        | _c2                  | _c3                  |
+------------+------------+----------------------+----------------------+
| 0          | 47         | 0.11622589796672624  | 6.5155061805308145   |
| 1          | 47         | 0.11200649789552555  | 6.5673983001829885   |
| 2          | 47         | 0.098971763146085    | 6.738738527883797    |
| 3          | 47         | 0.11503916531605494  | 6.6038902692751895   |
+------------+------------+----------------------+----------------------+