Descripción de las particiones en Babelfish - Amazon Aurora

Descripción de las particiones en Babelfish

A partir de la versión 4.3.0, Babelfish introduce la partición de tablas e índices con una compatibilidad limitada. En las siguientes secciones, se proporciona información sobre la creación de funciones de partición, la definición de esquemas de partición y la implementación de tablas e índices particionados en Babelfish.

Introducción a las particiones en Babelfish

  • Funciones de partición:

    • CREATE PARTITION FUNCTION: define cómo se particiona una tabla o un índice especificando el tipo de columna de partición y el rango de valores de cada partición.

    • DROP PARTITION FUNCTION: elimina una función de partición existente.

  • Esquemas de partición:

    • CREATE PARTITION SCHEME: define la asignación entre particiones y grupos de archivos.

      nota

      En Babelfish, los grupos de archivos se tratan como objetos ficticios y no representan ubicaciones físicas de almacenamiento.

    • DROP PARTITION SCHEME: elimina un esquema de partición existente.

  • Función del sistema:

    • $PARTITION: es una función del sistema que devuelve el número de partición al que pertenecería un valor especificado en una columna de particiones de una determinada tabla con particiones.

  • Tablas e índices con particiones:

    • CREATE TABLE ... ON partition_scheme_name (partition_column_name): crea una tabla con particiones basada en un esquema de particiones y una columna de particiones específicos.

    • CREATE INDEX ... ON partition_scheme_name (partition_column_name): crea un índice con particiones basado en un esquema de particiones y una columna de particiones específicos.

  • Vistas del sistema para la partición de metadatos:

    Se han añadido las siguientes vistas del sistema para proporcionar metadatos relacionados con la partición:

    • sys.destination_data_spaces

    • sys.partitions

    • sys.partition_functions

    • sys.partition_parameters

    • sys.partition_range_values

    • sys.partition_schemes

Limitaciones y soluciones provisionales

Las limitaciones siguientes se aplican a la creación de particiones en Babelfish:

  • Aún no se admiten ALTER PARTITION FUNCTION ni ALTER PARTITION SCHEME.

    nota

    Dado que Babelfish aún no admite operaciones de división ni fusión, todas las particiones deben predefinirse con anterioridad en las funciones de partición, ya que no es posible añadir ni eliminar particiones.

  • Aún no se admite la columna calculada como columna con particiones.

  • Aún no se admiten las utilidades INSERT BULK ni BCP en las tablas con particiones.

  • Aún no se admite la opción de límite LEFT para las funciones de partición.

  • Aún no se admite el tipo de datos SQL_VARIANT con las funciones de partición.

  • Aún no se admite TRUNCATE TABLE ... WITH PARTITION.

  • Aún no se admite ALTER TABLE ... SWITCH PARTITION.

  • No se admiten índices con particiones no alineados, como, por ejemplo, el esquema de particiones y la columna de particiones que difieren de la tabla con particiones.

  • La migración de DMS desde el origen de Babelfish solo se admite para tareas de carga completa en tablas con particiones.

  • Aún no se admite la siguiente sintaxis, pero hay una solución provisional:

    • Uso del esquema de particiones con restricciones o índices en la instrucción CREATE TABLE.

    • ALTER TABLE... ADD CONSTRAINT... ON partition_scheme_name (partition_column_name).

    nota

    Puede configurar la escotilla de escape babelfishpg_tsql.escape_hatch_storage_on_partition para omitirlo. Esto permitirá que el analizador omita la opción de esquema de particiones utilizada con las restricciones o los índices, y el backend creará restricciones o índices individuales para cada partición.