Todos los productos
Search
Centro de documentos

Tablestore:Uso de Tablestore con PrestoDB

Última actualización: Oct 09, 2026

PrestoDB es un motor de consultas SQL distribuido y de código abierto para big data que utiliza una arquitectura de procesamiento masivamente paralelo (MPP). Admite diversas fuentes de datos, como MySQL, Elasticsearch y Tablestore. Una vez que conecte PrestoDB a Tablestore, podrá usar PrestoDB para consultar, analizar, escribir e importar datos en Tablestore.

Contexto

PrestoDB es un motor de consultas SQL distribuido y de código abierto para big data que utiliza una arquitectura MPP. Admite diversas fuentes de datos, como MySQL, Elasticsearch y Tablestore. PrestoDB se puede utilizar como herramienta de consulta, herramienta de extracción, transformación y carga (ETL) de datos, herramienta de pruebas de carga y motor de consulta unificado para satisfacer las necesidades de procesamiento de datos en distintos escenarios.

  • Como herramienta de consulta, PrestoDB admite consultas SQL para el desarrollo diario y la resolución de problemas.

  • Como herramienta ETL de datos, PrestoDB permite replicar datos entre tablas o instancias y copiar información desde distintas fuentes de datos.

  • Como herramienta de pruebas de carga, PrestoDB admite el escaneo o la escritura de datos por lotes.

  • Como motor de consulta unificado dentro de una capa intermedia de datos, PrestoDB permite establecer conexiones con varias fuentes de datos distintas.

Para usar Tablestore con PrestoDB, primero debe establecer una conexión. Una vez establecida, podrá usar PrestoDB para consultar, analizar, escribir e importar datos en Tablestore.

Requisitos previos

  • Cuenta con un servidor que ejecuta Linux o macOS y tiene instalado el siguiente software. Este tema usa un servidor Linux como ejemplo.

    Nota

    Si no dispone de un servidor Linux, puede usar una instancia de Elastic Compute Service (ECS). Para obtener más información, consulte Create an instance using the wizard.

    • Java 8 (64 bits) y un entorno de desarrollo de Python 3 instalados.

    • PrestoDB instalado.

    • Descargue el archivo prestodb-tablestore-connector correspondiente a su versión de PrestoDB. Cargue y descomprima el archivo en el directorio plugin de la carpeta de instalación de PrestoDB.

      A continuación se describe la compatibilidad entre las versiones del plugin prestodb-tablestore-connector y las versiones de PrestoDB.

      Versión del plugin

      Versión de PrestoDB

      Descripción

      prestodb-tablestore-connector-202401

      0.280

      Primera versión. Este plugin es compatible con PrestoDB 0.280 y versiones posteriores.

  • Dispone de la información obligatoria de Tablestore, como la cuenta de acceso, los detalles de la instancia y la información de la tabla.

  • Creó un AccessKey para un usuario de Resource Access Management (RAM) que tenga permisos para operar Tablestore. Para obtener más información, consulte Obtain an AccessKey pair.

    Nota

    Si el usuario de RAM no tiene los permisos necesarios para operar Tablestore, debe otorgárselos antes de continuar. Para obtener más información, consulte Grant permissions to a RAM user using a RAM policy.

Notas

  • Esta función solo aplica a wide table models.

  • El modo de escritura predeterminado de PrestoDB es UpdateRow. El modo de escritura PutRow no es compatible. Si desea escribir datos en Tablestore mediante PrestoDB, compruebe que el parámetro Allow Update de la tabla de datos de Tablestore esté establecido en Yes. De lo contrario, la operación de escritura de datos fallará.

    Importante
    • No es posible escribir datos en una tabla mediante PrestoDB si esta utiliza un tiempo de vida (TTL) de índice de búsqueda. Esto se debe a que el parámetro Allow Update debe establecerse en No cuando se usa un TTL de índice de búsqueda (el valor no es -1).

    • Para usar el modo de escritura PutRow, únase al grupo de DingTalk 36,165,029,092 (Tablestore Technical Support-3) para contactarnos.

    Consulte la configuración de Allow Update en la pestaña Basic Details de la tabla de datos en la consola, o bien llamando a la operación DescribeTable.

Asignación de tipos de campos

Tablestore y PrestoDB utilizan tipos de datos distintos. A continuación se describe la asignación entre los tipos de campos.

Tipo de campo de Tablestore

Tipo de campo de PrestoDB

string

varchar

integer

bigint

double

double

boolean

boolean

binary

varbinary

Procedimiento

Para usar Tablestore con PrestoDB, conecte PrestoDB a Tablestore, ejecute la interfaz de línea de comandos (CLI) SQL de PrestoDB, cree un esquema y una tabla de asignación, y luego use SQL para operar con los datos.

Paso 1: Conectar PrestoDB a Tablestore

Después de instalar PrestoDB, configure el catálogo y el esquema de PrestoDB para conectarse a Tablestore. El archivo de configuración del catálogo se encuentra en etc/catalog/tablestore.properties.

Detalles de la configuración

El archivo de configuración del catálogo de Presto incluye ajustes para el conector, el modo de configuración del esquema y otros parámetros. El conector debe establecerse en tablestore. El esquema se puede configurar mediante uno de los siguientes métodos: configuración con archivo estático local o configuración dinámica con una tabla de metadatos.

A continuación se describen los modos de configuración del esquema.

Modo de configuración del esquema

Descripción

Flujo de configuración

Configuración con archivo estático local

Debe predefinir la información de los recursos de Tablestore, como la cuenta de acceso, los detalles de la instancia y los metadatos de la tabla de asignación, en un archivo estático.

Importante

Al configurar los metadatos de la tabla, incluya todas las columnas de clave principal. El orden de estas columnas debe coincidir con el orden de las claves principales en la tabla de Tablestore.

Cuando utilice PrestoDB para acceder a Tablestore, solo podrá acceder a las tablas de las instancias configuradas en el archivo estático.

Antes de ejecutar PrestoDB, siga estos pasos:

  1. Establezca el modo de esquema en file y especifique la ruta completa del archivo estático.

  2. Defina la cuenta de acceso, la información de la instancia y la información de la tabla en el archivo estático.

(Recomendado) Configuración dinámica mediante una tabla de metadatos

Solo necesita configurar la información del metastore que se usará para almacenar el esquema. No es necesario predefinir la información de los recursos de Tablestore.

Puede crear esquemas y tablas de forma dinámica para definir la información de los recursos de Tablestore cuando utilice PrestoDB para acceder a este servicio. Al crear un esquema, debe configurar la cuenta y la información de la instancia. Al crear una tabla, debe configurar la información de la tabla de asignación.

  1. Antes de ejecutar PrestoDB, establezca el modo de esquema en meta-table y configure la información del metastore para almacenar el esquema.

  2. Después de ejecutar PrestoDB, utilice las instrucciones create schema y create table para crear dinámicamente el esquema y la tabla de asignación necesarios.

Como se muestra en la tabla, el método de configuración con archivo estático local requiere predefinir la información de la tabla. Si dicha información no se configura previamente, deberá agregarla manualmente antes de poder acceder a la tabla. El método de configuración dinámica mediante una tabla de metadatos le permite crear de forma dinámica la información de tabla necesaria según su escenario de negocio cuando utilice PrestoDB para acceder a Tablestore. Este método ofrece mayor flexibilidad. Se recomienda utilizar el método de configuración dinámica mediante una tabla de metadatos.

Procedimiento

Especifique el modo de configuración del esquema en el archivo de configuración del catálogo y configure los parámetros correspondientes. A continuación se describe cómo configurar la conexión mediante el método de configuración dinámica con una tabla de metadatos.

  1. Vaya al directorio de instalación de PrestoDB y cree un archivo tablestore.properties en el directorio etc/catalog/.

    Importante

    Antes de editar el archivo, compruebe que tiene permisos de ejecución sobre él.

    La siguiente estructura de directorios muestra la ubicación del archivo de configuración del catálogo.

    etc
      catalog
        tablestore.properties
      config.properties
      jvm.config
      log.properties
      node.properties
  2. Edite el archivo tablestore.properties. Modifique el ejemplo de configuración según sus necesidades y cópielo en el archivo.

    Cuando utilice el método de configuración dinámica con una tabla de metadatos, establezca tablestore.schema-mode en meta-table.

    Nota

    Si desea utilizar el método de configuración con archivo estático local, establezca tablestore.schema-mode en file y defina tablestore.schema-file con la ruta completa del archivo estático local. Luego, configure la información del esquema en dicho archivo. Para obtener más información, consulte Server configuration.

    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 continuación se describen los elementos de configuración.

    Elemento de configuración

    Ejemplo

    Obligatorio

    Descripción

    connector.name

    tablestore

    Sí

    Nombre del conector. Debe establecer este parámetro en tablestore.

    tablestore.schema-mode

    meta-table

    Sí

    Configuración del modo de esquema. Establezca este parámetro en meta-table.

    tablestore.meta-instance

    metastoreinstance

    Sí

    Instancia de Tablestore utilizada para almacenar metadatos. Modifique el valor según sea necesario. Para obtener más información, consulte Instances.

    Importante

    Compruebe que la instancia configurada exista en su cuenta de Alibaba Cloud.

    tablestore.endpoint

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

    Sí

    Endpoint de la instancia de Tablestore utilizada para almacenar metadatos. Modifique el valor según sea necesario. Para obtener más información, consulte Endpoints.

    tablestore.accessid

    Sí

    AccessKey ID y AccessKey secret del usuario que tiene permisos de acceso a la instancia donde se almacenan los metadatos.

    tablestore.accesskey

    tablestore.meta-table

    meta_table

    Sí

    Nombre de la tabla en Tablestore utilizada para almacenar metadatos. Modifique el valor según sea necesario.

    tablestore.auto-create-meta-table

    true

    No

    Indica si se crea automáticamente una tabla de metadatos. El valor predeterminado es true, lo que significa que la tabla de metadatos se crea automáticamente al generar un esquema.

  3. Guarde el archivo de configuración y salga.

    Nota

    Ejecute el comando cat para confirmar que la configuración se guardó correctamente.

Paso 2: Ejecutar la CLI SQL de Presto

Una vez establecida la conexión, inicie Presto Server y ejecute las instrucciones SQL.

  1. Obtenga el archivo ejecutable del cliente.

    1. Descargue el cliente de PrestoDB.

      Este tema utiliza presto-cli-0.280-executable.jar como ejemplo.

    2. Guarde el cliente de PrestoDB en el directorio bin de la carpeta de instalación de PrestoDB.

    3. En el directorio bin de la carpeta de instalación de PrestoDB, ejecute el siguiente comando para obtener el archivo ejecutable del 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. En el directorio bin de la carpeta de instalación de PrestoDB, ejecute el comando para iniciar Presto Server.

    Importante

    Al iniciar Presto Server, debe arrancar el coordinador y como mínimo un 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. En el directorio bin de la carpeta de instalación de PrestoDB, ejecute el siguiente comando para iniciar la CLI SQL.

    Nota
    • De forma predeterminada, PrestoDB se ejecuta en el puerto 8080. Para cambiarlo, modifique el ajuste http-server.http.port en el archivo etc/config.properties.

    • Después de modificar los ajustes de configuración, reinicie el servidor para que los cambios surtan efecto.

    • En el comando, ./presto es la ruta relativa del archivo ejecutable del cliente dentro del directorio bin de la carpeta de instalación de PrestoDB.

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

    A continuación se describen los elementos de configuración.

    Elemento de configuración

    Ejemplo

    Obligatorio

    Descripción

    --server

    localhost:8080

    Sí

    URI de Presto Server. Sustituya el valor según sea necesario. Este ajuste debe coincidir con el parámetro discovery.uri del archivo etc/config.properties ubicado en el directorio de instalación de PrestoDB.

    --catalog

    tablestore

    Sí

    Nombre del archivo de configuración del catálogo. Establézcalo en tablestore, igual que el nombre del archivo de configuración del catálogo creado.

    --schema

    default

    Sí

    Configuración del esquema. Mantenga el valor predeterminado.

Paso 3: Crear un esquema y una tabla de asignación

Cuando utilice el modo de configuración dinámica de esquema con una tabla de metadatos, cree manualmente un esquema para configurar la instancia de Tablestore conectada y llevar a cabo la autenticación de usuarios. Después, cree una tabla de asignación para la tabla de Tablestore con el fin de consultar y analizar datos.

Nota

Si utiliza el modo de configuración de esquema con archivo estático local, omita este paso.

  1. Ejecute el siguiente comando para crear un esquema.

    El siguiente ejemplo muestra cómo crear un esquema llamado testdb para acceder a la instancia de Tablestore myinstance.

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

    En la siguiente tabla se describen los parámetros.

    Parámetro

    Ejemplo

    Obligatorio

    Descripción

    endpoint

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

    Sí

    Endpoint de la instancia de Tablestore. Para obtener más información, consulte Endpoints.

    instance_name

    myinstance

    Sí

    Nombre de la instancia de Tablestore. Para obtener más información, consulte Instances.

    access_id

    Sí

    AccessKey ID de la cuenta de Alibaba Cloud o del usuario de RAM.

    access_key

    Sí

    AccessKey secret de la cuenta de Alibaba Cloud o del usuario de RAM.

  2. Ejecute el comando use <SCHEMA_NAME>; para utilizar el esquema que creó.

    Sustituya <SCHEMA_NAME> por el nombre del esquema creado. Ejecute el comando show schemas; para obtener la lista de esquemas.

  3. Ejecute el siguiente comando para crear una tabla de asignación para la tabla de datos de Tablestore.

    Importante

    Tenga en cuenta lo siguiente al crear una tabla de asignación:

    • Compruebe que los tipos de campo de la tabla de asignación coincidan con los de la tabla de datos de Tablestore. Para obtener más información, consulte Field type mapping.

    • El nombre de la tabla de asignación debe coincidir con el nombre de la tabla en Tablestore.

    • La propiedad table_name de la instrucción CREATE TABLE asigna la tabla de PrestoDB a la tabla real en Tablestore. Varias tablas de asignación con nombres distintos pueden apuntar a la misma tabla de datos de Tablestore.

    • La tabla de asignación debe incluir todas las columnas de clave principal de la tabla de datos, pero puede contener solo un subconjunto de las columnas de atributos.

    • Los nombres y el orden de las columnas de clave principal en la tabla de asignación deben coincidir con los de la tabla de datos de Tablestore. Asigne cada columna de atributos a su equivalente en Tablestore mediante el parámetro origin_name.

    Suponga que la tabla de datos se llama main_table e incluye dos columnas de clave principal, gid y uid, además de tres columnas de atributos: col1, col2 y col3.

    El siguiente ejemplo de SQL crea una tabla de asignación con el mismo nombre para la tabla de datos main_table de 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'
    );

Paso 4: Usar SQL para operar con datos

Importante

Antes de usar SQL para operar con datos de Tablestore, compruebe que haya ejecutado el comando use <SCHEMA_NAME>; para utilizar el esquema correspondiente.

Mediante instrucciones SQL puede consultar las configuraciones de esquema y los metadatos de las tablas, así como leer y escribir datos en las tablas de Tablestore. Para ver más ejemplos de SQL, consulte Common SQL examples.

  1. Consultar las configuraciones de esquema.

    • Obtener la lista de esquemas

      show schemas;
    • Obtener la lista de tablas de un esquema específico

      show tables;
  2. Consultar los metadatos de una tabla específica

    Sustituya <TABLE_NAME> por el nombre real de la tabla.

    describe <TABLE_NAME>;
  3. Operaciones con datos.

    Lea y escriba datos de Tablestore.

    • Escribir datos

      • Insertar una fila de datos

        El siguiente ejemplo inserta una fila de datos en main_table.

        insert into main_table values(10001,10001,true,100,'hangzhou');
      • Importar datos por lotes

        Importante

        Antes de importar datos por lotes, compruebe que la tabla de destino esté creada y que su esquema coincida con el de la tabla de datos de origen.

        El siguiente ejemplo importa los datos de las columnas gid, uid, c1, c2 y c3 de main_table hacia sampletable, donde gid es mayor que 0 y uid es menor que 10,000.

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

      El siguiente ejemplo consulta las filas de sampletable donde el valor de la columna gid es mayor que 0, el valor de la columna uid es menor que 10 y c1 es true.

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

Facturación

Cuando utiliza un motor de cómputo para acceder a Tablestore, el servicio mide y factura su uso según el rendimiento de lectura y escritura de solicitudes específicas. Para obtener más información, consulte Billing overview.

Referencias

  • Puede usar otros motores de cómputo, como MaxCompute, Spark, Function Compute y Flink, para consultar y analizar datos en las tablas de Tablestore. Para obtener más información, consulte Compute and analysis overview. También puede aprovechar las funciones de consulta SQL y agregación de índices de búsqueda de Tablestore para consultar y analizar datos en las tablas. Para obtener más información, consulte SQL query y Search index.

  • También puede utilizar el servicio de integración de datos de DataWorks para migrar datos de Tablestore entre tablas o instancias. Para obtener más información, consulte Synchronize data from a Tablestore table to another Tablestore table.

  • Si desea visualizar datos en gráficos u otros formatos, utilice DataV o Grafana. Para obtener más información, consulte Data visualization.