Teradataでは、データの圧縮および圧縮解除用に、次に示すサービス関数を提供しています。これらの関数は、TD_SYSFNLIBシステム データベース内に格納されています。
関数のタイプ | UDF名 | 説明 |
---|---|---|
圧縮 | TransUnicodeToUTF8 | 入力にUNICODE文字を受け取り、それをUTF-8形式で格納します。 このことは、文字がASCIIスクリプト(U+0000からU+007F)である場合に役立ちます。これは、UTF-8ではこれらの文字を表わすために1バイトを使用するのに対し、UNICODE (UTF-16)では2バイトを使用するためです。 |
圧縮解除 | TransUTF8ToUnicode | TransUnicodeToUTF8関数を使用して事前に圧縮されたデータを受け取り、それを変換してUnicodeに戻します。 |
圧縮 | LZCOMP | UNICODE文字データを、Lempel-Zivアルゴリズムを使用して圧縮します。 |
圧縮解除 | LZDECOMP | LZCOMPを使用して圧縮したUNICODEデータを圧縮解除します。 |
圧縮 | LZCOMP_L | LATIN文字データを、Lempel-Zivアルゴリズムを使用して圧縮します。 |
圧縮解除 | LZDECOMP_L | LZCOMP_Lを使用して圧縮したLATINデータを圧縮解除します。 |
圧縮 | CAMSET | UNICODE文字データを、適切なTeradataのアルゴリズムを使用して、バイト未満の値(例えば、4ビットの数字や5ビットの英文字)、1バイトの値、または2バイトの値に圧縮します。 |
圧縮解除 | DECAMSET | CAMSETを使用して圧縮したUNICODE文字データを圧縮解除します。 |
圧縮 | CAMSET_L | LATIN文字データを、適切なTeradataのアルゴリズムを使用して、バイト未満の値(例えば、4ビットの数字や5ビットの英文字)、または1バイトの値に圧縮します。 |
圧縮解除 | DECAMSET_L | CAMSET_Lを使用して圧縮したLATIN文字データを圧縮解除します。 |
圧縮 | TD_LZ_COMPRESS | サポートされているALCデータ型または事前定義タイプのデータを、Lempel-Zivコーディングを使用して圧縮します。 |
圧縮解除 | TD_LZ_DECOMPRESS | TZ_LZ_COMPRESSを使用して圧縮された、サポートされているALCデータ型または事前定義タイプのデータを圧縮解除します。 |
圧縮 | TS_COMPRESS | TIMEおよびTIMESTAMPデータを圧縮します。 |
圧縮解除 | TS_DECOMPRESS | TS_COMPRESSを使用して圧縮されたTIMEおよびTIMESTAMPデータを圧縮解除します。 |
圧縮 | JSON_COMPRESS | JSONデータを圧縮します。 |
圧縮解除 | JSON_DECOMPRESS | JSON_COMPRESSを使用して圧縮したJSONデータを圧縮解除します。 |
これらの関数についての詳細は、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。
これらの関数ではデータに最適な圧縮を実行できない場合は、独自のUDFを実装して、テーブルの列を圧縮したり圧縮解除できます。詳細は、<Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147>を参照してください。
カスタムのALC UDFを作成したときには、必ず徹底的にテストしてください。圧縮または圧縮解除のアルゴリズムに欠陥があると、圧縮したデータが復元できなくなったり、破損したりするおそれがあります。