Linee guida per aggiungere il supporto per la compressione dei dati delle colonne

È possibile abilitare la compressione dei dati per le colonne nuove ed esistenti delle tabelle standard, personalizzate o contrarie. La compressione dei dati consente una riduzione della dimensione delle tabelle quando implementata.

Abilitazione della compressione dati

È possibile abilitare la compressione dei dati utilizzando i metodi di personalizzazione o di configurazione.

Abilitazione della compressione dei dati mediante la personalizzazione
  • Per le colonne personalizzate, è possibile abilitare la compressione dei dati aggiungendo sia CompressionSupported="true" che UseCompression="true" nell'XML di entità.
  • Per le colonne esistenti in una tabella standard, è possibile abilitare la compressione dati sovrascrivendo il valore dell'attributo UseCompression .
    Nota: è possibile abilitare la compressione dati solo per le colonne esistenti che hanno l'attributo CompressionSupported impostato su True. Per visualizzare l'elenco di colonne delle tabelle standard disponibili per la compressione, consultare Tabella 1.
Abilitazione della compressione dati utilizzando la configurazione
  • La compressione può essere attivata configurando le seguenti proprietà di compressione, in modo che i dati delle colonne possano essere compressi in qualsiasi momento senza dover personalizzare, ricostruire e reimpiegare Sterling™ Order Management System.
    • db.force.compression.tables

      Utilizzando le proprietà di forzatura della compressione, è possibile configurare le colonne supportate dalla compressione per comprimere i dati quando la dimensione raggiunge il limite di soglia. Impostare questa proprietà per specificare i nomi tabella a cui appartengono le colonne da comprimere. Per ciascuna delle tabelle specificata nella proprietà, creare un'altra proprietà come db.force.compression.<table name>.columns per impostare i nomi colonna per abilitare la compressione.

      Nota: solo le tabelle che supportano le colonne di compressione possono essere impostate come tabella di compressione forzata. Se le colonne da comprimere si trovano in più tabelle, separare ciascun nome di tabella con una virgola.
    • db.force.compression.<table name>.columns

      Per consentire la compressione dei dati, per ciascuno dei nomi tabella specificati in db.force.compression.tables, utilizzare la proprietà db.force.compression.<table name>.columns per costruire proprietà e impostare i nomi colonna delle rispettive tabelle. Non specificare una tabella per la compressione a meno che non si desideri comprimere una colonna in tale tabella. Se le tabelle di compressione forzata sono specificate nella proprietà, per ciascuna delle tabelle è obbligatorio fornire i nomi delle colonne come mostrato nel seguente esempio.

      Esempio: per comprimere la colonna AUDIT_XML della tabella YFS_ORDER_AUDIT_DETAIL, impostare le proprietà come:
      • db.force.compression.tables=YFS_ORDER_AUDIT_DETAIL
      • db.force.compression.YFS_ORDER_AUDIT_DETAIL.columns=AUDIT_XML

      Quando è necessario comprimere più colonne di una tabella, separare ciascuna colonna con una virgola.

  • È possibile impostare la proprietà db.force.compression.history.records su true per abilitare la compressione dei dati su tutte le colonne supportate dalla compressione durante la scrittura dei dati nelle tabelle di cronologia. La proprietà garantisce che i dati scritti nelle tabelle della cronologia vengano compressi anche se la compressione non è abilitata per le colonne supportate dalla compressione nella tabella della transazione. Per impostazione predefinita, la proprietà viene considerata come false.

Considerazioni sulla compressione dei dati

Quando si aggiunge il supporto per la compressione dei dati alle colonne delle tabelle standard, considerare i seguenti punti:
  • La compressione dati deve essere utilizzata solo per le colonne che contengono una grande quantità di dati di testo generalmente non sottoposti a query direttamente, come i record di controllo, le tracce di stack degli errori e i dati del template XML. La natura di questi record può utilizzare una quantità significativa di spazio all'interno del database.
  • Le colonne che utilizzano CompressionSupported="true" non supportano le operazioni di interrogazione delle API degli elenchi. È possibile sovrascriverlo impostando l'attributo QueryAllowed su True nell'XML dell'entità.
  • Per impostazione predefinita, le colonne che utilizzano CompressionSupported="true" non possono essere utilizzate come parte di un indice o di un vincolo univoco. Questo può essere sovrascritto impostando l'attributo AllowCompressedColumns a True sull'elemento index nell'XML dell'entità.
  • Le colonne della chiave primaria non possono essere contrassegnate come colonne comprimibili.
  • La compressione dei dati deve essere abilitata solo se la dimensione massima della colonna è> = 500 byte. Qualsiasi colonna contrassegnata per la compressione dei dati con meno di 500 byte genera avvertenze.
  • Per impostazione predefinita, la compressione dei dati viene effettuata utilizzando l'algoritmo GZip. È possibile sovrascrivere questa logica di compressione dati predefinita impostando la proprietà yfs.db.compression.class= class name nel file customer_overrides.properties . Nel campo nome classe, specificare il nome della propria classe personalizzata che contiene la logica di compressione dati.

Colonne disponibili per la compressione

La seguente tabella elenca le colonne nelle tabelle che supportano la compressione.
Tabella 1. Colonne per la compressione
Nome tabella Nome colonna
INVIO_ERRORE_INTEROP MESSAGGIO
CONFERMA_ATTIVITÀ_PL CONFERMA_XML
METATI_CONFIG_ATTIVITÀ_PLT CONFIG_METADATI_XML
STATO_EO_NON_ATTIVO MESSAGGIO
DATI_FILE_FILE OGGETTO_DATI
YCS_MANIFEST_UPS_DTL INPUT_XML
YFS_ASYNC_REQ MESSAGGIO
YFS_ASYNC_REQ_ERROR messaggio_errore
AMODI_FS_Y INDIRIZZO_XML
YF_BATCH REQ_BATCH_COMPLETION_XML
YFS_CATALOG_MASS_AUDIT MODIFICA_XML
ESPORTA YFS MESSAGGIO
IU YFS_GRAPH_ X_GRAFICO
YFS_HM_SOGLIE INFO ADDITIONE_INFO
IMPORTA FS_Y MESSAGGIO
YFS_INBOX DATI_ADDN_INBOX
YFS_INBOX_NOTES NOTA_TESTO
YFS_INBOX_REFERENCES Valore
DETTAGLI_ISTRUZIONI_YFS TESTO_ISTRUZIONE
AVVISI_DI_INVENTARIO INFORMAZIONI_DISPONIBILITÀ
YFS_NOTES NOTA_TESTO
YFS_ORDINE_DETTAGLIO_AUDIT INDIRIZZO_XML
YFS_PERSON_INFO TTX_ERR
RISORSA_YF Input
RISORSA_YF MODELLO
ERRORE REPROCESSO YFS RIFERIMENTO ERRORE
ERRORE REPROCESSO YFS ERRORESTRING
ERRORE REPROCESSO YFS MESSAGGIOERRORE
ERRORE REPROCESSO YFS MESSAGGIO
SARCH_SAV_YFS DATI DI RICERCA
YFS_FLUSSO_SECONDARIO CONFERMA_XML
MASS_AUDIT YPM CRITERI_DI_RICERCA_XML
Piattaforma di nuova generazione

Colonne compresse per impostazione predefinita

Le seguenti colonne CLOB sono compresse per impostazione predefinita negli ambienti inferiori (Sviluppo, QA e Configurazione principale). Non è possibile sovrascrivere questa compressione.
Tabella 2. Colonne CLOB compresse per default
Nome tabella Nome colonna
YFS_ORDINE_DETTAGLIO_AUDIT INDIRIZZO_XML
AMODI_FS_Y INDIRIZZO_XML
ESPORTA YFS MESSAGGIO
IMPORTA FS_Y MESSAGGIO
ERRORE REPROCESSO YFS MESSAGGIO
INVIO_ERRORE_INTEROP MESSAGGIO
YFS_INBOX DATI_ADDN_INBOX

Logica di compressione dati

I dati per le colonne comprimibili vengono compressi utilizzando l'algoritmo GZip. È possibile sovrascrivere questa logica di compressione dei dati predefinita e fornire una logica di compressione personalizzata implementando l'interfaccia SCICustomDataCompressor.

È necessario inserire il nome della classe personalizzata che implementa l'interfaccia SCICustomDataCompressor nella proprietà yfs.db.compression.class name del file customer_overrides.properties.