Todos los productos
Search
Centro de documentos

PolarDB:Crear una partición híbrida

Última actualización: Sep 02, 2026

Puede crear una tabla con particiones híbridas para acceder a datos almacenados en distintos motores de almacenamiento.

El siguiente diagrama ilustra el funcionamiento de las particiones híbridas.

image

Las particiones híbridas separan los datos calientes de los fríos al almacenar las particiones de una tabla en diferentes medios de almacenamiento. Esto reduce los costos de almacenamiento de los datos fríos sin afectar el rendimiento de las consultas ni las operaciones DML sobre los datos calientes.

Nota

Para archivar una tabla particionada como hybrid partitioned table, se deben cumplir las siguientes condiciones:

  • MySQL 8.0.2 con versión menor 8.0.2.2.34.1 o posterior. Debe set el parámetro loose_polar_allow_create_hybrid_partition en ON.

  • MySQL 8.0.2 con versión menor anterior a 8.0.2.2.34.1. Actualice a una versión menor más reciente.

Requisitos previos

  • Su clúster debe ejecutar PolarDB for MySQL 8.0.2 con versión de revisión 8.0.2.2.34.1 o posterior. Puede view the version number para comprobar la versión de su clúster.

  • Los archivos de datos de las particiones que desea crear ya deben existir en OSS y sus nombres deben seguir estas reglas:

    • Las extensiones de archivo y los marcadores de partición deben estar en mayúsculas.

    • Los nombres de tablas y particiones deben coincidir con los de la base de datos.

    Por ejemplo, si la partición p1 de la tabla t1 utiliza el motor CSV, el archivo de datos de la partición se nombra t1#P#p1.CSV.

  • Las tablas particionadas archivadas mediante el archivado de datos fríos pueden archivarse como tablas con particiones híbridas.

Limitaciones

  • Una tabla con particiones híbridas debe contener como mínimo una partición que utilice el motor de almacenamiento InnoDB. El motor a nivel de tabla debe ser InnoDB.

  • Al crear una tabla con particiones híbridas que incluya subparticiones, el motor de la partición de primer nivel debe coincidir con el motor de la tabla, y como mínimo una subpartición debe utilizar el motor de almacenamiento InnoDB.

  • Las tablas con particiones híbridas solo admiten los tipos de partición RANGE y LIST .

  • No se admiten operaciones DML (incluidas INSERT, UPDATE, DELETE o LOAD) en particiones OSS dentro de tablas con particiones híbridas.

Parámetros

Cuando utilice tablas con particiones híbridas, puede configure los siguientes parámetros en la página Parameters de su clúster de PolarDB según sus requisitos empresariales.

Parámetro

Nivel

Descripción

loose_hybrid_partition_query_mix_engine_enabled

Global

Especifica la regla para consultar tablas con particiones híbridas. Valores válidos:

  • OFF (predeterminado): Al consultar una tabla con particiones híbridas, la consulta abarca particiones tanto del motor InnoDB como del motor X-Engine.

  • ON: Al consultar una tabla con particiones híbridas, la consulta abarca particiones del motor InnoDB, del motor X-Engine y de OSS.

loose_polar_dlm_storage_mode

Global

Controla la función de archivado automático de datos fríos (DLM). Valores válidos:

  • OFF (predeterminado): El almacenamiento DLM está deshabilitado. El programador no se inicia y no se realizan operaciones de archivado.

  • RO (no recomendado): El almacenamiento DLM es de solo lectura. Se pueden consultar las particiones de datos fríos archivados, pero no se realizan nuevas operaciones de escritura para archivado. Este valor rara vez se usa en producción.

  • RW (recomendado): El almacenamiento DLM permite lectura y escritura. El programador se inicia y admite el archivado automático según las directivas de DLM; además, los datos archivados se pueden consultar.

Nota
  • Este parámetro solo aplica a clústeres de MySQL 8.0.2 con versión de revisión 8.0.2.2.34.1 o posterior.

  • Después de habilitar el archivado de datos fríos, el sistema establece automáticamente este parámetro en RW. No se requiere modificación manual.

  • Si solo utiliza el motor de alta compresión X-Engine para archivar tablas particionadas (sin archivado de datos fríos en OSS), debe establecer manualmente este parámetro en RW para habilitar la programación de DLM.

loose_allow_create_hybrid_partition

Global

Controla si se permite crear o archivar tablas particionadas que contienen particiones con motores distintos a InnoDB. Valores válidos:

  • OFF (predeterminado): Se prohíbe crear tablas particionadas que contengan particiones con motores distintos a InnoDB. Todas las particiones deben usar el motor InnoDB.

  • ON (recomendado): Se permite crear tablas particionadas que contengan particiones con motores distintos a InnoDB. Puede especificar OSS (CSV/ORC) o el motor X-Engine a nivel de partición.

Nota
  • Este parámetro solo aplica a clústeres de MySQL 8.0.2 con versión de revisión 8.0.2.2.34.1 o posterior.

  • Después de habilitar el archivado de datos fríos, el sistema puede establecer automáticamente este parámetro en ON dependiendo de la versión.

loose_use_oss_meta

Global / Sesión

Controla si la gestión de metadatos (meta) de OSS está habilitada para tablas OSS. El parámetro loose_csv_oss_file_filter depende de este parámetro. Valores válidos:

  • ON: La gestión de metadatos de OSS está habilitada. La información de metadatos se escribe cuando se crean o archivan tablas OSS. La lista de archivos se obtiene leyendo los metadatos y se admite la función de filtrado loose_csv_oss_file_filter.

  • OFF: La gestión de metadatos de OSS está deshabilitada. No se escribe información de metadatos. Los metadatos se obtienen listando directamente los archivos de OSS y no se admite loose_csv_oss_file_filter.

loose_csv_oss_file_filter

Global / Sesión

Controla si el filtrado a nivel de archivo (File Filter) está habilitado al consultar tablas OSS. Esta función utiliza estadísticas mín/máx y filtros Bloom para omitir archivos de datos irrelevantes y reducir la cantidad de datos de OSS escaneados. Esta función requiere que el parámetro loose_use_oss_meta esté habilitado. Valores válidos:

  • OFF: El filtrado de archivos está deshabilitado. Todos los archivos de datos de la tabla OSS se escanean durante las consultas.

  • ON (recomendado): El filtrado de archivos está habilitado. Durante las consultas, loose_csv_oss_file_filter se usa junto con condiciones WHERE para mejorar el rendimiento de las consultas.

dlm_prune_archiving_oss_partitions

Global / Sesión

Controla la poda automática de particiones OSS archivadas mediante la función Data Lifecycle Management (DLM). Cuando se ejecutan operaciones DML (UPDATE/DELETE), el sistema poda automáticamente las particiones que se están archivando a OSS (ORC/CSV) y las particiones que ya han sido archivadas a OSS. Esto evita que las operaciones DML se bloqueen debido al archivado y resuelve conflictos entre DML y DDL. Valores válidos:

  • ON (predeterminado, recomendado): Las operaciones DML (UPDATE/DELETE) podan automáticamente las particiones que se están archivando a OSS.

  • OFF: Las operaciones DML no podan automáticamente las particiones que se están archivando a OSS.

hybrid_partition_query_mix_engine_enabled

Global / Sesión

Controla la poda automática de consultas. Cuando se ejecuta una consulta SELECT, el sistema poda automáticamente las particiones OSS (ORC/CSV) para evitar consultas lentas causadas por el acceso a datos fríos. Valores válidos:

  • OFF (predeterminado, recomendado): Las consultas podan automáticamente las particiones OSS.

  • ON (no recomendado): Las consultas no podan automáticamente las particiones OSS.

Crear una partición híbrida

Para crear una tabla con particiones híbridas, necesita un servidor OSS. Si no cuenta con uno, utilice la siguiente sintaxis para crearlo:

CREATE SERVER oss_server_name
FOREIGN DATA WRAPPER oss
OPTIONS(EXTRA_SERVER_INFO '{"oss_endpoint": "<my_oss_endpoint>",
"oss_bucket": "<my_oss_bucket>", "oss_access_key_id": "<my_oss_access_key_id>",
"oss_access_key_secret": "<my_oss_access_key_secret>", "oss_prefix":"<my_oss_prefix>", "oss_sts_token": "<my_oss_sts_token>"}');
Nota

Si la versión del clúster es PolarDB for MySQL 8.0.2 y la versión de revisión es 8.0.2.2.6 o posterior, se admite el parámetro my_oss_sts_token.

La siguiente tabla describe los parámetros.

Parámetro

Tipo

Descripción

oss_server_name

string

El nombre del servidor OSS.

Nota

Este parámetro es global y debe ser único. El nombre no distingue entre mayúsculas y minúsculas, y puede tener hasta 64 caracteres. Los nombres que superen los 64 caracteres se truncan. Puede especificar el nombre del servidor OSS como una cadena entre comillas.

my_oss_endpoint

string

El endpoint de la región de OSS.

Nota

Si accede a la base de datos desde un host de Alibaba Cloud, utilice un endpoint interno para evitar generar tráfico de internet. Un endpoint interno generalmente contiene la palabra "internal".

my_oss_bucket

string

El bucket de OSS que contiene los archivos de datos. Este bucket ya debe existir en OSS.

my_oss_access_key_id

string

El AccessKey ID para acceder a OSS.

my_oss_access_key_secret

string

El AccessKey Secret para acceder a OSS.

my_oss_prefix

string

El prefijo de ruta para los archivos de datos en OSS. Este valor no puede estar vacío ni contener caracteres especiales.

my_oss_sts_token

string

Credenciales de acceso temporal de OSS. Para obtener más información sobre cómo conseguir credenciales de acceso temporal de OSS, consulte Obtain temporary access credentials.

Nota

El valor del parámetro my_oss_sts_token tiene un tiempo de caducidad predeterminado. Si my_oss_sts_token ha caducado, debe restablecer todos los valores de parámetros en EXTRA_SERVER_INFO mediante el siguiente comando.

ALTER SERVER server_name OPTIONS(EXTRA_SERVER_INFO '{"oss_endpoint": "<my_oss_endpoint>",
    "oss_bucket": "<my_oss_bucket>", "oss_access_key_id": "<my_oss_access_key_id>",
    "oss_access_key_secret": "<my_oss_access_key_secret>", "oss_prefix":"<my_oss_prefix>", "oss_sts_token": "<my_oss_sts_token>"}');

El siguiente ejemplo muestra cómo crear una tabla con particiones híbridas:

CREATE TABLE t2(a1 INT, a2 VARCHAR(30), a3 VARCHAR(256))
CONNECTION = "oss_server_name"
PARTITION BY RANGE(a1)
(
   PARTITION p1 values less than (1000) ENGINE = CSV,
   PARTITION p2 values less than (2000) ENGINE = CSV,
   PARTITION p3 values less than (3000) ENGINE = INNODB
);

Consultar una partición híbrida

Puede consultar particiones en diferentes motores de almacenamiento de tres maneras:

  • Establezca el parámetro hybrid_partition_query_mix_engine_enabled en ON. Las consultas devolverán datos de particiones InnoDB, X-Engine y OSS. Ejemplo:

    -- t1 is a hybrid partitioned table.
    SELECT * FROM t1;
  • Establezca el parámetro hybrid_partition_query_mix_engine_enabled en OFF. Las consultas devolverán datos solo de particiones InnoDB y X-Engine. Ejemplo:

    -- t1 is a hybrid partitioned table.
    SELECT * FROM t1;
  • Consulte una partición específica por nombre. Esto recupera datos de la partición especificada, independientemente de su motor de almacenamiento. Ejemplo:

    -- t1 is a hybrid partitioned table, and p1 is the name of the partition to query.
    SELECT * FROM t1 partition (p1);