列のデータ圧縮のサポートを追加するためのガイドライン

標準テーブル、カスタム・テーブル、またはハングオフ・テーブルについて、新規または既存の列のデータ圧縮を使用可能にできます。 データ圧縮を実装すると、表のサイズを小さくすることができます。

データ圧縮の有効化

カスタマイズ方式または構成方式のいずれかを使用して、データ圧縮を有効にすることができます。

カスタマイズを使用したデータ圧縮の有効化
  • カスタム列の場合、エンティティー XML に CompressionSupported="true"UseCompression="true" の両方を追加することで、データ圧縮を有効にすることができます。
  • 標準表の既存の列の場合、 UseCompression 属性の値をオーバーライドすることにより、データ圧縮を有効にすることができます。
    注: データ圧縮を有効にできるのは、 CompressionSupported 属性が Trueに設定されている既存の列に対してのみです。 圧縮に使用できる標準表の列のリストを表示するには、 表 1を参照してください。
構成を使用したデータ圧縮の有効化
  • 圧縮は、以下の圧縮プロパティを設定することで有効にすることができます。これにより、 Sterling™ Order Managementシステムをカスタマイズ、再構築、および再展開することなく、列データをいつでも圧縮することができます。
    • db.force.compression.tables

      強制圧縮プロパティーを使用すると、サイズがしきい値制限に達したときにデータを圧縮するように、圧縮がサポートされる列を構成できます。 このプロパティーを設定して、圧縮する列が属する表の名前を指定します。 プロパティーに指定されている表ごとに、別のプロパティーを db.force.compression.<table name>.columns として構成し、列名を設定して圧縮を有効にします。

      注: 強制圧縮表として設定できるのは、圧縮列をサポートする表のみです。 圧縮する列が複数の表にある場合は、各表の名前をコンマで区切ります。
    • db.force.compression.<table name>.columns

      データ圧縮を有効にするには、 db.force.compression.tablesで指定されている各表の名前について、 db.force.compression.<table name>.columns プロパティーを使用してプロパティーを構成し、それぞれの表の列名を設定します。 表内の列を圧縮する場合を除き、圧縮に表を指定しないでください。 プロパティーに強制圧縮テーブルが指定されている場合、以下の例に示すように、各テーブルに対して列名を指定する必要があります。

      例: 表 YFS_ORDER_AUDIT_DETAIL の AUDIT_XML 列を圧縮するには、プロパティーを以下のように設定します。
      • db.force.compression.tables=YFS_ORDER_AUDIT_DETAIL
      • db.force.compression.YFS_ORDER_AUDIT_DETAIL.columns=AUDIT_XML

      表の複数の列を圧縮する場合は、各列をコンマで区切ります。

  • db.force.compression.history.records プロパティーを true に設定すると、履歴表にデータを書き込むときに、圧縮がサポートされているすべての列でデータ圧縮を有効にすることができます。 このプロパティーは、トランザクション表の圧縮がサポートされる列で圧縮が有効になっていない場合でも、履歴表に書き込まれるデータが確実に圧縮されるようにします。 デフォルトでは、このプロパティーは falseと見なされます。

データ圧縮の考慮事項

標準表の列にデータ圧縮のサポートを追加する場合は、以下の点を考慮してください。
  • データ圧縮は、通常は直接照会されない大量のテキスト・データ (監査レコード、エラー・スタック・トレース、XML テンプレート・データなど) を含む列に対してのみ使用する必要があります。 これらのレコードの性質により、データベース内で大量のスペースが使用される可能性があります。
  • CompressionSupported="true" を使用する列は、リスト API からのクエリ操作をサポートしません。 この設定は、エンティティー XML 内で QueryAllowed 属性を true に設定することによってオーバーライドできます。
  • デフォルトでは、 CompressionSupported="true" を使用する列は、インデックスまたは一意制約の一部として使用できません。 これは、エンティティ XML の index 要素で AllowCompressedColumns 属性を True に設定することでオーバーライドできます。
  • 主要キー列に、圧縮可能な列としてマークを付けることはできません。
  • データ圧縮を有効にする必要があるのは、列の最大サイズが 500 バイト以上の場合のみです。 500 バイト未満のデータ圧縮のマークが付けられている列があると、警告が出されます。
  • デフォルトでは、データ圧縮は GZip アルゴリズムを使用して行われます。 このデフォルトのデータ圧縮ロジックは、 customer_overrides.properties ファイル内の yfs.db.compression.class= class name プロパティーを設定することによってオーバーライドできます。 「クラス名」に、データ圧縮ロジックを含むカスタム・クラスの名前を指定します。

圧縮に使用可能な列

以下の表に、圧縮をサポートする表の列をリストします。
表 1. 圧縮の列
テーブル名 列名
INTEROP_ERROR_DISPATCH (対話式エラー) MESSAGE
plt_activity_config 構成 XML
Plt_activity_config_metadata 構成 METADATA_XML
PLT_EOF_STATUS MESSAGE
PL/I ファイル・データ データ・オブジェクト
YCS MANIFEST_UPS_DTL (YCS 管理 UPS_DTL) XML の入力
YFS_非同期要求 MESSAGE
yfs_async_req_error ERROR_MESSAGE
YFS_AUDIT (監査) 監査XML
YFS_BATCH req_batch_completion_xml
YFS_XX_ENCODE_CASE_ONE catalog_mass_audit XML の変更
YFS_EXPORT MESSAGE
「YFS_GRAPH_UI」 グラフィック XML
YFS_HM_しきい値 ADDITIONAL_INFO
YFS_IMPORT MESSAGE
YFS_INBOX INBOX_ADDNL_DATA (受信データ)
YFS_INBOX_NOTES NOTE_TEXT
YFS_INBOX_REFERENCES 価値
YFS_INSTRUCTION_DETAIL 説明のテキスト
YFS_INVENTORY_ALERTS 使用可能度情報
YFS_NOTES NOTE_TEXT
YFS_ORDER_AUDIT_DETAIL 監査XML
YFS_PERSON_INFO エラー・テキスト
YFS_リソース INPUT
YFS_リソース テンプレート
yfs_reprocess_error エラー・リファレンス
yfs_reprocess_error ErrorString
yfs_reprocess_error ERRORMESSAGE
yfs_reprocess_error MESSAGE
YFS_SAVED_Search データの検索
YFS_サブフロー 構成 XML
YPM_MASS_AUDIT search_criteria_xml
次世代プラットフォーム

デフォルトで圧縮される列

以下の CLOB 列は、下位の環境 (開発、QA、およびマスター構成) ではデフォルトで圧縮されます。 この圧縮をオーバーライドすることはできません。
表 2. デフォルトで圧縮される CLOB 列
テーブル名 列名
YFS_ORDER_AUDIT_DETAIL 監査XML
YFS_AUDIT (監査) 監査XML
YFS_EXPORT MESSAGE
YFS_IMPORT MESSAGE
yfs_reprocess_error MESSAGE
INTEROP_ERROR_DISPATCH (対話式エラー) MESSAGE
YFS_INBOX INBOX_ADDNL_DATA (受信データ)

データ圧縮ロジック

圧縮可能な列のデータは、GZip アルゴリズムを使用して圧縮されます。 SCICustomDataCompressor インターフェースを実装することによって、このデフォルトのデータ圧縮ロジックをオーバーライドし、カスタム圧縮ロジックを指定できます。

customer_overrides.properties ファイルの yfs.db.compression.class name プロパティに、 SCICustomDataCompressor インターフェースを実装するカスタムクラスの名前を入力する必要があります。