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
niALTER 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
niBCP
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.