Directrices para añadir soporte para la compresión de datos de columnas

Puede habilitar la compresión de datos para las columnas nuevas y existentes de las tablas estándar, personalizadas y descolgadas. La compresión de datos permite una reducción del tamaño de las tablas cuando se implementa.

Habilitación de la compresión de datos

Puede habilitar la compresión de datos utilizando métodos de personalización o de configuración.

Habilitación de la compresión de datos utilizando la personalización
  • Para las columnas personalizadas, puede habilitar la compresión de datos añadiendo CompressionSupported="true" y UseCompression="true" en el XML de entidad.
  • Para las columnas existentes en una tabla estándar, puede habilitar la compresión de datos alterando temporalmente el valor del atributo UseCompression .
    Nota: Puede habilitar la compresión de datos sólo para las columnas existentes que tienen el atributo CompressionSupported establecido en True. Para ver la lista de columnas de tablas estándar que están disponibles para la compresión, consulte Tabla 1.
Habilitación de la compresión de datos utilizando la configuración
  • La compresión se puede activar configurando las siguientes propiedades de compresión para que los datos de columna se puedan comprimir en cualquier momento sin tener que personalizar, reconstruir y volver a implementar Sterling™ Order Management System.
    • db.force.compression.tables

      Utilizando las propiedades de compresión forzada, puede configurar columnas soportadas por compresión para comprimir datos cuando el tamaño alcanza el límite de umbral. Establezca esta propiedad para especificar los nombres de tabla a los que pertenecen las columnas que se van a comprimir. Para cada una de las tablas especificadas en la propiedad, construya otra propiedad como db.force.compression.<table name>.columns para establecer los nombres de columna para habilitar la compresión.

      Nota: Sólo las tablas que dan soporte a las columnas de compresión se pueden establecer como una tabla de compresión forzada. Si las columnas que se van a comprimir están en varias tablas, separe cada nombre de tabla con una coma.
    • db.force.compression.<table name>.columns

      Para habilitar la compresión de datos, para cada uno de los nombres de tabla especificados en db.force.compression.tables, utilice la propiedad db.force.compression.<table name>.columns para construir propiedades y establecer los nombres de columna de las tablas respectivas. No especifique una tabla para la compresión a menos que desee comprimir una columna en esa tabla. Si se especifican tablas de compresión forzada en la propiedad, para cada una de las tablas, es obligatorio proporcionar nombres de columna tal como se muestra en el ejemplo siguiente.

      Ejemplo: Para comprimir la columna AUDIT_XML de la tabla YFS_ORDER_AUDIT_DETAIL, establezca las propiedades como:
      • db.force.compression.tables=YFS_ORDER_AUDIT_DETAIL
      • db.force.compression.YFS_ORDER_AUDIT_DETAIL.columns=AUDIT_XML

      Cuando se vayan a comprimir varias columnas de una tabla, separe cada columna con una coma.

  • Puede establecer la propiedad db.force.compression.history.records en true para habilitar la compresión de datos en todas las columnas soportadas de compresión al grabar datos en tablas de historial. La propiedad garantiza que los datos que se graban en las tablas de historial se comprimen incluso si la compresión no está habilitada para las columnas soportadas de compresión en la tabla de transacciones. De forma predeterminada, la propiedad se considera como false.

Consideraciones sobre la compresión de datos

Al añadir soporte para la compresión de datos a las columnas de las tablas estándar, tenga en cuenta los puntos siguientes:
  • La compresión de datos sólo se debe utilizar para columnas que contienen una gran cantidad de datos de texto que normalmente no se consultan directamente, como registros de auditoría, rastreos de pila de errores y datos de plantilla XML. La naturaleza de estos registros puede utilizar una cantidad significativa de espacio dentro de la base de datos.
  • Las columnas que utilizan CompressionSupported="true" no admiten operaciones de consulta de API de listas. Esto se puede sustituir estableciendo el atributo QueryAllowed en True en el XML de entidad.
  • Por defecto, las columnas que utilizan CompressionSupported="true" no pueden utilizarse como parte de un índice o restricción única. Esto se puede anular estableciendo el atributo AllowCompressedColumns en True en el elemento index del XML de la entidad.
  • No se puede marcar como columnas comprimibles las columnas de clave primaria.
  • La compresión de datos sólo debe estar habilitada si el tamaño máximo de la columna es > = 500 bytes. Cualquier columna marcada para la compresión de datos con menos de 500 bytes da como resultado avisos.
  • De forma predeterminada, la compresión de datos se realiza utilizando el algoritmo GZip. Puede alterar temporalmente esta lógica de compresión de datos predeterminada estableciendo la propiedad yfs.db.compression.class= class name en el archivo customer_overrides.properties . En el nombre de clase, especifique el nombre de la clase personalizada que contiene la lógica de compresión de datos.

Columnas disponibles para compresión

En la tabla siguiente se listan las columnas de las tablas que dan soporte a la compresión.
Tabla 1. Columnas para compresión
Nombre de tabla Nombre de columna
ENVIAR_ERROR_INTEROP Mensaje
CONFIGURACIÓN_ACTIVIDAD_PLT CONFIG_XML
METADATOS de PLT_ACTIVITY_CONFIG_METADATA CONFIG_METADATOS_XML
PLT_EOF_STATUS Mensaje
PT_FILE_DATA OBJETO_FECHA
YCS_MANIFIESTO_UPS_DTL ENTRADA_XML
YFS_ASYNC_REQ Mensaje
YFS_ASYNC_REQ_ERROR MENSAJE_ERROR
YFS_AUDITORÍA XML AUDIT_
YFS_BATCH REQ_BATCH_COMPLETION_XML
YFS_CATÁLOGO_AUDITORÍA_MASIVA CAMBIO_XML
YFS_EXPORT Mensaje
YFS_GRÁFICO_INTERFAZ_USUARIO XML
YFS_HM_UMBRALES INFORMACIÓN_ADICIONAL
YFS_IMPORT Mensaje
YFS_INBOX INBOX_ADDNL_DATA
YFS_INBOX_NOTES NOTE_TEXT
YFS_INBOX_REFERENCES VALOR
YFS_INSTRUCTION_DETAIL TEXTO_INSTRUCCIÓN
YFS_INVENTORY_ALERTS INFORMACIÓN_DISPONIBILIDAD
YFS_NOTES NOTE_TEXT
YFS_ORDER_AUDIT_DETAIL XML AUDIT_
YFS_PERSON_INFO ERROR_TXT
RECURSOS_YF ENTRADA
RECURSOS_YF PLANTILLA
YFS_REPROCESAR_ERROR REFERENCIA_ERROR
YFS_REPROCESAR_ERROR CADENA DE ERRORES
YFS_REPROCESAR_ERROR errorMessage
YFS_REPROCESAR_ERROR Mensaje
YFS_BÚSQUEDA_GUARDADA DATOS DE ARCHIVO
YFS_SUB_FLUJO CONFIG_XML
YPM_AUDITORÍA MASIVA CRITERIO_BÚSQUEDA_XML
Plataforma de próxima generación

Columnas comprimidas de forma predeterminada

Las columnas CLOB siguientes se comprimen de forma predeterminada en los entornos inferiores (Desarrollo, QA y Configuración maestra). No puede alterar temporalmente esta compresión.
Tabla 2. Columnas CLOB comprimidas de forma predeterminada
Nombre de tabla Nombre de columna
YFS_ORDER_AUDIT_DETAIL XML AUDIT_
YFS_AUDITORÍA XML AUDIT_
YFS_EXPORT Mensaje
YFS_IMPORT Mensaje
YFS_REPROCESAR_ERROR Mensaje
ENVIAR_ERROR_INTEROP Mensaje
YFS_INBOX INBOX_ADDNL_DATA

Lógica de compresión de datos

Los datos para columnas comprimibles se comprimen utilizando el algoritmo GZip. Puede sustituir la lógica predeterminada de compresión de datos y proporcionar una lógica de compresión personalizada mediante la implementación de la interfaz SCICustomDataCompressor.

Debe introducir el nombre de la clase personalizada que implementa la interfaz SCICustomDataCompressor en la propiedad yfs.db.compression.class name del archivo customer_overrides.properties.