Todos os produtos
Search
Central de documentação

Tablestore:Use o PrestoDB para acessar o Tablestore

Última atualização: Jun 30, 2026

O PrestoDB é um mecanismo de consulta SQL distribuído e open source para big data, baseado na arquitetura de processamento massivamente paralelo (MPP). Ele se conecta a diversas fontes de dados, como MySQL, Elasticsearch e Tablestore. Após conectar o PrestoDB ao Tablestore, execute instruções SQL no PrestoDB para consultar e analisar dados, além de gravar e importar informações nesse serviço.

Informações gerais

O PrestoDB é um mecanismo de consulta SQL distribuído e open source para big data, baseado na arquitetura de processamento massivamente paralelo (MPP). Ele se conecta a diversas fontes de dados, como MySQL, Elasticsearch e Tablestore. O PrestoDB funciona como ferramenta de consulta, extração, transformação e carga (ETL), teste de estresse ou mecanismo de consulta unificado, atendendo aos requisitos de processamento de dados em diferentes cenários.

  • Como ferramenta de consulta para desenvolvimento diário e solução de problemas, o PrestoDB permite executar instruções SQL para consultar e analisar dados em tabelas.

  • Na função de ferramenta ETL, o PrestoDB replica dados entre tabelas ou instâncias e copia dados de fontes distintas.

  • Para testes de estresse, o PrestoDB verifica ou grava vários registros de dados simultaneamente.

  • Como mecanismo de consulta unificado na camada intermediária de dados, o PrestoDB integra-se a várias fontes de dados heterogêneas.

Antes de acessar o Tablestore com o PrestoDB, conecte-o ao serviço. Após estabelecer essa conexão, execute instruções SQL no PrestoDB para consultar e analisar dados, gravar informações e importar dados para o Tablestore.

Pré-requisitos

  • Um servidor com sistema operacional Linux ou macOS deve estar disponível. Neste exemplo, utiliza-se um servidor Linux.

    Nota

    Caso não tenha um servidor Linux disponível, recomendamos usar uma instância do Elastic Compute Service (ECS) com esse sistema operacional. Para mais informações, consulte Criar e gerenciar uma instância ECS pelo console do ECS (versão express).

    • Java 8 de 64 bits e Python 3 devem estar instalados no servidor.

    • O PrestoDB deve estar instalado no servidor.

    • Baixe o arquivo prestodb-tablestore-connector correspondente à versão do PrestoDB e faça upload dele para o diretório plugin dentro do diretório de instalação do PrestoDB. Extraia o arquivo no diretório de instalação.

      A tabela a seguir descreve o mapeamento entre a versão do plug-in prestodb-tablestore-connector e a versão do PrestoDB.

      Versão do plug-in

      Versão do PrestoDB

      Descrição

      prestodb-tablestore-connector-0.280.tar.gz

      0.280

      Esta é a primeira versão do plug-in. O PrestoDB 0.280 ou superior oferece suporte a este plug-in.

  • Obtenha as informações do Tablestore necessárias para conectar o PrestoDB ao serviço, incluindo a conta de acesso, os detalhes da instância e as informações da tabela.

  • Obtenha um par de AccessKey para um usuário RAM com permissões para gerenciar o Tablestore. Para mais informações, consulte Obter um par de AccessKey.

    Nota

    Se o usuário RAM não tiver permissões para gerenciar o Tablestore, conceda-as antes de prosseguir. Para mais informações, consulte Usar uma política RAM para conceder permissões a um usuário RAM.

  • Observações de uso

    • O PrestoDB acessa apenas dados do Tablestore no modelo Wide Column.

    • Por padrão, o PrestoDB grava dados no Tablestore chamando a operação UpdateRow. Não é possível gravar dados usando a operação PutRow por meio do PrestoDB. Para gravar dados em uma tabela do Tablestore com o PrestoDB, verifique se o parâmetro Allow Updates está definido como Yes na tabela. Caso contrário, a gravação falhará.

      Importante
      • Se você definir o parâmetro Time to Live com um valor diferente de -1 para uma tabela do Tablestore e desejar criar um índice de pesquisa para ela, defina o parâmetro Allow updates como No. Nesse cenário, o PrestoDB não poderá gravar dados na tabela.

      • Para usar o PrestoDB na gravação de dados no Tablestore via operação PutRow, entre no grupo DingTalk 36165029092 e contate o suporte técnico da Alibaba Cloud.

      Para verificar se uma tabela aceita atualizações, visualize o valor do parâmetro Allow Updates na aba Basic Information da tabela no console do Tablestore ou chame a operação DescribeTable usando os SDKs do Tablestore.

      image.png

    Mapeamentos de tipos de dados

    O Tablestore e o PrestoDB suportam tipos de dados diferentes. A tabela a seguir descreve os mapeamentos entre os tipos de dados compatíveis com ambos.

    Tipo de dados suportado pelo Tablestore

    Tipo de dados suportado pelo PrestoDB

    string

    varchar

    integer

    bigint

    double

    double

    boolean

    boolean

    binary

    varbinary

    Procedimento

    Para acessar o Tablestore com o PrestoDB, siga estas etapas: conecte o PrestoDB ao Tablestore, inicie o SQL CLI do PrestoDB, crie um schema e uma tabela de mapeamento e, em seguida, execute instruções SQL para operar os dados.

    Etapa 1: Conectar o PrestoDB ao Tablestore

    Após instalar o PrestoDB, configure o catalog e o schema para estabelecer a conexão com o Tablestore. O arquivo de configuração do catalog fica no caminho etc/catalog/tablestore.properties.

    Descrição da configuração

    O arquivo de configuração do catalog do Presto contém definições como as configurações do conector e o modo de configuração do schema. Defina o parâmetro do conector como tablestore. O modo de configuração do schema pode ser baseado em um arquivo estático local ou dinâmico, utilizando uma tabela de metadados.

    A tabela a seguir descreve os modos de configuração do schema.

    Modo de configuração do schema

    Descrição

    Método de configuração

    Modo de configuração baseado em arquivo estático local

    Arquivos estáticos predefinem informações sobre recursos do Tablestore, como a conta de acesso, detalhes da instância e metadados das tabelas de mapeamento.

    Importante

    Ao especificar os metadados de uma tabela de mapeamento, ela deve conter todas as colunas de chave primária da tabela do Tablestore, e a ordem dessas colunas deve ser idêntica à da tabela original no Tablestore.

    Ao usar o PrestoDB para acessar o Tablestore, você acessa apenas as tabelas nas instâncias configuradas no arquivo estático.

    Antes de iniciar o PrestoDB, siga estas etapas:

    1. Defina o modo de configuração do schema como baseado em arquivo estático local e configure o caminho completo desse arquivo.

    2. Especifique a conta, as informações da instância e os detalhes da tabela no arquivo estático.

    (Recomendado) Modo de configuração dinâmica baseado em tabela de metadados

    Basta especificar as informações de um metastore usado para armazenar o schema. Não é necessário predefinir informações sobre os recursos do Tablestore.

    Crie dinamicamente um schema e uma tabela de mapeamento para especificar informações sobre os recursos do Tablestore durante o acesso com o PrestoDB. Ao criar um schema, especifique as informações da conta e da instância. Ao criar uma tabela de mapeamento, configure os detalhes dessa tabela.

    1. Antes de iniciar o PrestoDB, defina o modo de configuração do schema como dinâmico, baseado em tabela de metadados, e configure o metastore usado para armazenar o schema.

    2. Após iniciar o PrestoDB, execute as instruções CREATE SCHEMA e CREATE TABLE para criar dinamicamente o schema e a tabela de mapeamento necessários.

    Conforme a tabela anterior, ao usar o modo de configuração baseado em arquivo estático local, a tabela que você deseja acessar deve estar predefinida. Se não estiver, configure-a manualmente antes de acessá-la. Já no modo de configuração dinâmica baseado em tabela de metadados, crie a tabela necessária de forma flexível e dinâmica, conforme suas necessidades de negócio. Recomendamos configurar o schema no modo de configuração dinâmica baseado em tabela de metadados.

    Procedimento

    Especifique o modo de configuração do schema no arquivo de configuração do catalog e defina os parâmetros necessários. Neste exemplo, utiliza-se o modo de configuração dinâmica baseado em tabela de metadados.

    1. Acesse o diretório onde o PrestoDB está instalado. Crie o arquivo tablestore.properties no caminho etc/catalog/ desse diretório.

      Importante

      Certifique-se de ter permissões de execução no arquivo antes de modificá-lo.

      A figura a seguir mostra o diretório onde o arquivo de configuração do catalog está localizado.

      image.png

    2. Modifique o exemplo de configuração no arquivo tablestore.properties conforme suas necessidades de negócio e copie o conteúdo para o arquivo do catalog.

      Para configurar um schema no modo dinâmico baseado em tabela de metadados, defina o parâmetro tablestore.schema-mode como meta-table.

      Nota

      Para configurar um schema no modo baseado em arquivo estático local, defina o parâmetro tablestore.schema-mode como file e especifique o caminho completo do arquivo tablestore.schema-file. Em seguida, configure as informações do schema no arquivo estático. Para mais informações, consulte a seção Configuração do servidor no tópico "Configurar um servidor Presto e executar instruções SQL de exemplo".

      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 parâmetros no arquivo tablestore.properties.

      Parâmetro

      Exemplo

      Obrigatório

      Descrição

      connector.name

      tablestore

      Sim

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

      tablestore.schema-mode

      meta-table

      Sim

      Modo de configuração do schema. Neste exemplo, o parâmetro está definido como meta-table.

      tablestore.meta-instance

      metastoreinstance

      Sim

      Nome da instância do Tablestore usada para armazenar metadados. Modifique o valor deste parâmetro conforme suas necessidades de negócio. Para mais informações, consulte Instâncias.

      Importante

      Certifique-se de que a instância do Tablestore especificada para armazenar metadados foi criada na sua conta Alibaba Cloud.

      tablestore.endpoint

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

      Sim

      Endpoint da instância do Tablestore usada para armazenar metadados. Modifique o valor deste parâmetro conforme suas necessidades de negócio. Para mais informações, consulte Endpoints.

      tablestore.accessid

      Sim

      AccessKey ID e AccessKey secret do usuário RAM com permissões para acessar a instância do Tablestore usada para armazenar metadados.

      tablestore.accesskey

      tablestore.meta-table

      meta_table

      Sim

      Nome da tabela do Tablestore usada para armazenar metadados. Modifique o valor deste parâmetro conforme suas necessidades de negócio.

      tablestore.auto-create-meta-table

      true

      Não

      Indica se uma tabela de metadados deve ser criada automaticamente. O valor padrão é true, o que significa que uma tabela de metadados é criada automaticamente ao criar um schema.

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

      Nota

      Execute o comando cat para verificar se o arquivo de configuração foi salvo corretamente.

    Etapa 2: Executar o SQL CLI do Presto

    Após conectar o Tablestore ao PrestoDB, inicie o servidor Presto e execute instruções SQL.

    1. Obtenha o programa executável para instalar o cliente PrestoDB.

      1. Baixe o pacote de instalação do cliente PrestoDB.

        Neste exemplo, baixe o pacote presto-cli-0.280-executable.jar.

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

      3. Execute os comandos a seguir no diretório bin para obter o programa executável do cliente PrestoDB.

        # Rename the installation package of the PrestoDB client to presto. Replace presto-cli-0.280-executable.jar with the actual version name of the PrestoDB client. 
        mv presto-cli-0.280-executable.jar presto
        # Grant the user the permissions to perform operations on the presto file. 
        chmod +x presto

        A figura a seguir mostra o diretório onde o programa executável do cliente PrestoDB está localizado.

        image.png

    2. Execute os comandos a seguir no diretório bin para iniciar o servidor Presto.

      Importante

      Ao iniciar o servidor Presto, inicie separadamente o coordinator e pelo menos um worker.

      # You can run the Presto server in foreground or background. If you run the Presto server in foreground, you can view operation logs in an easier way. 
      # Method 1: Run the Presto server in background
      ./launcher start
      # Method 2: Run the Presto server in foreground
      ./launcher run
    3. Execute o comando a seguir no diretório bin para iniciar o SQL CLI.

      Nota
      • Por padrão, o PrestoDB executa na porta 8080. Para modificar a configuração da porta, altere o valor do parâmetro http-server.http.port no arquivo etc/config.properties.

      • Após modificar certas configurações, reinicie o servidor Presto para que as novas configurações entrem em vigor.

      • O trecho ./presto no comando indica o caminho relativo do programa executável do cliente PrestoDB dentro do diretório bin.

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

      A tabela a seguir descreve os parâmetros do comando.

      Parâmetro

      Exemplo

      Obrigatório

      Descrição

      --server

      localhost:8080

      Sim

      URI do servidor Presto. Substitua o valor pela URI real do seu servidor Presto. O valor deste parâmetro deve ser igual ao valor do parâmetro discovery.uri no arquivo etc/config.properties dentro do diretório de instalação do PrestoDB.

      --catalog

      tablestore

      Sim

      Nome do arquivo de configuração do catalog. Neste exemplo, o parâmetro está definido como tablestore.

      --schema

      default

      Sim

      Configuração do schema. Mantenha a configuração padrão.

    Etapa 3: Criar um schema e uma tabela de mapeamento

    Se você configurar um schema no modo dinâmico baseado em tabela de metadados, crie e use o schema manualmente para configurar a instância do Tablestore à qual o PrestoDB está conectado e autenticar as permissões do usuário. Em seguida, crie uma tabela de mapeamento para a tabela do Tablestore a fim de consultar e analisar dados.

    Nota

    Se você configurar um schema no modo baseado em arquivo estático local, pule esta etapa.

    1. Execute a instrução a seguir para criar um schema:

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

      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. Para mais informações, consulte Instâncias.

      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 a instrução use <SCHEMA_NAME>; para usar o schema criado.

      Substitua <SCHEMA_NAME> pelo nome do schema criado. Execute a instrução show schemas; para visualizar a lista de schemas.

    3. Execute a instrução a seguir para criar uma tabela de mapeamento para a tabela do Tablestore.

      Importante

      Observe os pontos a seguir ao criar uma tabela de mapeamento:

      • Garanta que os tipos de campo na tabela de mapeamento correspondam aos da tabela de dados do Tablestore. Para mais informações, consulte Mapeamento de tipos de campo.

      • O nome da tabela de mapeamento deve corresponder ao nome da tabela no Tablestore.

      • A propriedade table_name na instrução CREATE TABLE mapeia a tabela do PrestoDB para a tabela real no Tablestore. Várias tabelas de mapeamento com nomes diferentes podem apontar para a mesma tabela de dados do Tablestore.

      • A tabela de mapeamento deve incluir 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 corresponder aos da tabela de dados do Tablestore. Mapeie cada coluna de atributo à sua contraparte no Tablestore usando o parâmetro origin_name.

      Neste exemplo, utiliza-se a tabela main_table do Tablestore, que contém duas colunas de chave primária chamadas gid e uid, e três colunas de atributo chamadas col1, col2 e col3.

      A instrução SQL de exemplo a seguir demonstra como criar uma tabela de mapeamento com o mesmo nome da tabela 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: Executar instruções SQL para operar dados

    Importante

    Antes de executar instruções SQL para operar dados, certifique-se de estar usando o schema necessário executando a instrução use <SCHEMA_NAME>;.

    Execute instruções SQL para consultar configurações de schema e metadados da tabela de mapeamento, além de ler e gravar dados na tabela do Tablestore. Para mais informações sobre instruções SQL de exemplo, consulte a seção "Instruções SQL comuns de exemplo" no tópico Configurar um servidor Presto e executar instruções SQL de exemplo.

    1. Consulte as configurações do schema.

      • Consulte a lista de schemas

        show schemas;
      • Consulte a lista de tabelas em um schema específico

        show tables;
    2. Consulte 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

          A instrução SQL de exemplo a seguir demonstra como inserir uma linha de dados na tabela main_table:

          insert into main_table values(10001,10001,true,100,'hangzhou');
        • Importe vários registros de dados simultaneamente

          Importante

          Antes de importar vários registros de dados simultaneamente, certifique-se de que uma tabela de destino foi criada e que o schema da tabela de destino é igual ao da tabela de origem.

          A instrução SQL de exemplo a seguir demonstra como importar as colunas gid, uid, c1, c2 e c3 das linhas em que o valor da coluna gid é maior que 0 e o valor da coluna uid é menor que 10000 da tabela main_table para a tabela sampletable:

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

        A instrução SQL de exemplo a seguir demonstra como consultar as linhas na tabela sampletable em que o valor da coluna gid é maior que 0, o valor da coluna uid é menor que 10 e o valor da coluna c1 é true:

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

    Faturamento

    Ao usar o PrestoDB para acessar o Tablestore, a cobrança é feita pelo Tablestore com base no throughput de leitura e no throughput de escrita. Para mais informações, consulte Visão geral de faturamento.

    Referências

    • Utilize outros mecanismos de computação, como MaxCompute, Spark, Function Compute e Realtime Compute for Apache Flink, para consultar e analisar dados em tabelas do Tablestore. Para mais informações, consulte Visão geral de computação e análise. Também é possível consultar e analisar dados em tabelas do Tablestore usando o recurso de consulta SQL ou o recurso de agregação suportado por índices de pesquisa. Para mais informações, consulte Visão geral de consulta SQL e Visão geral de índice de pesquisa.

    • Use o recurso Data Integration do DataWorks para migrar dados do Tablestore entre tabelas ou instâncias. Para mais informações, consulte Sincronizar dados entre tabelas.

    • Use o DataV ou o Grafana para visualizar dados, como exibir informações em gráficos. Para mais informações, consulte Visualização de dados.