列のデータ圧縮のサポートを追加するためのガイドライン
標準テーブル、カスタム・テーブル、またはハングオフ・テーブルについて、新規または既存の列のデータ圧縮を使用可能にできます。 データ圧縮を実装すると、表のサイズを小さくすることができます。
データ圧縮の有効化
カスタマイズ方式または構成方式のいずれかを使用して、データ圧縮を有効にすることができます。
- カスタム列の場合、エンティティー 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_DETAILdb.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 プロパティーを設定することによってオーバーライドできます。 「クラス名」に、データ圧縮ロジックを含むカスタム・クラスの名前を指定します。
圧縮に使用可能な列
| テーブル名 | 列名 |
|---|---|
| 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 |
デフォルトで圧縮される列
| テーブル名 | 列名 |
|---|---|
| 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 インターフェースを実装するカスタムクラスの名前を入力する必要があります。