Todos os produtos
Search
Central de documentação

Tablestore:Uso do Tablestore com PrestoDB

Última atualização: Oct 09, 2026

O PrestoDB é um mecanismo de consulta SQL distribuído e open source para big data que utiliza uma arquitetura de processamento massivamente paralelo (MPP). Ele oferece suporte a diversas fontes de dados, como MySQL, Elasticsearch e Tablestore. Após conectar o PrestoDB ao Tablestore, use-o para consultar, analisar, gravar e importar dados no Tablestore.

Informações gerais

O PrestoDB é um mecanismo de consulta SQL distribuído e open source para big data baseado em arquitetura MPP. Sua compatibilidade abrange várias fontes de dados, incluindo MySQL, Elasticsearch e Tablestore. Essa ferramenta atende a diferentes necessidades de processamento de dados, funcionando como ferramenta de consulta, ferramenta de extração, transformação e carga (ETL), ferramenta de teste de carga ou mecanismo de consulta unificado.

  • Como ferramenta de consulta, o PrestoDB permite executar consultas SQL para desenvolvimento diário e solução de problemas.

  • Na função de ferramenta ETL, ele viabiliza a replicação de dados entre tabelas ou instâncias e a cópia de informações provenientes de fontes distintas.

  • Para testes de carga, o PrestoDB suporta varredura ou gravação de dados em lote.

  • Atuando como mecanismo de consulta unificado em uma camada intermediária de dados, ele possibilita a conexão com múltiplas fontes heterogêneas.

Para integrar o Tablestore ao PrestoDB, estabeleça uma conexão primeiro. Depois disso, use o PrestoDB para consultar, analisar, gravar e importar dados armazenados no Tablestore.

Pré-requisitos

  • Tenha um servidor Linux ou macOS com os seguintes softwares instalados. Este tópico utiliza um servidor Linux como exemplo.

    Nota

    Caso não possua um servidor Linux, utilize uma instância do Elastic Compute Service (ECS). Para mais detalhes, consulte Create an instance using the wizard.

    • Java 8 (64 bits) e ambiente de desenvolvimento Python 3 instalados.

    • PrestoDB instalado.

    • Baixe o arquivo prestodb-tablestore-connector correspondente à sua versão do PrestoDB. Faça o upload e descompacte o arquivo no diretório plugin da pasta de instalação do PrestoDB.

      A tabela abaixo detalha a compatibilidade entre as versões do plugin prestodb-tablestore-connector e do PrestoDB.

      Versão do plugin

      Versão do PrestoDB

      Descrição

      prestodb-tablestore-connector-202401

      0.280

      Lançamento inicial. Compatível com PrestoDB 0.280 e versões posteriores.

  • Tenha em mãos as informações necessárias do Tablestore, como conta de acesso, detalhes da instância e dados da tabela.

  • Crie um AccessKey para um usuário do Resource Access Management (RAM) com permissões para operar o Tablestore. Para mais informações, consulte Obtain an AccessKey pair.

    Nota

    Se o usuário RAM não tiver as permissões necessárias para o Tablestore, conceda-as antes de prosseguir. Consulte Grant permissions to a RAM user using a RAM policy para obter instruções.

Observações

  • Este recurso aplica-se apenas a wide table models.

  • O modo de gravação padrão do PrestoDB é UpdateRow; o modo PutRow não é suportado. Para gravar dados no Tablestore via PrestoDB, verifique se o parâmetro Allow Update da tabela de dados está definido como Yes. Caso contrário, a operação falhará.

    Importante
    • Não é possível gravar dados via PrestoDB em tabelas que utilizam tempo de vida (TTL) de índice de busca. Isso ocorre porque o uso de TTL exige definir o parâmetro Allow Update como No (valor diferente de -1).

    • Para utilizar o modo de gravação PutRow, entre no grupo DingTalk 36165029092 (Tablestore Technical Support-3) e fale conosco.

    Verifique a configuração Allow Update na aba Basic Details da tabela de dados no console ou chamando a operação DescribeTable.

Mapeamento de tipos de campo

Tablestore e PrestoDB utilizam tipos de dados distintos. A tabela a seguir apresenta o mapeamento entre esses tipos.

Tipo de campo no Tablestore

Tipo de campo no PrestoDB

string

varchar

integer

bigint

double

double

boolean

boolean

binary

varbinary

Procedimento

Para usar o Tablestore com PrestoDB, conecte o PrestoDB ao Tablestore, inicie a interface de linha de comando (CLI) SQL do PrestoDB, crie um schema e uma tabela de mapeamento e, em seguida, opere os dados via SQL.

Etapa 1: Conectar o PrestoDB ao Tablestore

Após instalar o PrestoDB, configure o catálogo e o schema para estabelecer a conexão com o Tablestore. O arquivo de configuração do catálogo encontra-se em etc/catalog/tablestore.properties.

Detalhes da configuração

O arquivo de configuração do catálogo Presto inclui definições para o conector, modo de configuração do schema e outros parâmetros. Defina o conector como tablestore. Configure o schema de duas formas: arquivo estático local ou configuração dinâmica via meta table.

A tabela abaixo descreve os modos de configuração de schema.

Modo de configuração de schema

Descrição

Fluxo de configuração

Configuração por arquivo estático local

É necessário predefinir as informações de recursos do Tablestore (conta de acesso, detalhes da instância e metadados da tabela de mapeamento) em um arquivo estático.

Importante

Ao configurar os metadados da tabela, inclua todas as colunas de chave primária. A ordem dessas colunas deve corresponder exatamente à ordem das chaves primárias na tabela do Tablestore.

Ao acessar o Tablestore via PrestoDB, somente as tabelas das instâncias configuradas no arquivo estático estarão disponíveis.

Antes de iniciar o PrestoDB, siga estes passos:

  1. Defina o modo de schema como file e especifique o caminho completo do arquivo estático.

  2. Defina a conta de acesso, as informações da instância e os dados da tabela no arquivo estático.

(Recomendado) Configuração dinâmica via meta table

Basta configurar as informações do metastore usado para armazenar o schema. Não é preciso predefinir informações de recursos do Tablestore.

Crie schemas e tabelas dinamicamente para definir os recursos do Tablestore durante o acesso via PrestoDB. Ao criar um schema, configure a conta e a instância; ao criar uma tabela, defina as informações de mapeamento.

  1. Antes de executar o PrestoDB, defina o modo de schema como meta-table e configure as informações do metastore para armazenamento do schema.

  2. Após iniciar o PrestoDB, use as instruções create schema e create table para criar dinamicamente o schema e a tabela de mapeamento necessários.

Conforme mostrado na tabela, o método de arquivo estático local exige a predefinição das informações da tabela. Sem essa configuração prévia, adicione os dados manualmente antes do acesso. Já a configuração dinâmica via meta table permite criar as informações da tabela sob demanda, conforme o cenário de negócio, oferecendo maior flexibilidade. Recomendamos o uso do método de configuração dinâmica via meta table.

Procedimento

Especifique o modo de configuração de schema no arquivo de configuração do catálogo e defina os parâmetros correspondentes. O procedimento abaixo descreve a configuração da conexão usando o método dinâmico com meta table.

  1. Acesse o diretório de instalação do PrestoDB e crie um arquivo tablestore.properties no diretório etc/catalog/.

    Importante

    Antes de editar o arquivo, certifique-se de ter permissões de execução sobre ele.

    A estrutura de diretórios abaixo indica a localização do arquivo de configuração do catálogo.

    etc
      catalog
        tablestore.properties
      config.properties
      jvm.config
      log.properties
      node.properties
  2. Edite o arquivo tablestore.properties. Adapte o exemplo de configuração conforme suas necessidades e copie-o para o arquivo.

    Para usar a configuração dinâmica com meta table, defina tablestore.schema-mode como meta-table.

    Nota

    Para utilizar a configuração por arquivo estático local, defina tablestore.schema-mode como file e aponte tablestore.schema-file para o caminho completo do arquivo estático. Em seguida, configure as informações do schema nesse arquivo. Consulte Server configuration para mais detalhes.

    connector.name=tablestore
    tablestore.schema-mode=meta-table
    #tablestore.schema-mode=file
    tablestore.schema-file=/users/test/tablestore/presto/tablestore.schema
    tablestore.meta-instance=metastoreinstance
    tablestore.endpoint=http://metastoreinstance.cn-hangzhou,ots.aliyuncs.com/
    tablestore.accessid=****************
    tablestore.accesskey=**************************
    tablestore.meta-table=meta_table
    tablestore.auto-create-meta-table=true

    A tabela a seguir descreve os itens de configuração.

    Item de configuração

    Exemplo

    Obrigatório

    Descrição

    connector.name

    tablestore

    Sim

    Nome do conector. Defina este parâmetro obrigatoriamente como tablestore.

    tablestore.schema-mode

    meta-table

    Sim

    Modo de configuração do schema. Defina como meta-table.

    tablestore.meta-instance

    metastoreinstance

    Sim

    Instância do Tablestore destinada ao armazenamento de metadados. Modifique o valor conforme necessário. Consulte Instances para mais informações.

    Importante

    Certifique-se de que a instância configurada exista em sua conta Alibaba Cloud.

    tablestore.endpoint

    http://metastoreinstance.cn-hangzhou,ots.aliyuncs.com/

    Sim

    Endpoint da instância do Tablestore usada para armazenar metadados. Altere o valor conforme necessário. Veja Endpoints para detalhes.

    tablestore.accessid

    Sim

    AccessKey ID e AccessKey secret do usuário com permissão de acesso à instância que armazena os metadados.

    tablestore.accesskey

    tablestore.meta-table

    meta_table

    Sim

    Nome da tabela no Tablestore usada para armazenar metadados. Ajuste o valor conforme sua necessidade.

    tablestore.auto-create-meta-table

    true

    Não

    Define se a tabela de metadados será criada automaticamente. O valor padrão é true, indicando criação automática junto com o schema.

  3. Salve o arquivo de configuração e saia.

    Nota

    Execute o comando cat para confirmar que a configuração foi salva corretamente.

Etapa 2: Executar a CLI SQL do Presto

Com a conexão estabelecida, inicie o Presto Server e execute instruções SQL.

  1. Obtenha o arquivo executável do cliente.

    1. Baixe o cliente PrestoDB.

      Este tópico usa presto-cli-0.280-executable.jar como exemplo.

    2. Salve o cliente PrestoDB no diretório bin da pasta de instalação do PrestoDB.

    3. No diretório bin da instalação do PrestoDB, execute o comando abaixo para obter o arquivo executável do cliente.

      # Rename the PrestoDB client file to presto. Replace presto-cli-0.280-executable.jar with the name of your client version.
      mv presto-cli-0.280-executable.jar presto
      # Grant the user permissions to operate the presto file.
      chmod +x presto
  2. No diretório bin da instalação do PrestoDB, execute o comando para iniciar o Presto Server.

    Importante

    Ao iniciar o Presto Server, inicie o coordenador (coordinator) e pelo menos um trabalhador (worker).

    # You can start the server in the foreground or background. The foreground mode is more convenient for viewing operational logs.
    # Method 1: Run in the background
    ./launcher start
    # Method 2: Run in the foreground
    ./launcher run
  3. No diretório bin da instalação do PrestoDB, execute o seguinte comando para iniciar a CLI SQL.

    Nota
    • Por padrão, o PrestoDB opera na porta 8080. Para alterá-la, modifique a configuração http-server.http.port no arquivo etc/config.properties.

    • Após alterar configurações, reinicie o servidor para aplicar as mudanças.

    • No comando, ./presto representa o caminho relativo do executável do cliente dentro do diretório bin da instalação do PrestoDB.

    ./presto --server localhost:8080 --catalog tablestore --schema default

    A tabela abaixo detalha os itens de configuração.

    Item de configuração

    Exemplo

    Obrigatório

    Descrição

    --server

    localhost:8080

    Sim

    URI do Presto Server. Substitua o valor conforme necessário. Esta configuração deve ser idêntica ao parâmetro discovery.uri no arquivo etc/config.properties do diretório de instalação do PrestoDB.

    --catalog

    tablestore

    Sim

    Nome do arquivo de configuração do catálogo. Defina como tablestore, correspondendo ao nome do arquivo criado.

    --schema

    default

    Sim

    Configuração do schema. Mantenha o valor padrão.

Etapa 3: Criar um schema e uma tabela de mapeamento

Ao optar pela configuração dinâmica de schema com meta table, crie manualmente um schema para configurar a instância do Tablestore conectada e realizar a autenticação do usuário. Em seguida, crie uma tabela de mapeamento para a tabela do Tablestore, permitindo consultas e análises.

Nota

Esta etapa é desnecessária se você estiver utilizando o modo de configuração por arquivo estático local.

  1. Execute o comando abaixo para criar um schema.

    O exemplo a seguir demonstra a criação de um Schema chamado testdb para acessar a instância myinstance do Tablestore.

    CREATE SCHEMA tablestore.testdb
    WITH (
      endpoint = 'https://myinstance.cn-hangzhou.ots.aliyuncs.com',
      instance_name = 'myinstance',
      access_id = '************************',
      access_key = '********************************'
    );

    Consulte a tabela abaixo para a descrição dos parâmetros.

    Parâmetro

    Exemplo

    Obrigatório

    Descrição

    endpoint

    https://myinstance.cn-hangzhou.ots.aliyuncs.com

    Sim

    Endpoint da instância do Tablestore. Para mais informações, consulte Endpoints.

    instance_name

    myinstance

    Sim

    Nome da instância do Tablestore. Consulte Instances para detalhes.

    access_id

    Sim

    AccessKey ID da conta Alibaba Cloud ou do usuário RAM.

    access_key

    Sim

    AccessKey secret da conta Alibaba Cloud ou do usuário RAM.

  2. Execute o comando use <SCHEMA_NAME>; para selecionar o schema criado.

    Substitua <SCHEMA_NAME> pelo nome do seu schema. Use o comando show schemas; para listar os schemas disponíveis.

  3. Execute o comando a seguir para criar uma tabela de mapeamento para a tabela de dados do Tablestore.

    Importante

    Atente-se aos pontos abaixo ao criar uma tabela de mapeamento:

    • Garanta que os tipos de campo na tabela de mapeamento correspondam aos da tabela de dados do Tablestore. Consulte Field type mapping para mais informações.

    • O nome da tabela de mapeamento deve ser idêntico ao nome da tabela no Tablestore.

    • A propriedade table_name na instrução CREATE TABLE vincula a tabela do PrestoDB à tabela real no Tablestore. É possível ter múltiplas tabelas de mapeamento com nomes diferentes apontando para a mesma tabela de dados.

    • A tabela de mapeamento deve conter todas as colunas de chave primária da tabela de dados, mas pode incluir apenas um subconjunto das colunas de atributo.

    • Os nomes e a ordem das colunas de chave primária na tabela de mapeamento devem coincidir com os da tabela do Tablestore. Mapeie cada coluna de atributo à sua equivalente no Tablestore usando o parâmetro origin_name.

    Considere uma tabela de dados chamada main_table, contendo duas colunas de chave primária (gid e uid) e três colunas de atributo (col1, col2 e col3).

    O exemplo SQL abaixo cria uma tabela de mapeamento com o mesmo nome para a tabela de dados main_table do Tablestore.

    CREATE TABLE if not exists main_table
    (
       gid bigint,
       uid bigint,
       c1 boolean with (origin_name = 'col1'),
       c2 bigint with (origin_name = 'col2'),
       c3 varchar with (origin_name = 'col3')
    ) WITH (
       table_name = 'main_table'
    );

Etapa 4: Operar dados com SQL

Importante

Antes de manipular dados do Tablestore via SQL, assegure-se de ter executado o comando use <SCHEMA_NAME>; para selecionar o schema adequado.

Instruções SQL permitem consultar configurações de schema e metadados de tabelas, além de ler e gravar dados nas tabelas do Tablestore. Para mais exemplos de SQL, consulte Common SQL examples.

  1. Consulte as configurações de schema.

    • Obtenha a lista de schemas

      show schemas;
    • Liste as tabelas de um schema específico

      show tables;
  2. Visualize os metadados de uma tabela específica

    Substitua <TABLE_NAME> pelo nome real da tabela.

    describe <TABLE_NAME>;
  3. Opere os dados.

    Leia e grave dados no Tablestore.

    • Grave dados

      • Insira uma linha de dados

        O exemplo abaixo insere uma linha de dados na tabela main_table.

        insert into main_table values(10001,10001,true,100,'hangzhou');
      • Importe dados em lote

        Importante

        Antes de importar dados em lote, verifique se a tabela de destino já foi criada e se seu schema corresponde ao da tabela de origem.

        O exemplo a seguir importa dados das colunas gid, uid, c1, c2 e c3 da tabela main_table para sampletable, filtrando registros onde gid é maior que 0 e uid é menor que 10000.

        insert into sampletable select gid, uid, c1, c2, c3 from main_table where gid > 0 and uid < 100000;
    • Leia dados

      Este exemplo consulta linhas na tabela sampletable onde o valor da coluna gid é maior que 0, uid é menor que 10 e c1 é verdadeiro.

      select * from sampletable where gid > 0 and uid < 10 and c1 = true;

Faturamento

Quando um mecanismo de computação acessa o Tablestore, o service mede e fatura o uso com base no throughput de leitura e gravação das requisições realizadas. Para mais informações, consulte Billing overview.

Referências

  • Outros mecanismos de computação, como MaxCompute, Spark, Function Compute e Flink, também podem consultar e analisar dados em tabelas do Tablestore. Consulte Compute and analysis overview para saber mais. Além disso, utilize os recursos de consulta SQL e agregação por índice de busca do próprio Tablestore para análise de dados. Veja SQL query e Search index.

  • O service de integração de dados do DataWorks também possibilita a migração de dados do Tablestore entre tabelas ou instâncias. Consulte Synchronize data from a Tablestore table to another Tablestore table para detalhes.

  • Para visualizar dados em gráficos ou outros formatos, utilize DataV ou Grafana. Consulte Data visualization para mais informações.