Todos los productos
Search
Centro de documentos

Tablestore:Presto Server configuration and SQL examples

Última actualización: Sep 03, 2026

Para conectar PrestoDB a Tablestore, configure el Catalog y el Schema del Presto Server. Una vez establecida la conexión, utilice los ejemplos de SQL de este tema para realizar operaciones con los datos.

Configuración del servidor

Configure el Catalog y el Schema del Presto Server.

  • La configuración del Catalog define los ajustes del conector y el modo de configuración del Schema. Configure el Schema mediante una configuración dinámica con una tabla de metadatos o una configuración estática con un archivo local.

  • Con la configuración dinámica (modo de tabla de metadatos), no se requiere ninguna configuración de Schema antes de iniciar el Presto Server. Cree el Schema y las tablas de asignación después de iniciar la interfaz de línea de comandos (CLI) de SQL.

Configuración del Catalog

El archivo de configuración del Catalog se encuentra en etc/catalog/tablestore.properties dentro de la carpeta de instalación de PrestoDB.

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

Elemento de configuración

Ejemplo

Obligatorio

Descripción

connector.name

tablestore

Sí

Nombre del conector. Debe establecerse como tablestore.

tablestore.schema-mode

meta-table

Sí

Modo de configuración del Schema. Valores válidos:

  • meta-table: Configuración dinámica mediante una tabla de metadatos. Requiere información de la instancia de Tablestore para el almacenamiento de metadatos.

  • file: Configuración estática mediante un archivo local. Requiere la ruta completa al archivo estático local.

tablestore.schema-file

/users/test/tablestore/presto/tablestore.schema

Sí, condicional

Obligatorio solo cuando tablestore.schema-mode se establece en file.

Ruta completa al archivo estático local. Para más información, consulte Schema configuration.

tablestore.meta-instance

metastoreinstance

Sí, condicional

Obligatorio solo cuando tablestore.schema-mode se establece en meta-table.

Instancia de Tablestore utilizada para almacenar metadatos. Para más información, consulte Instances.

Importante

Asegúrese de que la instancia configurada exista en su cuenta de Alibaba Cloud.

tablestore.endpoint

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

Sí, condicional

Obligatorio solo cuando tablestore.schema-mode se establece en meta-table.

Endpoint de la instancia de Tablestore utilizada para almacenar metadatos. Para más información, consulte Endpoints.

tablestore.accessid

Sí, condicional

Obligatorio solo cuando tablestore.schema-mode se establece en meta-table.

AccessKey ID y AccessKey secret de la cuenta de Alibaba Cloud o del usuario de Resource Access Management (RAM) que tenga permisos de acceso a la instancia de metadatos.

tablestore.accesskey

Sí, condicional

tablestore.meta-table

meta_table

Sí, condicional

Obligatorio solo cuando tablestore.schema-mode se establece en meta-table.

Nombre de la tabla de Tablestore utilizada para almacenar metadatos.

tablestore.auto-create-meta-table

true

No

Aplicable solo cuando tablestore.schema-mode se establece en meta-table.

Especifica si se debe crear automáticamente la tabla de metadatos. El valor predeterminado es true, lo que crea la tabla de metadatos automáticamente al crear un Schema.

Configuración del Schema

Configure el Schema en uno de dos modos: configuración dinámica con una tabla de metadatos (recomendado) o configuración estática con un archivo local.

Configuración dinámica con tabla de metadatos

  • No se requiere configuración de Schema antes de iniciar el Presto Server.

  • Después de conectarse e iniciar la CLI de SQL, utilice los comandos create schema y create table para crear el Schema y las tablas de asignación. Para más información, consulte Create a Schema y Create a mapping table.

Configuración con archivo estático local

La ruta al archivo estático local debe coincidir con la ruta completa especificada para tablestore.schema-file en la configuración del Catalog.

Cree un archivo en el servidor con el siguiente contenido:

{
	"account" : {
		"accessId" : "xxxxxxxx", ----- <Required> The AccessKey ID of the Alibaba Cloud account or RAM user.
		"accessKey" : "xxxxxxxxxxxxxxx", ----- <Required> The AccessKey secret of the Alibaba Cloud account or RAM user.
	},
	"instances" : {
		"mydb" : { ----- <Required> The Schema name in PrestoDB.
			"instanceName" : "myinstance", ----- <Required> The name of the Tablestore instance.
			"endpoint" : "http://myinstance.cn-hangzhou.ots.aliyuncs.com", ----- <Required> The endpoint of the Tablestore instance.
			"tables": {
				"mytable" : { ----- <Required> The table name in PrestoDB.
					"originName" : "SampleTable", ----- <Optional> The name of the corresponding table in Tablestore (case-sensitive). If not configured, it is the same as the table name in Presto.
					"columns" : [  ----- <Required> The metadata of the table. It must include all primary key columns, and the order of the primary key columns must be the same as the primary key order of the table.
						{"name" : "gid", "type" : "bigint"},
						{"name" : "uid", "type" : "bigint"},
						{"name" : "c1", "type" : "boolean", "originName" : "col1"},
						{"name" : "c2", "type" : "bigint", "originName" : "col2"},
						{"name" : "C3", "type" : "varchar", "originName" : "col3"}
					]
				},
				"anotherTable" : {
					"originName" : "sampleTable2",
					"columns" : [
						{"name" : "gid", "type" : "bigint"},
						{"name" : "uid", "type" : "bigint"},
						{"name" : "a", "type" : "varchar"},
						{"name" : "b", "type" : "varchar"},
						{"name" : "c", "type" : "boolean"},
						{"name" : "d", "type" : "bigint"},
						{"name" : "e", "type" : "varchar"}
					]
				}
			}
		}
	}
}

Elemento de configuración

Obligatorio

Descripción

account

accessId

Sí

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

accessKey

Sí

instances(map(<schema_name> -> <schema_info>))

Sí

Mapa JSON que asocia nombres de Schema con su información correspondiente.

Importante

Los nombres de Schema no distinguen entre mayúsculas y minúsculas en PrestoDB.

<schema_info>

instanceName

Sí

Nombre de la instancia de Tablestore correspondiente a este Schema. Para más información, consulte Instances.

endpoint

Sí

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

tables(map(<table_name> -> <table_info>))

Sí

Lista de tablas montadas en PrestoDB.

Importante

<table_name> no distingue entre mayúsculas y minúsculas en PrestoDB.

<table_info>

originName

No

Nombre real de la tabla en Tablestore.

  • Si se omite, el conector asigna automáticamente el nombre de la tabla de PrestoDB al nombre de tabla coincidente en Tablestore.

  • Si se especifica, el conector utiliza este valor como el nombre real de la tabla.

Si el conector no encuentra la tabla correspondiente en Tablestore, las operaciones de lectura y escritura en dicha tabla fallarán.

columns(list([<column_info>]))

Sí

Metadatos de la tabla, incluidas todas las columnas definidas.

Importante
  • Incluya todas las columnas de clave principal de la tabla de datos de Tablestore. Los nombres y el orden de las columnas de clave principal deben coincidir con las definiciones reales en la tabla de Tablestore.

  • Unos metadatos incorrectos provocarán el fallo de todas las operaciones posteriores de lectura y escritura en la tabla.

<column_info>

name

Sí

Nombre de la columna.

Importante

Los nombres de columna no distinguen entre mayúsculas y minúsculas en PrestoDB.

type

Sí

Tipo de la columna. Tipos de PrestoDB compatibles que se asignan a tipos de columna de Tablestore: Bigint, Varchar, Varbinary, Double y Boolean.

Importante

El tipo de columna en PrestoDB debe coincidir con el tipo de columna en Tablestore.

originName

No

Nombre de la columna correspondiente en la tabla de datos de Tablestore.

Ejemplos comunes de SQL

A continuación se presentan ejemplos de SQL que muestran cómo trabajar con datos de Tablestore a través de PrestoDB. Todos los ejemplos utilizan un Schema llamado testdb conectado a la instancia de Tablestore myinstance, y una tabla de asignación llamada exampletable con el esquema (pk varchar, c1 double, c2 varchar, c3 varchar).

Crear un Schema

Un Schema configura el acceso a una instancia de Tablestore y gestiona la autenticación. El siguiente ejemplo crea un Schema 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 = '********************************'
);

Parámetro

Ejemplo

Obligatorio

Descripción

endpoint

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

Sí

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

instance_name

myinstance

Sí

Nombre de la instancia de Tablestore. Para 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.

Crear una tabla de asignación

Una tabla de asignación corresponde a una tabla física en una instancia de Tablestore.

Importante

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

  • Asegúrese de que los tipos de campo en la tabla de asignación coincidan con los de la tabla de datos de Tablestore. Para 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 en la sentencia CREATE TABLE asigna la tabla de PrestoDB a la tabla real en Tablestore. Varias tablas de asignación con nombres diferentes 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 incluir 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 atributo a su contraparte en Tablestore mediante el parámetro origin_name.

El siguiente ejemplo crea una tabla de asignación llamada exampletable que se asigna a la tabla de datos de Tablestore del mismo nombre.

CREATE TABLE if not exists exampletable
(
   pk varchar,
   c1 double with (origin_name = 'col1'),
   c2 varchar with (origin_name = 'col2'),
   c3 varchar with (origin_name = 'col3')
) WITH (
   table_name = 'exampletable'
);

Operaciones de Schema

Después de crear un Schema, liste todos los Schemas o seleccione uno para utilizarlo.

Listar todos los Schemas

show schemas;

Respuesta de ejemplo:

       Schema       
--------------------
 information_schema 
 testdb             
 testdb1            
(3 rows)

Utilizar un Schema

Seleccione un Schema antes de realizar operaciones en sus tablas.

Importante

Seleccione un Schema antes de realizar operaciones en las tablas que contiene.

El siguiente ejemplo selecciona el Schema testdb.

use testdb;

Respuesta de ejemplo:

USE

Operaciones de tabla de asignación

Después de crear una tabla de asignación, liste las tablas de un Schema, consulte los metadatos de la tabla o elimine una tabla de asignación.

Listar tablas en un Schema

Después de seleccionar un Schema, liste sus tablas.

show tables;

Respuesta de ejemplo:

      Table      
-----------------
 exampletable    
 sampletable     
 sampletabletest 
 table1          
 testtable       
(5 rows)

Describir una tabla

El siguiente ejemplo describe la tabla exampletable.

describe exampletable;

Respuesta de ejemplo:

Column |  Type   | Extra | Comment 
--------+---------+-------+---------
 pk     | varchar |       |         
 c1     | double  |       |         
 c2     | varchar |       |         
 c3     | varchar |       |         
(4 rows)

Eliminar una tabla de asignación

El siguiente ejemplo elimina la tabla de asignación table1.

drop table table1;

Respuesta de ejemplo:

DROP TABLE

Operaciones de datos

Después de crear una tabla de asignación, escriba datos en la tabla de Tablestore correspondiente y lea datos de ella.

Importante

PrestoDB no admite operaciones UPDATE ni DELETE en tablas de Tablestore.

Escribir datos

  • Insertar una sola fila

    El siguiente ejemplo inserta una fila en exampletable.

    insert into exampletable values('101', 22.0, 'Mary', '10002');

    Respuesta de ejemplo:

    INSERT: 1 row
  • Importar datos por lotes

    Importante

    Antes de importar datos por lotes, asegúrese de que la tabla de destino exista y de que su esquema coincida con el de la tabla de origen.

    El siguiente ejemplo copia filas donde c1 < 50 de exampletable a sampletable.

    insert into sampletable select pk, c1, c2, c3 from exampletable where c1 < 50; 

    Respuesta de ejemplo:

    INSERT: 3 rows

Leer datos

  • Consultar todas las filas

    El siguiente ejemplo lee todos los datos de exampletable.

    select * from exampletable;

    Respuesta de ejemplo:

     pk  |  c1  |  c2  |  c3   
    -----+------+------+-------
     100 | 11.0 | Lily | 10001 
     101 | 22.0 | Mary | 10002  
     102 | 12.0 | Jim  | 10003   
    (3 rows)
  • Consultar filas con condiciones

    El siguiente ejemplo consulta filas en exampletable donde c1 < 15 y c3 = '10001'.

    select * from exampletable where c1 < 15 and c3 = '10001'; 

    Respuesta de ejemplo:

     pk  |  c1  |  c2  |  c3   
    -----+------+------+-------
     100 | 11.0 | Lily | 10001 
    (1 row)

Analizar datos

  • Calcular el promedio de una columna

    El siguiente ejemplo calcula el promedio de la columna c1 en exampletable.

    select avg(c1) as Average from exampletable;

    Respuesta de ejemplo:

    Average 
    ---------
        15.0 
    (1 row)
  • Contar el total de filas

    El siguiente ejemplo cuenta todas las filas en exampletable.

    select count(*) as total from exampletable;

    Respuesta de ejemplo:

    total 
    -------
         3 
    (1 row)