転送データを圧縮して、転送時間を短縮したい

OrangeLab. 運営チーム
作成日時: - 更新日時:
Avatar

はじめに

こんにちは。株式会社メディアフォースの池田です。

近年扱うデータがどんどん大きくなるにつれ、転送データを圧縮し転送時間を短縮したいと思うことはよくあることと思います。
HULFTでは、複数の圧縮方式を提供しています。

そこで今回は、HULFTで使用できる圧縮方式の特徴と、実際に転送データを圧縮してファイル転送をする方法をご紹介したいと思います。

HULFTで使用できる圧縮方式について

HULFTでは下記4種類の圧縮方式を提供しています。
集配信ファイルのデータ内容に合わせて、下記圧縮方式から圧縮効率の良い方式を採用します。

圧縮方式の特性は以下の通りです。

■ 圧縮なし
  • データを圧縮しないで転送します。
  • ネットワーク回線が優良で、圧縮にかかる時間がロスとなる場合や、すでに圧縮されているデータに有効です。

■ 横圧縮
  • レコード内で圧縮を行います。
  • 1レコード内に同じ1バイトデータが連続しているデータに有効です。

■ 縦横圧縮
  • 「縦圧縮」は、レコードをまたいだ(縦方向の)圧縮で、レコード間で同一桁数に同じ1バイトコードが連続しているデータに有効です。
    「縦横圧縮」は、含まれるデータの連続性から、横圧縮と縦圧縮を比較し圧縮度が高いと判断された方をレコード単位に自動的に選択して圧縮を行います。
  • 逆に圧縮効果が得られにくいデータとしてはすでに高圧縮のパッキング処理を施されたファイルなどが挙げられます。

    (データ例)
    [横圧縮]のほうが有効なデータ[縦横圧縮]のほうが有効なデータ
    111111あいう
    222222あいう
    333333あいう
    1234ABCあいう
    1234ABCあああ
    1234ABCいいい

■ DEFLATE圧縮
  • HULFT Ver.8.0.0以降で使用できます。
  • ZIPと同様の圧縮アルゴリズムに対応した圧縮方式です。
  • 特にバイナリデータに対する圧縮に有効です。
  • 横圧縮や縦横圧縮の圧縮方式で大幅に効果が得られないようなデータに関しては、DEFLATE圧縮を選択することでHULFTで実施できる最大の圧縮効率を得ることが可能です。
  • 相手先が8.0.0未満の場合は、Hulcon.logにがメッセージが出力され、非圧縮にて転送を行います。
  • 下記DEFLATEレベルが設定可能です。
    DEFLATEレベル説明
    圧縮速度優先 圧縮率より圧縮速度を優先
    圧縮率優先 圧縮速度より圧縮率を優先
    標準 圧縮速度優先と圧縮率優先の中間

また、上記圧縮方式は、転送タイプによってレコードの単位(圧縮の単位)が変わるため注意が必要です。

■ テキスト転送、フォーマット転送、マルチフォーマット転送の場合
  • 改行(CRLFまたはLF)までを1レコードとし、レコード単位でデータを読み込んで圧縮処理を行います。

■ バイナリ転送の場合
  • レコードという概念がないため、配信管理情報の設定[圧縮単位]のサイズごとに処理を行います。
    [圧縮単位]はデータに対してレコードという概念を持たせ「レコード間圧縮(縦圧縮)」を行うために存在している設定値です。

<注意ポイント>
  • いずれの圧縮方式も1バイトコードにのみ有効であり、2バイトコードは圧縮されません。
  • 圧縮転送の場合、圧縮されたファイルには制御情報データが付加されます。もし圧縮効果がほとんど得られなかった場合、制御情報の分だけ逆にファイルサイズが増加する可能性もありますので、ご注意ください。
  • HULFTには転送可能な最大レコード長が存在しており、圧縮転送時には制御情報を付加するため圧縮効率の低いデータでは制御情報によって転送可能な最大レコード長を超過する場合があります。
    レコード長を決められないデータ(PDFやEXEファイル等)につきましては、処理の高速化および最大レコード長の超過を防ぐ観点のもと、[圧縮単位]には「32255(単位:バイト)」の指定を推奨します。

転送データを圧縮してファイル転送をする方法

では実際に、転送データを圧縮してファイル転送を行ってみましょう。

今回は[圧縮なし]と[DEFLATE圧縮]の転送速度を比較します。
転送条件は、「容量1GBのファイルを[圧縮なし][DEFLATE圧縮]のループバックで転送」とします。

まずは圧縮方式を[圧縮なし]で転送してみたいと思います。
圧縮方式は、配信管理情報の[圧縮方式]から選択することができます。

配信管理情報の「圧縮方式」から「圧縮なし」を選択して保存し、配信を実行します。



圧縮しない場合の転送結果です。
今回は1GBの転送に4分28秒かかりました。



では次に、圧縮方式にてDEFLATE圧縮を選択して転送してみましょう。
圧縮タイプをDEFLATE圧縮、DEFLATEレベルを圧縮速度優先に設定して転送をします。



DEFLATE圧縮で転送した転送結果です。
3分43秒で転送することができました。また、圧縮率が49%となっています。これは約半分のデータサイズに圧縮されて転送されたことを示します。



今回の転送では、DEFLATE圧縮を利用することによって、転送時間を45秒短縮することができました。

※ 転送データを圧縮することによって、すべてのファイル転送にて転送時間を短縮できることを保証するわけではありません。
  ご利用環境やファイルの中身、その他条件によっては、転送時間を短縮できない場合もあります。

おわりに

いかがでしょうか。

HULFTでは圧縮方式などの各種設定により、ご自身の環境に合わせた圧縮方法で転送することができます。
しかし、圧縮についてはHULFTを利用される環境やファイルの内容、その他条件によって結果が変わることがあります。
ぜひご自身の環境、条件で実際に圧縮転送をしてみることをお勧めします。

HULFTのデータ圧縮を駆使して、転送時間の短縮を図ってみてください。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

コメント